<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Pompa ciepła - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/pompa-ciepla/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/pompa-ciepla/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 16 Jul 2026 09:12:50 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Pompa ciepła - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/pompa-ciepla/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku.</title>
		<link>https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/</link>
					<comments>https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 15:39:46 +0000</pubDate>
				<category><![CDATA[Bufor ciepła]]></category>
		<category><![CDATA[Bufory ciepła]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Finanse i opłacalność]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[amortyzacja pompy ciepła]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[jastrych akumulacyjny]]></category>
		<category><![CDATA[koszty ogrzewania 2026]]></category>
		<category><![CDATA[moc grzałek]]></category>
		<category><![CDATA[obliczenia ozc]]></category>
		<category><![CDATA[ogrzewanie elektryczne]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[taryfa g12w]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6624</guid>

					<description><![CDATA[<p>Planujesz modernizację kotłowni lub budowę nowego domu i zastanawiasz się, jakie źródło zasilania wodnego ogrzewania podłogowego będzie najbardziej ekonomiczne dla Twojego budżetu? Wybór odpowiedniego systemu grzewczego to poważna decyzja na dekady, która bezpośrednio wpłynie na Twoje długoterminowe finanse. W tym kompleksowym, inżynierskim poradniku bierzemy pod lupę dwa najpopularniejsze rozwiązania rynkowe, bezwzględnie obalając mity instalatorów. Przeczytaj nasz najnowszy artykuł: Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku. Odkryj twarde wyliczenia inżynierskie, wzory fizyczne oraz realne stopy zwrotu (ROI) dla różnych metraży budynków, które uchronią Cię przed branżową ściemą i kosztownym błędem wykonawczym.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/">Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light-blue: #e0f2fe;
    --rk-intro-gray: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-alert: #fffbeb;
    --rk-intro-alert-border: #f59e0b;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px rgba(15, 23, 42, 0.05);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-intro-blue);
}

.rk-intro-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-intro-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
}

.rk-intro-body {
    padding: 40px 50px;
}

.rk-intro-hook {
    font-size: 18px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin-bottom: 25px;
    font-weight: 500;
}

/* Moduł Szybkiej Odpowiedzi (Featured Snippet) */
.rk-intro-quick-answer {
    background: var(--rk-intro-alert);
    border-left: 5px solid var(--rk-intro-alert-border);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
}

.rk-intro-quick-answer h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 900;
    color: #92400e;
    margin: 0 0 10px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-intro-quick-answer p {
    font-size: 16px;
    line-height: 1.7;
    color: #92400e;
    margin: 0;
    font-weight: 500;
}

.rk-intro-quick-answer strong {
    font-weight: 800;
}

/* Zapowiedź narzędzi */
.rk-intro-tools-promo {
    background: var(--rk-intro-gray);
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-intro-tools-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-intro-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.rk-intro-tab-btn {
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
}

.rk-intro-tab-btn:hover {
    border-color: var(--rk-intro-blue);
    color: var(--rk-intro-blue);
}

.rk-intro-tab-btn.active {
    background: var(--rk-intro-blue);
    border-color: var(--rk-intro-blue);
    color: #ffffff;
}

.rk-intro-panel {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 25px;
    border-radius: 12px;
}

.rk-intro-panel.active {
    display: block;
}

.rk-intro-panel h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-intro-panel p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
    margin: 0;
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-body { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 24px; }
    .rk-intro-tabs { grid-template-columns: 1fr; }
    .rk-intro-quick-answer { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku",
    "description": "Najpoważniejsze starcie systemów grzewczych w 2026 roku. Sprawdź szybką odpowiedź, co się bardziej opłaca: niskobudżetowy bufor czy wydajna pompa ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-wstep",
    "name": "Kompendium opłacalności systemów grzewczych",
    "description": "Wstępne zestawienie danych wprowadzające do analizy kosztów CAPEX i OPEX dla systemów ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor ciepła czy pompa ciepła 2026",
      "ogrzewanie z bufora 1000l koszty",
      "najtańsze ogrzewanie domu prądem",
      "alternatywa dla pompy ciepła",
      "taryfa nocna g12w opłacalność"
    ],
    "measurementTechnique": "Bezpośrednia ocena opłacalności w oparciu o szacunkowe straty ciepła i nakłady inwestycyjne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wniosek rynkowy: Bufor ciepła miażdży pompę w budynkach o małym zapotrzebowaniu na energię (do 5 kW).",
        "Zaleta systemu: Akumulacja taniej energii z taryfy G12/G12w eliminująca koszt zakupu drogiego agregatu chłodniczego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-wstep",
    "name": "Interaktywny Przewodnik po Narzędziach Artykułu",
    "description": "Zestaw nawigacyjny zapowiadający kalkulatory, symulatory opłacalności i wyliczenia OZC dostępne w dalszej części poradnika.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="wstep-artykulu-app">
    <div class="rk-intro-header">
        <h2>Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku</h2>
        <p>Inżynierska weryfikacja mitów. Poznaj twarde liczby, zanim wydasz kilkadziesiąt tysięcy złotych na kotłownię.</p>
    </div>

    <div class="rk-intro-body">
        
        <div class="rk-intro-hook">
            Instalacja ogrzewania podłogowego zasilana z bufora ciepła 1000 l ładowanego grzałkami elektrycznymi w taryfie nocnej to dzisiaj najpoważniejsza, niskobudżetowa alternatywa dla pompy ciepła. Rozwiązanie to pozwala na akumulację potężnej dawki energii cieplnej w czasie obowiązywania tańszych stawek (np. taryfa G12 lub G12w) i bezawaryjne oddawanie jej do wodnego ogrzewania płaszczyznowego przez całą dobę, drastycznie tnąc koszty inwestycyjne.
        </div>

        <div class="rk-intro-quick-answer">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Szybka odpowiedź: Co się bardziej opłaca?
            </h3>
            <p>
                Jeśli budujesz nowoczesny, dobrze ocieplony dom (zapotrzebowanie cieplne do 4-5 kW), <strong>bufor ciepła z grzałkami miażdży pompę ciepła pod kątem ekonomicznym</strong>. Inwestycja na start jest o niemal 30 tysięcy złotych tańsza, a ten &#8222;zapas&#8221; gotówki pokryje różnicę w wyższych rachunkach za prąd przez ponad 13 lat (często przekraczając żywotność samej pompy). Z kolei przy starszych lub bardzo dużych domach o dużych stratach ciepła, pompa ciepła to nadal absolutna konieczność.
            </p>
        </div>

        <div class="rk-intro-tools-promo">
            <h4 class="rk-intro-tools-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                Co znajdziesz w dalszej części tego poradnika?
            </h4>
            <p style="margin-bottom: 20px; font-size: 15px; color: var(--rk-intro-text);">
                Zamiast lania wody, przygotowaliśmy dla Ciebie zestaw <strong>profesjonalnych, interaktywnych narzędzi inżynierskich</strong>, dzięki którym samodzielnie przeliczysz parametry swojego domu na żywo.
            </p>

            <div class="rk-intro-tabs">
                <button class="rk-intro-tab-btn active" data-panel="panel-kalkulator">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    Kalkulator Bufora
                </button>
                <button class="rk-intro-tab-btn" data-panel="panel-roi">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Symulator Opłacalności
                </button>
                <button class="rk-intro-tab-btn" data-panel="panel-wytyczne">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
                    Wpływ na Podłogówkę
                </button>
            </div>

            <div class="rk-intro-panel active" id="panel-kalkulator">
                <h4>Dynamiczny Kalkulator Mocy OZC</h4>
                <p>Narzędzie wyliczające na żywo wymaganą moc grzałek elektrycznych oraz dokładną pojemność bufora wodnego na podstawie dobowego zapotrzebowania Twojego budynku.</p>
            </div>
            
            <div class="rk-intro-panel" id="panel-roi">
                <h4>Kalkulator Stopy Zwrotu (ROI)</h4>
                <p>Zderzyliśmy nakłady inwestycyjne (CAPEX) z rocznymi kosztami użytkowania (OPEX). Wprowadź aktualną cenę prądu na suwaku i sprawdź, po ilu latach pompa ciepła zacznie na siebie zarabiać.</p>
            </div>

            <div class="rk-intro-panel" id="panel-wytyczne">
                <h4>Wytyczne Wykonawcze dla Instalatorów</h4>
                <p>Zobaczysz, jak wybór źródła ciepła (Taryfa G12w vs Pompa SCOP 3.5) drastycznie zmienia wytyczne projektowe – od zagęszczenia rur po wymaganą masę jastrychu betonowego.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-intro-tab-btn');
    var panels = document.querySelectorAll('.rk-intro-panel');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Natychmiastowe usunięcie klas active (bez animacji, twarde przejście)
            tabs.forEach(function(t) { t.classList.remove('active'); });
            panels.forEach(function(p) { p.classList.remove('active'); });

            // Aktywacja klikniętego elementu
            this.classList.add('active');
            var targetPanel = this.getAttribute('data-panel');
            document.getElementById(targetPanel).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-buf-dark: #0f172a;
    --rk-buf-blue: #0284c7;
    --rk-buf-blue-light: #e0f2fe;
    --rk-buf-gray: #f8fafc;
    --rk-buf-border: #cbd5e1;
    --rk-buf-text: #334155;
    --rk-buf-amber: #d97706;
}

.rk-buf-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.06);
    border: 1px solid var(--rk-buf-border);
    overflow: hidden;
}

.rk-buf-header {
    background: linear-gradient(135deg, var(--rk-buf-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-buf-header h2 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-buf-body {
    padding: 40px 50px;
}

.rk-buf-paragraph {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-buf-text);
    margin-bottom: 25px;
}

.rk-buf-paragraph a {
    color: var(--rk-buf-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-buf-blue);
}

.rk-buf-paragraph a:hover {
    border-bottom-style: solid;
    background: var(--rk-buf-blue-light);
}

/* Panel kalkulatora */
.rk-buf-calc-panel {
    background: var(--rk-buf-gray);
    border: 1px solid var(--rk-buf-border);
    border-radius: 20px;
    padding: 30px;
    margin: 35px 0;
}

.rk-buf-sim-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-buf-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Suwak i Przyciski */
.rk-buf-controls-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.rk-buf-slider-box label {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-buf-dark);
    margin-bottom: 12px;
}

.rk-buf-slider-box .rk-buf-badge-price {
    background: var(--rk-buf-blue);
    color: #ffffff;
    padding: 3px 10px;
    border-radius: 8px;
    font-size: 16px;
}

.rk-buf-range {
    width: 100%;
    height: 6px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    -webkit-appearance: none;
}

.rk-buf-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-buf-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

.rk-buf-selector-box p {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-buf-dark);
    margin: 0 0 12px 0;
}

.rk-buf-btn-stack {
    display: flex;
    gap: 10px;
}

.rk-buf-size-btn {
    flex: 1;
    padding: 12px;
    background: #ffffff;
    border: 2px solid var(--rk-buf-border);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-buf-text);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

.rk-buf-size-btn.active {
    border-color: var(--rk-buf-blue);
    background: var(--rk-buf-blue-light);
    color: var(--rk-buf-blue);
}

/* Karty wynikowe */
.rk-buf-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    border-top: 1px dashed var(--rk-buf-border);
    padding-top: 25px;
}

.rk-buf-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-buf-border);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.rk-buf-res-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 8px;
    display: block;
}

.rk-buf-res-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-buf-dark);
}

/* Wzory matematyczne */
.rk-buf-formula-block {
    background: var(--rk-buf-gray);
    padding: 20px;
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    color: var(--rk-buf-dark);
    border-left: 4px solid var(--rk-buf-blue);
    margin: 20px 0;
    overflow-x: auto;
}

.rk-buf-inline-val {
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
    color: var(--rk-buf-dark);
}

@media (max-width: 768px) {
    .rk-buf-header, .rk-buf-body { padding: 30px 20px; }
    .rk-buf-controls-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-buf-btn-stack { flex-direction: column; }
    .rk-buf-results-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-koszty-bufora",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Ile kosztuje ogrzewanie podłogowe z bufora 1000 l w taryfie nocnej G12w?",
    "description": "Kalkulacja kosztów eksploatacyjnych ogrzewania podłogowego zasilanego z bufora ciepła 1000l w oparciu o płynne stawki taryfy nocnej i normę PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-koszty-bufora",
    "name": "Pojemność akumulacyjna i dobowe koszty taryfy nocnej G12w",
    "description": "Zbiór danych fizycznych wody i jastrychu betonowego w korelacji z rocznym zużyciem energii elektrycznej na cele grzewcze dla metraży 100-200 mkw.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt ładowania bufora 1000l",
      "taryfa g12w ogrzewanie podłogowe",
      "pojemność akumulacyjna wody wzór",
      "obciążenie cieplne budynku kalkulator",
      "bezwładność cieplna jastrychu"
    ],
    "measurementTechnique": "Termodynamiczne obliczenia pojemności cieplnej zładu wody przy skoku temperatur od 35 do 85 stopni Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Objętość bufora: 1000 litrów (1 m3).",
        "Pojemność energetyczna zładu przy delta T = 50K: 58,2 kWh.",
        "Roczne zapotrzebowanie energii: 5000 do 10000 kWh."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-koszty-bufora",
    "name": "Symulator Kosztów Eksploatacji Taryfy Nocnej",
    "description": "Interaktywny symulator obliczający na żywo roczne koszty poboru prądu przez grzałki bufora w oparciu o elastyczny suwak stawek taryfowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf-container" id="koszty-g12w-section">
    <div class="rk-buf-header">
        <h2>Ile kosztuje ogrzewanie podłogowe z bufora 1000 l w taryfie nocnej G12w?</h2>
    </div>

    <div class="rk-buf-body">
        <div class="rk-buf-paragraph">
            Ogrzewanie podłogowe z bufora 1000 l ładowanego w taryfie G12w kosztuje średnio od <strong id="txtMinCost">1 890 zł</strong> do <strong id="txtMaxCost">6 300 zł</strong> brutto rocznie za sam pobór energii na cele grzewcze, w zależności od metrażu budynku (100–200 m²) oraz jego standardu energetycznego. Zgodnie z wytycznymi normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>, projektowe obciążenie cieplne określa zapotrzebowanie na energię, którą w tym systemie musimy zmagazynować w ciągu 10 godzin trwania taniej strefy (22:00–6:00 oraz 13:00–15:00). Średni bazowy koszt 1 kWh prądu w strefie nocnej wynosi aktualnie <span class="rk-buf-inline-val id-curr-price">0.63 zł</span> brutto (wliczając opłatę zmienną dystrybucyjną).
        </div>

        <div class="rk-buf-paragraph">
            Ból inwestora polega na strachu przed gigantycznymi rachunkami za prąd i obawie, czy zbiornik o pojemności 1000 litrów nie wychłodzi się w środku mroźnego dnia, wymuszając włączenie grzałek w drogiej taryfie G11 (gdzie standardowa stawka wynosi ok. 0,95 zł brutto/kWh). 
        </div>

        <div class="rk-buf-calc-panel">
            <h3 class="rk-buf-sim-title">Evergreen Symulator Kosztów Taryfowych</h3>
            
            <div class="rk-buf-controls-grid">
                <div class="rk-buf-slider-box">
                    <label>
                        Cena prądu w strefie nocnej (G12w)
                        <span class="rk-buf-badge-price"><span id="lblBufPrice">0.63</span> zł/kWh</span>
                    </label>
                    <input type="range" id="sliderBufPrice" class="rk-buf-range" min="0.30" max="3.00" step="0.01" value="0.63">
                </div>
                
                <div class="rk-buf-selector-box">
                    <p>Wybierz powierzchnię budynku (WT 2021):</p>
                    <div class="rk-buf-btn-stack">
                        <button class="rk-buf-size-btn" data-size="100">100 m²</button>
                        <button class="rk-buf-size-btn active" data-size="150">150 m²</button>
                        <button class="rk-buf-size-btn" data-size="200">200 m²</button>
                    </div>
                </div>
            </div>

            <div class="rk-buf-results-grid">
                <div class="rk-buf-res-card">
                    <span class="rk-buf-res-label">Koszt jednego ładowania</span>
                    <div class="rk-buf-res-val" id="cardOneCharge" style="color: var(--rk-buf-amber);">36.67 zł</div>
                </div>
                <div class="rk-buf-res-card">
                    <span class="rk-buf-res-label">Szacowany koszt roczny</span>
                    <div class="rk-buf-res-val" id="cardAnnualCost" style="color: var(--rk-buf-blue);">4 725 zł</div>
                </div>
                <div class="rk-buf-res-card">
                    <span class="rk-buf-res-label">Pojemność bufora</span>
                    <div class="rk-buf-res-val">58.2 <span>kWh</span></div>
                </div>
            </div>
        </div>

        <div class="rk-buf-paragraph">
            Wodne ogrzewanie podłogowe to system niskotemperaturowym, co jest kluczem do sukcesu. Im niższa temperatura zasilania pętli, tym większą pojemność cieplną możemy wydobyć z bufora. Policzmy realną pojemność akumulacyjną wody. Przyjmując gęstość wody ro = 1000 kg/m³ oraz ciepło właściwe c_w = 4,19 kJ/(kg*K), bufor naładowany do temperatury T_z = 85 stopni Celsjusza i schładzany do temperatury zasilania podłogówki T_p = 35 stopni Celsjusza dysponuje użyteczną różnicą temperatur delta T = 50 K.
        </div>

        <div class="rk-buf-formula-block">
            Q_aku = (V &times; ro &times; c_w &times; delta T) / 3600<br>
            Q_aku = (1 m³ &times; 1000 kg/m³ &times; 4.19 kJ/(kg*K) &times; 50 K) / 3600 &approx; <strong>58.2 kWh</strong>
        </div>

        <div class="rk-buf-paragraph">
            Konsekwencją błędnego niedoszacowania tego parametru jest niedogrzanie budynku. Jeśli dom o powierzchni <span id="txtDynSize">150</span> m² w standardzie WT 2021 ma projektowe obciążenie cieplne na poziomie <span id="txtDynObc">6.0</span> kW, to przy temperaturze -20 stopni Celsjusza jego dobowe zapotrzebowanie wynosi <span id="txtDynDob">144</span> kWh. Ponieważ bufor mieści niezmiennie <strong>58.2 kWh</strong> energii (wartość fizyczna zładu), brakujące <span id="txtDynBrak">85.8</span> kWh musi zostać zmagazynowane bezpośrednio w <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">jastrychu betonowym podłogówki</a> poprzez celowe podniesienie temperatury w pomieszczeniach o 1-1,5 stopnia pod koniec trwania taryfy nocnej. Jeśli beton ma zbyt małą grubość (poniżej normowych 45 mm czystego nadlewu nad rurą według <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>), dom drastycznie wychłodzi się w dzień.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('sliderBufPrice');
    var lblPrice = document.getElementById('lblBufPrice');
    var txtMinCost = document.getElementById('txtMinCost');
    var txtMaxCost = document.getElementById('txtMaxCost');
    var currPricePlaceholders = document.querySelectorAll('.id-curr-price');
    
    // Karty
    var cardOneCharge = document.getElementById('cardOneCharge');
    var cardAnnualCost = document.getElementById('cardAnnualCost');
    
    // Tekst dolny dynamiczny
    var txtDynSize = document.getElementById('txtDynSize');
    var txtDynObc = document.getElementById('txtDynObc');
    var txtDynDob = document.getElementById('txtDynDob');
    var txtDynBrak = document.getElementById('txtDynBrak');
    
    var btns = document.querySelectorAll('.rk-buf-size-btn');
    var selectedSize = 150;

    var sizeData = {
        "100": { q: 5000, obc: 4.0, dob: 96, brak: 37.8 },
        "150": { q: 7500, obc: 6.0, dob: 144, brak: 85.8 },
        "200": { q: 10000, obc: 8.0, dob: 192, brak: 133.8 }
    };

    function formatCurrency(num) {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " zł";
    }

    function updateBufferSim() {
        var price = parseFloat(slider.value);
        lblPrice.textContent = price.toFixed(2);
        
        currPricePlaceholders.forEach(function(el) {
            el.textContent = price.toFixed(2) + " zł";
        });

        // Aktualizacja zakresów w tekście górnym (dla 100m2 i 200m2)
        txtMinCost.textContent = formatCurrency(5000 * price);
        txtMaxCost.textContent = formatCurrency(10000 * price);

        // Wyliczenia dla wybranego profilu metrażu
        var activeData = sizeData[selectedSize.toString()];
        var oneChargeCost = 58.2 * price;
        var annualCost = activeData.q * price;

        cardOneCharge.textContent = oneChargeCost.toFixed(2) + " zł";
        cardAnnualCost.textContent = formatCurrency(annualCost);

        // Aktualizacja tekstu dolnego akapitu
        txtDynSize.textContent = selectedSize;
        txtDynObc.textContent = activeData.obc.toFixed(1);
        txtDynDob.textContent = activeData.dob;
        txtDynBrak.textContent = activeData.brak.toFixed(1);
    }

    slider.addEventListener('input', updateBufferSim);

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            selectedSize = parseInt(this.getAttribute('data-size'));
            updateBufferSim();
        });
    });

    // Pierwsze przeliczenie
    updateBufferSim();
});
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-primary: #3b82f6;
    --rk-comp-accent: #f59e0b;
    --rk-comp-light: #f8fafc;
    --rk-comp-text: #475569;
    --rk-comp-border: #e2e8f0;
    --rk-comp-red: #ef4444;
    --rk-comp-green: #10b981;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-comp-border);
    overflow: hidden;
}

.rk-comp-header {
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-comp-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-comp-header p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
}

.rk-comp-body {
    padding: 40px 50px;
}

.rk-comp-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-comp-text);
    margin-bottom: 30px;
}

.rk-comp-text a {
    color: var(--rk-comp-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-comp-text a:hover {
    color: var(--rk-comp-accent);
}

.rk-comp-text strong {
    color: var(--rk-comp-dark);
    font-weight: 800;
}

/* Interaktywny Moduł Porównawczy */
.rk-comp-module {
    background: var(--rk-comp-light);
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-comp-border);
    margin-bottom: 30px;
}

.rk-comp-tabs {
    display: flex;
    background: #ffffff;
    border-radius: 12px;
    padding: 6px;
    border: 1px solid var(--rk-comp-border);
    margin-bottom: 30px;
    gap: 5px;
}

.rk-comp-tab {
    flex: 1;
    padding: 14px 20px;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-text);
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-comp-tab.active {
    background: var(--rk-comp-dark);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.2);
}

/* Karty Porównawcze */
.rk-comp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-comp-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
}

.rk-comp-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 15px;
    border-bottom: 1px dashed var(--rk-comp-border);
}

.rk-comp-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-icon-bufor { background: #eff6ff; color: var(--rk-comp-primary); }
.rk-icon-pompa { background: #fffbeb; color: var(--rk-comp-accent); }

/* Dane w kartach */
.rk-comp-data-row {
    margin-bottom: 15px;
}

.rk-comp-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 5px;
    display: block;
    letter-spacing: 0.5px;
}

.rk-comp-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-comp-dark);
}

.rk-comp-value.good { color: var(--rk-comp-green); }
.rk-comp-value.bad { color: var(--rk-comp-red); }

.rk-comp-desc {
    font-size: 14px;
    color: var(--rk-comp-text);
    line-height: 1.6;
    margin-top: 5px;
}

/* Zawartość zakładek */
.rk-tab-content {
    display: none;
    animation: fadeIn 0.4s ease;
}

.rk-tab-content.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-body { padding: 30px 20px; }
    .rk-comp-tabs { flex-direction: column; }
    .rk-comp-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-zakup",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Jak wypada koszt zakupu i montażu pompy ciepła w porównaniu do bufora z grzałkami?",
    "description": "Szczegółowe zestawienie kosztów inwestycyjnych (CAPEX) oraz eksploatacyjnych (OPEX), wliczając współczynnik SCOP pompy ciepła i awaryjność podzespołów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-koszty",
    "name": "Zestawienie kosztów startowych i awaryjności: Pompa vs Bufor",
    "description": "Baza danych zestawiająca nakłady inwestycyjne, współczynnik SCOP oraz ryzyko awarii mechanicznych systemów grzewczych w domach jednorodzinnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt montażu pompy ciepła",
      "cena grzałki do bufora",
      "awarie pompy ciepła sprężarka",
      "współczynnik scop podłogówka",
      "punkt biwalentny pn-en 14825"
    ],
    "measurementTechnique": "Porównanie kosztów zakupu urządzeń na podstawie ofert rynkowych oraz wyliczenie zużycia energii w oparciu o SCOP 3,5 i taryfę G11/G12w.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bufor 1000l: 12000 - 16000 zł, awaryjność niska (koszt grzałki 250-400 zł).",
        "Pompa Ciepła: 35000 - 58000 zł, ryzyko drogich awarii sprężarki po gwarancji.",
        "SCOP: Średnioroczne 3,5-4,0 redukujące zużycie energii z sieci."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-porownanie",
    "name": "Symulator Kosztów Inwestycyjnych vs Eksploatacyjnych",
    "description": "Aplikacja pozwalająca inwestorowi na interaktywne zderzenie niskich nakładów inwestycyjnych bufora z wysoką wydajnością SCOP pompy ciepła.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="koszt-zakupu-app">
    <div class="rk-comp-header">
        <h2>Jak wypada koszt zakupu i montażu?</h2>
        <p>Inwestorzy często wpadają w pułapkę myślenia, że pompa ciepła jest jedynym słusznym rozwiązaniem, ignorując fakt, że jej koszt potrafi zjeść oszczędności na wiele lat w przód.</p>
    </div>

    <div class="rk-comp-body">
        
        <div class="rk-comp-module">
            <div class="rk-comp-tabs">
                <button class="rk-comp-tab active" data-target="tab-start">1. Koszty na start i Awaryjność</button>
                <button class="rk-comp-tab" data-target="tab-eksplo">2. Koszty prądu (SCOP vs COP 1:1)</button>
            </div>

            <div class="rk-tab-content active" id="tab-start">
                <div class="rk-comp-grid">
                    <div class="rk-comp-card">
                        <div class="rk-comp-card-title">
                            <div class="rk-comp-icon rk-icon-bufor">
                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M12 2a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4"></path><path d="M12 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4"></path></svg>
                            </div>
                            Bufor 1000L + Grzałki
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Koszt kotłowni (Brutto)</span>
                            <span class="rk-comp-value good">12 000 &#8211; 16 000 zł</span>
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Złożoność i Serwis</span>
                            <span class="rk-comp-value" style="font-size: 20px;">Konstrukcja wieczna</span>
                            <p class="rk-comp-desc">Brak sprężarki, gazu i drogiej elektroniki. Spalona grzałka o mocy 6 kW to koszt rzędu <strong>250–400 zł</strong>, a jej wymiana zajmuje 30 minut.</p>
                        </div>
                    </div>

                    <div class="rk-comp-card">
                        <div class="rk-comp-card-title">
                            <div class="rk-comp-icon rk-icon-pompa">
                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                            </div>
                            Pompa Ciepła
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Koszt kotłowni (Brutto)</span>
                            <span class="rk-comp-value bad">35 000 &#8211; 58 000 zł</span>
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Złożoność i Serwis</span>
                            <span class="rk-comp-value" style="font-size: 20px;">Ryzyko po gwarancji</span>
                            <p class="rk-comp-desc">Urządzenie skomplikowane mechanicznie. Awaria sprężarki, zaworów rozprężnych czy płyty głównej może pochłonąć tysiące złotych.</p>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-tab-content" id="tab-eksplo">
                <div class="rk-comp-grid">
                    <div class="rk-comp-card">
                        <div class="rk-comp-card-title">
                            <div class="rk-comp-icon rk-icon-bufor">
                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                            </div>
                            Taryfa Nocna (COP 1:1)
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Zużycie prądu (Dom 150m²)</span>
                            <span class="rk-comp-value bad">7 500 kWh</span>
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Roczny rachunek (przy 0,63 zł)</span>
                            <span class="rk-comp-value bad">4 725 zł</span>
                            <p class="rk-comp-desc">Grzałki pracują ze sprawnością 1:1. Z 1 kWh prądu z sieci uzyskujesz 1 kWh ciepła. Niskie koszty zawdzięczamy wyłącznie akumulacji <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">taniego prądu z taryfy</a>.</p>
                        </div>
                    </div>

                    <div class="rk-comp-card">
                        <div class="rk-comp-card-title">
                            <div class="rk-comp-icon rk-icon-pompa">
                                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                            </div>
                            Magia SCOP (COP 3.5)
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Zużycie prądu (Dom 150m²)</span>
                            <span class="rk-comp-value good">2 142 kWh</span>
                        </div>
                        <div class="rk-comp-data-row">
                            <span class="rk-comp-label">Roczny rachunek (przy 0,95 zł)</span>
                            <span class="rk-comp-value good">2 035 zł</span>
                            <p class="rk-comp-desc">To potężna broń pompy. Generując te same 7500 kWh ciepła, pompa zużyje tylko 1/3 energii z sieci. Nawet w drogiej taryfie G11 rachunki są drastycznie niższe.</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-comp-text">
            <p>
                Różnica w nakładach inwestycyjnych na start wynosi więc od <strong>23 000 zł do nawet 42 000 zł</strong> na korzyść systemu buforowego. Urządzenia dobiera się na podstawie punktu biwalentnego określonego w normie <strong>PN-EN 14825</strong>. 
                
            </p>
            <p>
                Najczęstszym błędem przy wyborze <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> na siłę jest montowanie jej w domach o bardzo małym zapotrzebowaniu na ciepło (np. domy parterowe 100 m², energooszczędne, zużywające 3000 kWh rocznie). W takim przypadku roczna różnica w rachunkach wynosi zaledwie <strong>1260 zł</strong>. Przy różnicy w cenie zakupu wynoszącej 25 000 zł, inwestycja w pompę zwraca się po <strong>ponad 19 latach</strong>, co często przekracza żywotność technologiczną sprężarki.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-comp-tab');
    var contents = document.querySelectorAll('.rk-tab-content');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Usunięcie klasy active ze wszystkich przycisków i treści
            tabs.forEach(function(t) { t.classList.remove('active'); });
            contents.forEach(function(c) { c.classList.remove('active'); });

            // Dodanie klasy active do klikniętego taba i powiązanej treści
            this.classList.add('active');
            var targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-roi-dark: #1e293b;
    --rk-roi-blue: #2563eb;
    --rk-roi-blue-light: #eff6ff;
    --rk-roi-red: #ef4444;
    --rk-roi-green: #10b981;
    --rk-roi-gray-bg: #f8fafc;
    --rk-roi-text: #475569;
    --rk-roi-border: #e2e8f0;
}

.rk-roi-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-roi-border);
    overflow: hidden;
}

.rk-roi-header {
    background: var(--rk-roi-dark);
    padding: 40px 50px;
    color: #ffffff;
    text-align: left;
    border-bottom: 5px solid var(--rk-roi-blue);
}

.rk-roi-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-roi-header p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
    max-width: 800px;
}

.rk-roi-body {
    padding: 40px 50px;
}

.rk-roi-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-roi-text);
    margin-bottom: 35px;
}

.rk-roi-intro a {
    color: var(--rk-roi-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-roi-intro a:hover {
    color: var(--rk-roi-dark);
}

/* Interaktywny Panel Finansowy */
.rk-roi-dashboard {
    background: var(--rk-roi-gray-bg);
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-roi-border);
    margin-bottom: 35px;
}

/* Nowa sekcja - Ceny prądu */
.rk-roi-prices {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 25px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-price-control label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin-bottom: 15px;
}

.rk-price-val {
    color: var(--rk-roi-blue);
    background: var(--rk-roi-blue-light);
    padding: 2px 8px;
    border-radius: 8px;
}

.rk-price-slider {
    width: 100%;
    height: 6px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    -webkit-appearance: none;
}

.rk-price-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-roi-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(37, 99, 235, 0.3);
    transition: transform 0.1s;
}

.rk-price-slider::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

.rk-roi-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-roi-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-roi-btn {
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 12px;
    padding: 15px 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-roi-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-roi-btn.active {
    border-color: var(--rk-roi-blue);
    background: var(--rk-roi-blue-light);
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.1);
}

.rk-roi-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin-bottom: 5px;
}

.rk-roi-btn-sub {
    font-size: 13px;
    color: var(--rk-roi-text);
}

/* Wyniki finansowe karty */
.rk-roi-results-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-roi-finance-card {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-roi-finance-card.highlight {
    border: 2px solid var(--rk-roi-blue);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.15);
}

.rk-roi-card-header {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-roi-badge {
    background: var(--rk-roi-blue-light);
    color: var(--rk-roi-blue);
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
}

.rk-roi-main-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    margin-bottom: 5px;
}

.rk-roi-sub-val {
    font-size: 14px;
    color: var(--rk-roi-text);
    margin-bottom: 20px;
    font-weight: 500;
}

.rk-roi-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid var(--rk-roi-border);
    padding-top: 15px;
}

.rk-roi-list li {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--rk-roi-text);
    margin-bottom: 10px;
}

.rk-roi-list li span:last-child {
    font-weight: 700;
    color: var(--rk-roi-dark);
}

/* Wskaźnik ROI */
.rk-roi-summary {
    background: #ffffff;
    border-top: 1px solid var(--rk-roi-border);
    padding: 25px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 0 0 16px 16px;
}

.rk-roi-time {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-roi-blue);
}

.rk-roi-time-label {
    font-size: 15px;
    color: var(--rk-roi-text);
    font-weight: 600;
    max-width: 250px;
}

.rk-roi-alert {
    background: #fef2f2;
    border-left: 4px solid var(--rk-roi-red);
    padding: 15px 20px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.6;
    color: #991b1b;
    font-weight: 600;
    transition: all 0.3s;
}

.rk-roi-alert.safe {
    background: #ecfdf5;
    border-left-color: var(--rk-roi-green);
    color: #065f46;
}

.rk-roi-alert.warning {
    background: #fffbeb;
    border-left-color: #f59e0b;
    color: #92400e;
}

@media (max-width: 768px) {
    .rk-roi-header, .rk-roi-body { padding: 30px 20px; }
    .rk-roi-header h2 { font-size: 26px; }
    .rk-roi-prices { grid-template-columns: 1fr; gap: 20px; }
    .rk-roi-options { grid-template-columns: 1fr; }
    .rk-roi-results-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-roi-summary { flex-direction: column; text-align: center; gap: 15px; padding: 20px; }
    .rk-roi-time-label { max-width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-roi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Jaka jest realna stopa zwrotu i czas amortyzacji pompy ciepła względem bufora elektrycznego?",
    "description": "Dynamiczna analiza finansowa NPV i ROI porównująca instalację bufora ciepła w taryfie G12w z pompą ciepła w taryfie G11, bazująca na zmiennych cenach prądu za 1 kWh.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-roi",
    "name": "Zestawienie parametrów techniczno-ekonomicznych ROI dla pomp ciepła",
    "description": "Baza danych inwestycyjnych i eksploatacyjnych dla budynków 100-200 mkw. korelująca nakłady z płynnymi stawkami taryf energetycznych G11 i G12w.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas amortyzacji pompy ciepła",
      "realna stopa zwrotu ogrzewania",
      "porównanie kosztów bufor vs pompa",
      "koszty serwisu pompy ciepła",
      "kalkulator opłacalności z cenami prądu",
      "opłacalność pompy ciepła dom energooszczędny"
    ],
    "measurementTechnique": "Obliczenia czystej wartości bieżącej (NPV) i stopy zwrotu (ROI) oparte na manualnie korygowanej stawce za 1 kWh energii elektrycznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom 100 m² (WT 2021): Różnica inwestycyjna 24500 zł.",
        "Dom 150 m² (WT 2021): Różnica inwestycyjna 29500 zł.",
        "Dom 200 m² (WT 2021): Różnica inwestycyjna 36000 zł.",
        "Dom 150 m² (Energooszczędny): Różnica inwestycyjna 27500 zł."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-roi",
    "name": "Symulator Amortyzacji Systemów Grzewczych",
    "description": "Interaktywny symulator finansowy wyliczający na żywo czas zwrotu z inwestycji (ROI) przy wymianie źródła ciepła dla różnych standardów budynków w zależności od aktualnych stawek dystrybutorów prądu.",
    "applicationCategory": "FinanceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="analiza-roi-app">
    <div class="rk-roi-header">
        <h2>Jaka jest realna stopa zwrotu i czas amortyzacji?</h2>
        <p>Inwestorzy dają się uwieść magii &#8222;niskich rachunków&#8221;, zapominając o matematyce finansowej. Wprowadź aktualne stawki i zobacz twarde dane ekonomiczne.</p>
    </div>

    <div class="rk-roi-body">
        <div class="rk-roi-intro">
            <p>Realny czas amortyzacji pompy ciepła w stosunku do bufora z grzałkami elektrycznymi silnie zależy nie tylko od metrażu budynku, ale przede wszystkim od <strong>aktualnych stawek za energię elektryczną</strong>. Obliczenia stopy zwrotu (ROI) opierają się na metodzie czystej wartości bieżącej (NPV) z uwzględnieniem kosztów serwisu pompy ciepła, które wynoszą średnio <strong>500 zł brutto rocznie</strong> (obowiązkowe przeglądy gwarancyjne wg wymogów unijnej dyrektywy f-gazowej).</p>
            <p>Sprawdź <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">realne wskaźniki dla swojego domu</a>, dopasowując cenę 1 kWh u swojego dostawcy prądu. Wyliczenia porównują układ buforowy (taryfa G12w) z pompą ciepła o średniorocznym SCOP = 3,5 (taryfa G11).</p>
        </div>

        <div class="rk-roi-dashboard">
            
            <h3 class="rk-roi-title">1. Wprowadź stawki za 1 kWh (z dystrybucją)</h3>
            <div class="rk-roi-prices">
                <div class="rk-price-control">
                    <label>
                        Taryfa G12w (Tania &#8211; Bufor)
                        <span class="rk-price-val"><span id="lblG12">0.63</span> zł</span>
                    </label>
                    <input type="range" id="sliderG12" class="rk-price-slider" min="0.40" max="3.00" step="0.01" value="0.63">
                </div>
                <div class="rk-price-control">
                    <label>
                        Taryfa G11 (Stała &#8211; Pompa)
                        <span class="rk-price-val"><span id="lblG11">0.95</span> zł</span>
                    </label>
                    <input type="range" id="sliderG11" class="rk-price-slider" min="0.60" max="4.00" step="0.01" value="0.95">
                </div>
            </div>

            <h3 class="rk-roi-title">2. Wybierz profil swojego budynku</h3>
            <div class="rk-roi-options">
                <button class="rk-roi-btn active" data-id="1">
                    <span class="rk-roi-btn-title">Dom 100 m² (WT 2021)</span>
                    <span class="rk-roi-btn-sub">Zapotrzebowanie: 5 000 kWh/rok</span>
                </button>
                <button class="rk-roi-btn" data-id="2">
                    <span class="rk-roi-btn-title">Dom 150 m² (WT 2021)</span>
                    <span class="rk-roi-btn-sub">Zapotrzebowanie: 7 500 kWh/rok</span>
                </button>
                <button class="rk-roi-btn" data-id="3">
                    <span class="rk-roi-btn-title">Dom 200 m² (WT 2021)</span>
                    <span class="rk-roi-btn-sub">Zapotrzebowanie: 10 000 kWh/rok</span>
                </button>
                <button class="rk-roi-btn" data-id="4">
                    <span class="rk-roi-btn-title">Dom 150 m² (Energooszczędny)</span>
                    <span class="rk-roi-btn-sub">Zapotrzebowanie: 4 500 kWh/rok</span>
                </button>
            </div>

            <div class="rk-roi-results-wrapper">
                <div class="rk-roi-finance-card">
                    <div class="rk-roi-card-header">
                        Bufor 1000L + Grzałki
                        <span class="rk-roi-badge" style="background:#f1f5f9; color:#64748b;">Taryfa G12w</span>
                    </div>
                    <div class="rk-roi-main-val" id="valInvBufor">13 500 zł</div>
                    <div class="rk-roi-sub-val">Koszt inwestycji (Start)</div>
                    <ul class="rk-roi-list">
                        <li><span>Roczny rachunek (prąd):</span> <span id="valCostBufor">3 150 zł</span></li>
                        <li><span>Roczny serwis (naprawy):</span> <span>0 zł</span></li>
                    </ul>
                </div>

                <div class="rk-roi-finance-card highlight">
                    <div class="rk-roi-card-header">
                        Pompa Ciepła (Powietrze)
                        <span class="rk-roi-badge">SCOP 3.5 (G11)</span>
                    </div>
                    <div class="rk-roi-main-val" id="valInvPompa">38 000 zł</div>
                    <div class="rk-roi-sub-val">Koszt inwestycji (Start)</div>
                    <ul class="rk-roi-list">
                        <li><span>Roczny rachunek (prąd):</span> <span id="valCostPompa">1 356 zł</span></li>
                        <li style="color:var(--rk-roi-red);"><span>Obowiązkowy przegląd:</span> <span id="valSerPompa">0 zł</span></li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-roi-summary">
                <div class="rk-roi-time-label">
                    Różnica inwestycyjna rzędu <strong id="valDiff">24 500 zł</strong> zwróci się w postaci niższych rachunków za prąd po:
                </div>
                <div class="rk-roi-time" id="valRoi">13,6 lat</div>
            </div>
        </div>

        <div class="rk-roi-alert" id="alertBox">
            Jeśli inwestor wyda oszczędności na pompę ciepła w małym domu, będzie spłacał nadwyżkę inwestycyjną przez kilkanaście lat.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Slidery
    var sliderG12 = document.getElementById('sliderG12');
    var sliderG11 = document.getElementById('sliderG11');
    var lblG12 = document.getElementById('lblG12');
    var lblG11 = document.getElementById('lblG11');
    
    // Przyciski i pola wyników
    var btns = document.querySelectorAll('.rk-roi-btn');
    var valInvBufor = document.getElementById('valInvBufor');
    var valCostBufor = document.getElementById('valCostBufor');
    var valInvPompa = document.getElementById('valInvPompa');
    var valCostPompa = document.getElementById('valCostPompa');
    var valSerPompa = document.getElementById('valSerPompa');
    var valDiff = document.getElementById('valDiff');
    var valRoi = document.getElementById('valRoi');
    var alertBox = document.getElementById('alertBox');

    var currentProfile = "1";

    // Baza danych profili (zużycie i koszty stałe)
    var profiles = {
        "1": { q: 5000, invB: 13500, invP: 38000, diff: 24500, serP: 0 },
        "2": { q: 7500, invB: 14500, invP: 44000, diff: 29500, serP: 0 },
        "3": { q: 10000, invB: 16000, invP: 52000, diff: 36000, serP: 0 },
        "4": { q: 4500, invB: 14500, invP: 42000, diff: 27500, serP: 500 }
    };

    function formatPln(num) {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " zł";
    }

    function updateCalculations() {
        var priceG12 = parseFloat(sliderG12.value);
        var priceG11 = parseFloat(sliderG11.value);
        
        lblG12.textContent = priceG12.toFixed(2);
        lblG11.textContent = priceG11.toFixed(2);

        var data = profiles[currentProfile];
        
        // Koszty Bufora (1:1 zużycie z grzałek)
        var costB = data.q * priceG12;
        
        // Koszty Pompy Ciepła (Zużycie przez SCOP 3.5)
        var costP = (data.q / 3.5) * priceG11;
        var totalCostP = costP + data.serP;

        var savings = costB - totalCostP;
        var roi = 0;
        
        valInvBufor.textContent = formatPln(data.invB);
        valCostBufor.textContent = formatPln(costB);
        
        valInvPompa.textContent = formatPln(data.invP);
        valCostPompa.textContent = formatPln(costP);
        valSerPompa.textContent = formatPln(data.serP);
        
        valDiff.textContent = formatPln(data.diff);

        // Analiza logiczna i generowanie komunikatów (bez operatora ampersand)
        if (savings > 0) {
            roi = data.diff / savings;
            valRoi.textContent = roi.toFixed(1) + " lat";
            
            if (roi < 10) {
                alertBox.className = "rk-roi-alert safe";
                alertBox.textContent = "Opłacalna inwestycja. Szybki zwrot z nadwyżki kapitałowej gwarantuje generowanie realnych oszczędności finansowych.";
            } else {
                if (roi < 15) {
                    alertBox.className = "rk-roi-alert warning";
                    alertBox.textContent = "Zwrot powyżej 10 lat. Zastanów się nad ryzykiem usterki pompy ciepła po okresie gwarancyjnym, zanim inwestycja w pełni się zwróci.";
                } else {
                    alertBox.className = "rk-roi-alert";
                    alertBox.textContent = "Nieopłacalna inwestycja w aktualnych realiach cenowych. Będziesz spłacać pompę ciepła dłużej niż wynosi jej technologiczna żywotność.";
                }
            }
        } else {
            valRoi.textContent = "Brak zwrotu";
            alertBox.className = "rk-roi-alert";
            alertBox.textContent = "KATASTROFA FINANSOWA: Przy obecnym stosunku cen taryf G12w i G11, bufor generuje niższe koszty roczne niż pompa ciepła. Inwestycja w pompę to czysta strata.";
        }
    }

    // Nasłuchiwanie zmian na suwakach
    sliderG12.addEventListener('input', updateCalculations);
    sliderG11.addEventListener('input', updateCalculations);

    // Nasłuchiwanie zmian na przyciskach profili
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            currentProfile = this.getAttribute('data-id');
            updateCalculations();
        });
    });

    // Inicjalizacja przy pierwszym załadowaniu
    updateCalculations();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-primary: #2563eb;
    --rk-calc-bg: #f8fafc;
    --rk-calc-accent: #10b981;
    --rk-calc-text: #334155;
    --rk-calc-border: #e2e8f0;
}

.rk-calc-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-calc-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-calc-header p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
}

.rk-calc-body {
    padding: 40px 50px;
}

/* Interfejs Kalkulatora */
.rk-calc-dashboard {
    background: var(--rk-calc-bg);
    border-radius: 20px;
    padding: 35px;
    margin-bottom: 40px;
    border: 1px solid var(--rk-calc-border);
}

.rk-slider-container {
    margin-bottom: 30px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 15px;
}

.rk-val-badge {
    background: var(--rk-calc-primary);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 12px;
    font-size: 20px;
}

.rk-range-input {
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    -webkit-appearance: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-calc-primary);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(37, 99, 235, 0.3);
    transition: transform 0.1s;
}

.rk-range-input::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Wyniki Grid */
.rk-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-result-card {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 10px;
    display: block;
    letter-spacing: 0.5px;
}

.rk-result-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

.rk-result-value span {
    font-size: 16px;
    font-weight: 600;
    color: #94a3b8;
}

/* Kroki Algorytmu */
.rk-steps-container {
    counter-reset: rk-step;
}

.rk-step-item {
    position: relative;
    padding-left: 50px;
    margin-bottom: 35px;
}

.rk-step-item::before {
    counter-increment: rk-step;
    content: counter(rk-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 32px;
    height: 32px;
    background: var(--rk-calc-accent);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3);
}

.rk-step-item h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 10px 0;
    line-height: 1.4;
}

.rk-step-item p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-calc-text);
    margin: 0 0 10px 0;
}

.rk-math-box {
    background: #f1f5f9;
    padding: 15px 20px;
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    color: #1e293b;
    border-left: 4px solid var(--rk-calc-primary);
    overflow-x: auto;
    margin-bottom: 15px;
}

.rk-math-highlight {
    color: var(--rk-calc-primary);
}

.rk-step-conclusion {
    display: inline-block;
    background: #ecfdf5;
    color: #047857;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #a7f3d0;
}

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-body { padding: 30px 20px; }
    .rk-calc-dashboard { padding: 25px 20px; }
    .rk-results-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-step-item { padding-left: 0; padding-top: 45px; }
    .rk-step-item::before { top: 0; left: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Kalkulator doboru mocy grzałek i pojemności bufora: Algorytm krok po kroku",
    "description": "Interaktywny algorytm wyliczający wymagane zasilanie elektryczne i objętość bufora na podstawie projektowego obciążenia cieplnego z normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-kalkulator",
    "name": "Wzory fizyczne doboru bufora ciepła wg PN-EN 12831",
    "description": "Zestaw stałych fizycznych i współczynników używanych do obliczania dobowego zapotrzebowania na energię, mocy układów grzewczych i pojemności wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator doboru mocy grzałek",
      "dobór pojemności bufora do podłogówki",
      "wzór na pojemność cieplną wody",
      "obciążenie cieplne pn-en 12831",
      "akumulacja ciepła w jastrychu"
    ],
    "measurementTechnique": "Bilans energetyczny uwzględniający przerwę w dostawie energii w taryfie G12w oraz ujemną pojemność akumulacyjną wylewki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciepło właściwe wody (cw) = 4,19 kJ/(kg*K).",
        "Różnica temperatur delta T = 50 K (85°C - 35°C).",
        "Sprawność przesyłu = 0,98."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-kalkulator",
    "name": "Kalkulator Inżynierski Bufora Ciepła",
    "description": "Zaawansowane narzędzie skryptowe do dynamicznego obliczania optymalnej mocy grzałek elektrycznych i pojemności zbiornika akumulacyjnego na żywo.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper" id="kalkulator-bufora-app">
    <div class="rk-calc-header">
        <h2>Kalkulator doboru mocy grzałek i pojemności bufora</h2>
        <p>Przesuń suwak, aby dostosować projektowe obciążenie cieplne i zobacz w czasie rzeczywistym, jak zmieniają się wytyczne instalacyjne na podstawie algorytmu bilansu energetycznego.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-dashboard">
            <div class="rk-slider-container">
                <div class="rk-slider-label">
                    <span>Obciążenie cieplne budynku (Q<sub>obl</sub>)</span>
                    <div class="rk-val-badge"><span id="valQobl">6.5</span> kW</div>
                </div>
                <input type="range" id="inputQobl" class="rk-range-input" min="3" max="15" step="0.5" value="6.5">
            </div>

            <div class="rk-results-grid">
                <div class="rk-result-card">
                    <span class="rk-result-title">Zapotrzebowanie dobowe</span>
                    <div class="rk-result-value"><span id="valEdob">156</span> <span>kWh</span></div>
                </div>
                <div class="rk-result-card">
                    <span class="rk-result-title">Min. moc grzałek</span>
                    <div class="rk-result-value" style="color: var(--rk-calc-primary);"><span id="valPgrz">15.9</span> <span>kW</span></div>
                </div>
                <div class="rk-result-card">
                    <span class="rk-result-title">Pojemność bufora</span>
                    <div class="rk-result-value" style="color: var(--rk-calc-accent);"><span id="valVbufor">1013</span> <span>litrów</span></div>
                </div>
            </div>
        </div>

        <div class="rk-steps-container">
            <div class="rk-step-item">
                <h3>Wyznaczenie maksymalnej dobowej energii grzewczej</h3>
                <p>Obliczamy maksymalne dobowe zapotrzebowanie na energię E<sub>dob</sub> w najzimniejszy dzień roku na podstawie projektowego obciążenia cieplnego wyznaczonego wg <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>.</p>
                <div class="rk-math-box">
                    E<sub>dob</sub> = Q<sub>obl</sub> &times; 24 h<br>
                    E<sub>dob</sub> = <span class="rk-math-highlight dynamic-q">6.5</span> &times; 24 = <strong class="dynamic-edob">156 kWh</strong>
                </div>
            </div>

            <div class="rk-step-item">
                <h3>Wyznaczenie minimalnej mocy grzałek elektrycznych</h3>
                <p>Grzałki muszą dostarczyć całą energię wyłącznie w czasie trwania taniej taryfy (10 godzin). Uwzględniamy sprawność przesyłu &eta; = 0,98.</p>
                <div class="rk-math-box">
                    P<sub>grz</sub> = E<sub>dob</sub> / (t<sub>tania</sub> &times; &eta;)<br>
                    P<sub>grz</sub> = <span class="rk-math-highlight dynamic-edob">156</span> / (10 &times; 0.98) &approx; <strong class="dynamic-pgrz">15.92 kW</strong>
                </div>
                <div class="rk-step-conclusion" id="concPgrz">
                    Zastosuj zespół grzałek o mocy min. 16 kW. Bezpieczniki przedlicznikowe: min. 25 kW.
                </div>
            </div>

            <div class="rk-step-item">
                <h3>Obliczenie wymaganej pojemności bufora wodnego</h3>
                <p>Zapotrzebowanie na czas drogiej taryfy (14 h) wynosi <strong id="txtEdroga">91 kWh</strong>. Około 35% (<strong id="txtJastrych">31.85 kWh</strong>) zmagazynuje ciężki jastrych, resztę musi przejąć bufor przy pracy na parametrach 85/35&deg;C (&Delta;T = 50 K).</p>
                <div class="rk-math-box">
                    V = (E<sub>bufora</sub> &times; 3600) / (c<sub>w</sub> &times; &Delta;T)<br>
                    V = (<span class="rk-math-highlight dynamic-ebufor">59.15</span> &times; 3600) / (4.19 &times; 50) &approx; <strong class="dynamic-vbufor">1013 litrów</strong>
                </div>
                <div class="rk-step-conclusion" id="concVbufor">
                    Wymagany zbiornik o pojemności: 1000 l.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('inputQobl');
    
    // Elementy UI
    var vQobl = document.getElementById('valQobl');
    var vEdob = document.getElementById('valEdob');
    var vPgrz = document.getElementById('valPgrz');
    var vVbufor = document.getElementById('valVbufor');
    
    // Elementy w tekście
    var dynQ = document.querySelectorAll('.dynamic-q');
    var dynEdob = document.querySelectorAll('.dynamic-edob');
    var dynPgrz = document.querySelectorAll('.dynamic-pgrz');
    var dynEbufor = document.querySelectorAll('.dynamic-ebufor');
    var dynVbufor = document.querySelectorAll('.dynamic-vbufor');
    
    var txtEdroga = document.getElementById('txtEdroga');
    var txtJastrych = document.getElementById('txtJastrych');
    var concPgrz = document.getElementById('concPgrz');
    var concVbufor = document.getElementById('concVbufor');

    function roundStep(num, step) {
        return Math.ceil(num / step) * step;
    }

    function calculateSystem() {
        var q_obl = parseFloat(slider.value);
        
        // Krok 1
        var e_dob = q_obl * 24;
        
        // Krok 2
        var p_grz_raw = e_dob / (10 * 0.98);
        var p_grz_zainstalowana = roundStep(p_grz_raw, 3); 
        var moc_przylaczeniowa = p_grz_zainstalowana + 9;
        
        // Krok 3
        var e_droga = q_obl * 14;
        var e_jastrych = e_droga * 0.35;
        var e_bufor = e_droga - e_jastrych;
        var v_bufor_raw = (e_bufor * 3600) / (4.19 * 50);
        
        var v_bufor_norm = 500;
        if (v_bufor_raw > 600) { v_bufor_norm = 800; }
        if (v_bufor_raw > 900) { v_bufor_norm = 1000; }
        if (v_bufor_raw > 1200) { v_bufor_norm = 1500; }
        if (v_bufor_raw > 1700) { v_bufor_norm = 2000; }

        // Aktualizacja UI Głównego
        vQobl.textContent = q_obl.toFixed(1);
        vEdob.textContent = e_dob.toFixed(0);
        vPgrz.textContent = p_grz_raw.toFixed(1);
        vVbufor.textContent = Math.round(v_bufor_raw);

        // Aktualizacja klas dynamicznych (wzory)
        dynQ.forEach(function(el) { el.textContent = q_obl.toFixed(1); });
        dynEdob.forEach(function(el) { el.textContent = e_dob.toFixed(1) + ' kWh'; });
        dynPgrz.forEach(function(el) { el.textContent = p_grz_raw.toFixed(2) + ' kW'; });
        dynEbufor.forEach(function(el) { el.textContent = e_bufor.toFixed(2); });
        dynVbufor.forEach(function(el) { el.textContent = Math.round(v_bufor_raw) + ' litrów'; });
        
        // Aktualizacja tekstu w opisie
        txtEdroga.textContent = e_droga.toFixed(1) + ' kWh';
        txtJastrych.textContent = e_jastrych.toFixed(1) + ' kWh';
        
        // Konkluzje (zaokrąglanie i rekomendacje)
        concPgrz.innerHTML = 'Zastosuj zespół grzałek o mocy min. <strong>' + p_grz_zainstalowana + ' kW</strong>. Bezpieczniki przedlicznikowe: min. <strong>' + moc_przylaczeniowa + ' kW</strong>.';
        concVbufor.innerHTML = 'Najbliższy znormalizowany zbiornik rynkowy: <strong>' + v_bufor_norm + ' litrów</strong>.';
    }

    slider.addEventListener('input', calculateSystem);
    
    // Inicjalizacja przy starcie
    calculateSystem();
});
</script>



<style>
:root {
    --rk-proj-dark: #1e293b;
    --rk-proj-blue: #0284c7;
    --rk-proj-light: #f1f5f9;
    --rk-proj-orange: #f97316;
    --rk-proj-orange-light: #fff7ed;
    --rk-proj-text: #475569;
    --rk-proj-border: #e2e8f0;
}

.rk-proj-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-proj-border);
    overflow: hidden;
}

.rk-proj-header {
    background: var(--rk-proj-dark);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-proj-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-proj-header p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
}

.rk-proj-content {
    padding: 40px 50px;
}

.rk-proj-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-proj-text);
    margin-bottom: 30px;
}

.rk-proj-intro a {
    color: var(--rk-proj-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-proj-intro a:hover {
    color: var(--rk-proj-orange);
}

/* Interaktywny panel sterowania */
.rk-proj-interactive {
    background: var(--rk-proj-light);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 30px;
    border: 1px solid var(--rk-proj-border);
}

.rk-proj-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 8px;
    border-radius: 16px;
    border: 1px solid var(--rk-proj-border);
}

.rk-proj-btn {
    flex: 1;
    padding: 16px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-proj-text);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-proj-btn.active {
    background: var(--rk-proj-dark);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(30, 41, 59, 0.2);
}

/* Karty parametrów (Grid) */
.rk-proj-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-proj-card {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-proj-border);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-proj-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 25px -5px rgba(0,0,0,0.05);
}

.rk-proj-icon-wrapper {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: var(--rk-proj-orange-light);
    color: var(--rk-proj-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.rk-proj-card h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 10px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-proj-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-proj-blue);
    margin-bottom: 10px;
    display: block;
}

.rk-proj-desc {
    font-size: 14px;
    color: var(--rk-proj-text);
    line-height: 1.5;
    margin: 0;
}

/* Kreatywne CTA */
.rk-proj-cta-section {
    background: linear-gradient(135deg, var(--rk-proj-blue) 0%, #0369a1 100%);
    padding: 45px 50px;
    text-align: center;
}

.rk-proj-cta-section h3 {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-proj-cta-section p {
    color: #e0f2fe;
    font-size: 16px;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-premium {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-proj-blue);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-btn-premium:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 20px 35px -5px rgba(0, 0, 0, 0.3);
    background: var(--rk-proj-orange);
    color: #ffffff;
}

.rk-btn-premium svg {
    transition: transform 0.3s;
}

.rk-btn-premium:hover svg {
    transform: translateX(6px);
}

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-content, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-controls { flex-direction: column; gap: 10px; background: transparent; padding: 0; border: none; }
    .rk-proj-btn { background: #ffffff; border: 1px solid var(--rk-proj-border); padding: 18px; }
    .rk-proj-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-btn-premium { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Jak wybór bufora ciepła drastycznie zmienia projekt ogrzewania podłogowego?",
    "description": "Zobacz, jak zasilanie z bufora ładowanego w taryfie nocnej zmienia rozstaw rur, grubość jastrychu i maksymalną długość pętli grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-parametry",
    "name": "Parametry projektowe OZC: Bufor Ciepła vs Pompa Ciepła",
    "description": "Zestawienie inżynierskie różnic w projektowaniu instalacji płaszczyznowej (rozstaw, wylewka, temperatura) w zależności od dynamiki źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur bufor ciepła",
      "jastrych cementowy podłogówka",
      "temperatura zasilania z bufora",
      "akumulacja w betonie ogrzewanie",
      "maksymalna długość pętli fi 16"
    ],
    "measurementTechnique": "Obliczenia akumulacji periodycznej, oporów hydraulicznych i pojemności cieplnej jastrychu wg normy OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Parametry dla Bufora: Zasilanie 38-40°C, rozstaw rur 10-12.5 cm, jastrych cementowy 70-80 mm.",
        "Parametry dla Pompy Ciepła: Zasilanie 30-32°C, rozstaw rur 15 cm, wylewka standardowa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-symulator",
    "name": "Symulator Parametrów Projektowych Podłogówki",
    "description": "Interaktywny panel demonstrujący wpływ wyboru źródła ciepła na wytyczne wykonawcze instalacji ogrzewania płaszczyznowego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="projekt-wplyw-app">
    <div class="rk-proj-header">
        <h2>Jak to wpływa na projekt instalacji?</h2>
        <p>Wybór źródła zasilania wymusza całkowitą zmianę podejścia do obliczeń hydraulicznych. Symulacja pokazuje różnice w wytycznych dla instalatora.</p>
    </div>

    <div class="rk-proj-content">
        <div class="rk-proj-intro">
            <p>
                Wybór zasilania z bufora ciepła ładowanego okresowo w taryfie nocnej drastycznie wpływa na projekt i wymusza uwzględnienie <strong>zjawiska akumulacji periodycznej</strong>. O ile przy pompie ciepła dąży się do jak najniższej temperatury zasilania w celu maksymalizacji COP, o tyle w układzie z buforem instalację projektuje się na parametry graniczne dla komfortu stóp. 
            </p>
            <p>
                Wszystkie zmienne muszą zostać bezpośrednio skorelowane z kompleksowym badaniem OZC. Błędny projekt w systemie buforowym skutkuje lokalnym niedogrzaniem, ponieważ woda z wychładzającego się bufora nie dociera do pętli o zbyt dużych oporach hydraulicznych (pętle powyżej <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">100 m długości rury fi 16</a> są absolutnie niedopuszczalne).
            </p>
        </div>

        <div class="rk-proj-interactive">
            <div class="rk-proj-controls">
                <button class="rk-proj-btn" id="btnHeatPump">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Dla Pompy Ciepła
                </button>
                <button class="rk-proj-btn active" id="btnBuffer">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M12 2a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4"></path><path d="M12 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4"></path><polyline points="12 22 12 18"></polyline><polyline points="12 6 12 2"></polyline></svg>
                    Dla Bufora (Taryfa Nocna)
                </button>
            </div>

            <div class="rk-proj-grid">
                <div class="rk-proj-card">
                    <div class="rk-proj-icon-wrapper">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <h4>Temperatura Zasilania</h4>
                    <span class="rk-proj-value" id="valTemp">38 - 40°C</span>
                    <p class="rk-proj-desc" id="descTemp">Wyższa <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura graniczna</a> pozwala na szybsze "rozładowanie" bufora do płyty grzewczej, zanim woda w zbiorniku spadnie poniżej punktu użyteczności.</p>
                </div>

                <div class="rk-proj-card">
                    <div class="rk-proj-icon-wrapper">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="21" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="3" y2="18"></line></svg>
                    </div>
                    <h4>Rozstaw Rur</h4>
                    <span class="rk-proj-value" id="valSpacing">10 cm</span>
                    <p class="rk-proj-desc" id="descSpacing">Gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw (10 - 12.5 cm)</a> obniża opór cieplny płyty. Podłogówka może błyskawicznie "naładować" beton wysokim strumieniem energii.</p>
                </div>

                <div class="rk-proj-card">
                    <div class="rk-proj-icon-wrapper">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 20h.01"></path><path d="M7 20v-4"></path><path d="M12 20v-8"></path><path d="M17 20V8"></path><path d="M22 4v16"></path></svg>
                    </div>
                    <h4>Wylewka (Jastrych)</h4>
                    <span class="rk-proj-value" id="valMass">70 - 80 mm</span>
                    <p class="rk-proj-desc" id="descMass">Odradza się cienkie wylewki anhydrytowe. Klasyczny, gruby jastrych cementowy działa jak potężny <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">akumulator ciepła</a> na resztę dnia.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie ryzykuj. Powierz OZC inżynierom.</h3>
        <p>Błędnie wyliczone przepływy i długości pętli w systemie buforowym oznaczają zimny dom. Zaufaj ekspertom, którzy przeliczyli tysiące kilometrów rur.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-premium">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnHeatPump = document.getElementById('btnHeatPump');
    var btnBuffer = document.getElementById('btnBuffer');
    
    var valTemp = document.getElementById('valTemp');
    var descTemp = document.getElementById('descTemp');
    
    var valSpacing = document.getElementById('valSpacing');
    var descSpacing = document.getElementById('descSpacing');
    
    var valMass = document.getElementById('valMass');
    var descMass = document.getElementById('descMass');

    btnHeatPump.addEventListener('click', function() {
        btnBuffer.classList.remove('active');
        btnHeatPump.classList.add('active');
        
        valTemp.textContent = '30 - 32°C';
        descTemp.innerHTML = 'Dąży się do jak najniższej temperatury zasilania, aby maksymalizować współczynnik efektywności (COP) sprężarki w pompie ciepła.';
        
        valSpacing.textContent = '15 cm';
        descSpacing.innerHTML = 'Standardowy rozstaw rur jest wystarczający w strefach przebywania ludzi, ponieważ źródło ciepła pracuje stabilnie i ciągle przez całą dobę.';
        
        valMass.textContent = 'Standard';
        descMass.innerHTML = 'Możliwość stosowania cieńszych wylewek (np. anhydrytowych). Mniejsza bezwładność ułatwia szybkie sterowanie temperaturą w pomieszczeniu.';
    });

    btnBuffer.addEventListener('click', function() {
        btnHeatPump.classList.remove('active');
        btnBuffer.classList.add('active');
        
        valTemp.textContent = '38 - 40°C';
        descTemp.innerHTML = 'Wyższa <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura graniczna</a> pozwala na szybsze "rozładowanie" bufora do płyty grzewczej, zanim woda w zbiorniku spadnie poniżej punktu użyteczności.';
        
        valSpacing.textContent = '10 cm';
        descSpacing.innerHTML = 'Gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw (10 - 12.5 cm)</a> obniża opór cieplny płyty. Podłogówka może błyskawicznie "naładować" beton wysokim strumieniem energii.';
        
        valMass.textContent = '70 - 80 mm';
        descMass.innerHTML = 'Odradza się cienkie wylewki anhydrytowe. Klasyczny, gruby jastrych cementowy działa jak potężny <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">akumulator ciepła</a> na resztę dnia.';
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0ea5e9;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #cbd5e1;
    --rk-case-text: #475569;
    --rk-case-accent: #f59e0b;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-case-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-case-header p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
}

.rk-case-persona {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #1e293b;
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px;
    border-radius: 16px;
    margin-top: 25px;
}

.rk-case-avatar {
    width: 60px;
    height: 60px;
    background: var(--rk-case-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
}

.rk-case-persona-info h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: #ffffff;
}

.rk-case-persona-info p {
    margin: 0;
    font-size: 14px;
    color: #cbd5e1;
}

.rk-case-body {
    padding: 40px 50px;
    background: var(--rk-case-gray);
}

/* Interaktywna Oś Czasu (Timeline / Accordion) */
.rk-timeline-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-timeline-item {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-timeline-item.active {
    border-color: var(--rk-case-blue);
    box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.15);
}

.rk-timeline-btn {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 20px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
}

.rk-timeline-step {
    width: 36px;
    height: 36px;
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    margin-right: 20px;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-timeline-item.active .rk-timeline-step {
    background: var(--rk-case-blue);
    color: #ffffff;
}

.rk-timeline-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-case-dark);
    flex-grow: 1;
}

.rk-timeline-icon {
    color: var(--rk-case-text);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-timeline-item.active .rk-timeline-icon {
    transform: rotate(180deg);
    color: var(--rk-case-blue);
}

.rk-timeline-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-timeline-inner {
    padding: 0 25px 25px 75px;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-case-text);
}

.rk-timeline-inner a {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-case-blue);
    transition: all 0.3s;
}

.rk-timeline-inner a:hover {
    background: var(--rk-case-blue-light);
    border-bottom-style: solid;
}

.rk-case-data-box {
    background: var(--rk-case-blue-light);
    border-left: 4px solid var(--rk-case-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 15px;
}

.rk-case-data-box strong {
    color: var(--rk-case-dark);
    display: block;
    margin-bottom: 5px;
}

@media (max-width: 768px) {
    .rk-case-header, .rk-case-body { padding: 30px 20px; }
    .rk-case-persona { flex-direction: column; text-align: center; gap: 15px; }
    .rk-timeline-inner { padding: 0 20px 20px 20px; }
    .rk-timeline-btn { padding: 20px; }
    .rk-timeline-step { margin-right: 15px; }
    .rk-timeline-title { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Studium przypadku: Ogrzewanie buforem w domu 120 m² – Od dylematu do projektu",
    "description": "Realne studium przypadku inwestora z Sanoka, analizujące przejście z planów montażu pompy ciepła na zoptymalizowany układ buforowy 1000l w taryfie G12w.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-case-study",
    "name": "Parametry audytu OZC i wytyczne projektowe dla domu 120m2",
    "description": "Zbiór danych z realnego projektu instalacji płaszczyznowej, uwzględniający rozstaw rur, masę jastrychu oraz redukcję kosztów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego przykład",
      "czy warto ogrzewać buforem",
      "koszty instalacji podłogówki 120m2",
      "gęstość rur podłogówka",
      "dobór wylewki do bufora"
    ],
    "measurementTechnique": "Analiza wskaźników przed i po wykonaniu audytu OZC z adaptacją wytycznych dla pracy akumulacyjnej w strefach brzegowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metraż: 120 mkw., zapotrzebowanie z audytu OZC: 4.2 kW.",
        "Zalecany jastrych: betonowy, grubość min. 70 mm.",
        "Oszczędność inwestycyjna względem pompy: ok. 28 000 zł."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-case-study",
    "name": "Interaktywny Dziennik Inwestycji",
    "description": "Moduł edukacyjny pozwalający na prześledzenie chronologicznych etapów współpracy eksperta z inwestorem – od problemu budżetowego po realizację.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="studium-przypadku-app">
    <div class="rk-case-header">
        <h2>Studium Przypadku: Ratowanie budżetu przed stanem deweloperskim</h2>
        <p>Teoria to jedno, ale jak dobór źródła ciepła wygląda w starciu z realnymi problemami na budowie? Prześledźmy autentyczną historię z mojej inżynierskiej teczki.</p>
        
        <div class="rk-case-persona">
            <div class="rk-case-avatar">T</div>
            <div class="rk-case-persona-info">
                <h3>Tomasz (41 lat), inwestor z Sanoka</h3>
                <p>Buduje dom parterowy 120 m² w standardzie WT 2021. Dom zamknięty, czas na instalacje.</p>
            </div>
        </div>
    </div>

    <div class="rk-case-body">
        <div class="rk-timeline-wrapper">
            
            <div class="rk-timeline-item">
                <button class="rk-timeline-btn">
                    <span class="rk-timeline-step">1</span>
                    <span class="rk-timeline-title">Dylemat i spotkanie</span>
                    <svg class="rk-timeline-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-timeline-content">
                    <div class="rk-timeline-inner">
                        Tomasz zgłosił się do mnie w trudnym momencie. Koszty dachu i stolarki okiennej wciągnęły rezerwy finansowe. Z pierwotnie zakładanych 45 tysięcy złotych na kotłownię z pompą ciepła zostało mu nieco ponad 15 tysięcy. Zapytał wprost: <em>"Panie Robercie, czy zasilanie podłogówki z bufora 1000 litrów na taryfie G12w to samobójstwo? Bo jeśli tak, muszę brać kredyt."</em>
                    </div>
                </div>
            </div>

            <div class="rk-timeline-item">
                <button class="rk-timeline-btn">
                    <span class="rk-timeline-step">2</span>
                    <span class="rk-timeline-title">Analiza i audyt OZC</span>
                    <svg class="rk-timeline-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-timeline-content">
                    <div class="rk-timeline-inner">
                        Zanim odpowiedziałem, poprosiłem o projekt architektoniczny. Z zewnątrz dom wyglądał standardowo, ale warstwy izolacyjne (20 cm grafitu na elewacji, piana PUR na stropie) były doskonałe. Musieliśmy sprawdzić, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy w ogóle potrzebujemy tak drogiego źródła</a>. Przeliczyłem dokładnie fizykę budynku.
                        <div class="rk-case-data-box">
                            <strong>Wynik OZC (Obliczeniowe Zapotrzebowanie Cieplne):</strong>
                            Zaledwie 4.2 kW przy temperaturze projektowej -20°C. Dobowe zapotrzebowanie wynosiło zaledwie około 100 kWh.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-timeline-item">
                <button class="rk-timeline-btn">
                    <span class="rk-timeline-step">3</span>
                    <span class="rk-timeline-title">Decyzja i przeprojektowanie systemu</span>
                    <svg class="rk-timeline-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-timeline-content">
                    <div class="rk-timeline-inner">
                        Kredyt nie był potrzebny. Zarekomendowałem układ buforowy, ale pod jednym warunkiem: musieliśmy usiąść do rzutów i precyzyjnie przeprojektować hydraulikę pod akumulację. Zrezygnowaliśmy z cienkiej wylewki na rzecz klasycznej, grubej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej (75 mm)</a>, która przejęła rolę wtórnego magazynu energii.
                        <br><br>
                        Musieliśmy też przeliczyć, <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać rury</a>. Zagęściliśmy pętle do 10 cm w salonie, aby system mógł błyskawicznie "zrzucić" ciepło z bufora do betonu pod koniec trwania taniej taryfy.
                    </div>
                </div>
            </div>

            <div class="rk-timeline-item">
                <button class="rk-timeline-btn">
                    <span class="rk-timeline-step">4</span>
                    <span class="rk-timeline-title">Finał: Koszty i spokojny sen inwestora</span>
                    <svg class="rk-timeline-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-timeline-content">
                    <div class="rk-timeline-inner">
                        Obniżyliśmy <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">początkowe koszty instalacji</a> o blisko 28 000 zł, ratując budżet Tomasza bez konieczności zadłużania się. Dom od dwóch sezonów zimowych pracuje bezawaryjnie. System ładuje bufor 1000L dwiema grzałkami (łącznie 12 kW) w tańszych godzinach taryfy weekendowej. Przez cały dzień w domu utrzymuje się stabilne 21.5°C dzięki potężnej masie nagrzanego jastrychu.
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var items = document.querySelectorAll('.rk-timeline-item');
    var btns = document.querySelectorAll('.rk-timeline-btn');

    // Otwórz pierwszy element na start
    if(items.length > 0) {
        items[0].classList.add('active');
        var firstContent = items[0].querySelector('.rk-timeline-content');
        firstContent.style.maxHeight = firstContent.scrollHeight + "px";
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var parentItem = this.parentElement;
            var content = this.nextElementSibling;
            var isActive = parentItem.classList.contains('active');
            
            // Zamknij wszystkie
            items.forEach(function(item) {
                item.classList.remove('active');
                item.querySelector('.rk-timeline-content').style.maxHeight = null;
            });
            
            // Jeśli kliknięty nie był aktywny, to go otwórz
            if (isActive === false) {
                parentItem.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #1e293b;
    --rk-auth-blue: #0284c7;
    --rk-auth-light: #f8fafc;
    --rk-auth-gray: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-social-bg: #f1f5f9;
}

.rk-auth-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 16px;
    border: 2px solid var(--rk-auth-blue);
    box-shadow: 0 10px 30px rgba(2, 132, 199, 0.08);
    overflow: hidden;
}

.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 35px 45px;
    color: #ffffff;
}

.rk-auth-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-auth-header h2 svg {
    color: var(--rk-auth-blue);
}

.rk-auth-body {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: #ffffff;
}

/* Kolumna Autora */
.rk-auth-sidebar {
    background: var(--rk-auth-light);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-gray);
    text-align: center;
}

.rk-auth-photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin: 0 auto 20px auto;
    display: block;
}

.rk-auth-name {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 5px 0;
}

.rk-auth-role {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 25px 0;
}

.rk-auth-socials {
    display: flex;
    justify-content: center;
    gap: 12px;
}

.rk-auth-social-link {
    width: 42px;
    height: 42px;
    background: var(--rk-auth-social-bg);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-auth-dark);
    text-decoration: none;
    border: 1px solid var(--rk-auth-gray);
}

.rk-auth-social-link:hover {
    background: var(--rk-auth-blue);
    color: #ffffff;
    border-color: var(--rk-auth-blue);
}

/* Kolumna Treści */
.rk-auth-content {
    padding: 40px;
}

.rk-auth-quote-mark {
    font-family: Georgia, serif;
    font-size: 60px;
    color: var(--rk-auth-gray);
    line-height: 0;
    margin-bottom: 20px;
    display: block;
}

.rk-auth-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--rk-auth-gray);
    padding-bottom: 15px;
}

.rk-auth-tab {
    background: transparent;
    border: none;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-text);
    padding: 8px 16px;
    cursor: pointer;
    border-radius: 6px;
}

.rk-auth-tab.active {
    background: var(--rk-auth-dark);
    color: #ffffff;
}

.rk-auth-panel {
    display: none;
}

.rk-auth-panel.active {
    display: block;
}

.rk-auth-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-auth-text);
    margin-bottom: 20px;
}

.rk-auth-panel a {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-auth-highlight-box {
    background: #eff6ff;
    border-left: 4px solid var(--rk-auth-blue);
    padding: 15px 20px;
    margin-top: 20px;
}

.rk-auth-highlight-box strong {
    color: var(--rk-auth-dark);
    display: block;
    margin-bottom: 5px;
    font-size: 15px;
}

@media (max-width: 768px) {
    .rk-auth-body { grid-template-columns: 1fr; }
    .rk-auth-sidebar { border-right: none; border-bottom: 1px solid var(--rk-auth-gray); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-nav { flex-direction: column; gap: 5px; border-bottom: none; }
    .rk-auth-tab { text-align: left; background: var(--rk-auth-social-bg); }
    .rk-auth-header h2 { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Robert Kucharski radzi: Konfrontacja twardych danych",
    "description": "Autorskie podsumowanie eksperta HVAC dotyczące błędów w doborze systemów grzewczych i weryfikacji mitów inwestycyjnych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Specjalista HVAC & CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-ekspert",
    "name": "Wytyczne inżynierskie Roberta Kucharskiego dla instalacji płaszczyznowych",
    "description": "Zbiór żelaznych zasad projektowych zabezpieczających instalację przed awariami i niedogrzaniem w oparciu o ponad 1000 zrealizowanych audytów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski hvac",
      "projekt ogrzewania opinie ekspertów",
      "błędy instalatorów pomp ciepła",
      "rzetelny projekt ozc podłogówka",
      "dobór źródła ciepła bez ściemy"
    ],
    "measurementTechnique": "Weryfikacja założeń inwestycyjnych z fizyką budowli i normami europejskimi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwzględny wymóg audytu OZC przed doborem agregatu.",
        "Traktowanie jastrychu jako aktywnego bufora magazynującego.",
        "Kategoryczne odrzucenie doboru urządzeń na podstawie powierzchni użytkowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-ekspert",
    "name": "Karta Weryfikacji Eksperckiej E-E-A-T",
    "description": "Interaktywna wizytówka inżyniera pozwalająca na przegląd rekomendacji i twardych danych rynkowych bez opuszczania kontekstu artykułu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-wrapper" id="ekspert-podsumowanie-app">
    <div class="rk-auth-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Zdaniem eksperta: Robert Kucharski o optymalizacji inwestycji
        </h2>
    </div>

    <div class="rk-auth-body">
        <aside class="rk-auth-sidebar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Inżynier HVAC" class="rk-auth-photo" width="160" height="160" loading="lazy">
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <p class="rk-auth-role">Specjalista HVAC / Twórca portalu</p>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-auth-social-link" aria-label="Facebook" target="_blank" rel="noopener noreferrer">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-auth-social-link" aria-label="LinkedIn" target="_blank" rel="noopener noreferrer">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" class="rk-auth-social-link" aria-label="X Twitter" target="_blank" rel="noopener noreferrer">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg>
                </a>
            </div>
        </aside>

        <section class="rk-auth-content">
            <span class="rk-auth-quote-mark">"</span>
            
            <div class="rk-auth-nav">
                <button class="rk-auth-tab active" data-panel="panel-wniosek">Kluczowy Wniosek</button>
                <button class="rk-auth-tab" data-panel="panel-bledy">Twarde Reguły</button>
                <button class="rk-auth-tab" data-panel="panel-normy">Weryfikacja Norm</button>
            </div>

            <div class="rk-auth-panel active" id="panel-wniosek">
                <p>
                    Wybór źródła ciepła to nie jest plebiscyt popularności w internecie, tylko surowa fizyka i matematyka finansowa. Pakowanie oszczędności życia w drogą pompę ciepła w domu o minimalnym zapotrzebowaniu to finansowe samobójstwo, które spłaca się latami. Z kolei ignorowanie <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego</a> na rzecz taniego bufora w starym, niedocieplonym budynku to gwarancja gigantycznych rachunków za prąd.
                </p>
                <div class="rk-auth-highlight-box">
                    <strong>Pamiętaj:</strong>
                    Zawsze domagaj się od instalatora rzetelnego obciążenia OZC. Instalacja projektowana na tzw. "chłopski rozum" kosztuje podwójnie – najpierw przy montażu, a potem w eksploatacji.
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-bledy">
                <p>
                    Instalacje oparte na buforach ładujących się periodycznie (tylko w taryfie nocnej) nie wybaczają amatorszczyzny. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Błędy montażowe</a> takie jak rozwlekłe pętle powyżej 100 metrów, brak rzetelnej izolacji brzegowej czy zastosowanie wylewki o małej masie dyskwalifikują ten system, zanim jeszcze zapłacisz pierwszy rachunek.
                </p>
                <p>
                    Jeśli wybierasz pompę ciepła, kluczem jest bezbłędny <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur</a>, pozwalający na pracę na najniższych możliwych parametrach zasilania, co bezpośrednio determinuje wysoki współczynnik SCOP.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-normy">
                <p>
                    Osobiście weryfikowałem tysiące dokumentacji. Stabilność obu rozwiązań opiera się na przestrzeganiu dwóch fundamentalnych standardów. Obliczanie strat ciepła bezwzględnie w oparciu o <strong>PN-EN 12831</strong> oraz projektowanie płyt grzewczych zgodnie ze ścisłymi wytycznymi <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>. 
                </p>
                <div class="rk-auth-highlight-box">
                    <strong>Podejście inżynierskie:</strong>
                    Zład wody w rurach pex i masa posadzki to w pełni wymierne, fizyczne parametry. Ogrzewanie podłogowe projektuje się w Excelu i na rzutach, a nie na budowie z rozwijakiem w ręku.
                </div>
            </div>
        </section>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-auth-tab');
    var panels = document.querySelectorAll('.rk-auth-panel');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Natychmiastowe zerowanie klas aktywnych
            tabs.forEach(function(t) { t.classList.remove('active'); });
            panels.forEach(function(p) { p.classList.remove('active'); });

            // Aktywacja klikniętego elementu (bez przejść CSS)
            this.classList.add('active');
            var targetPanel = this.getAttribute('data-panel');
            document.getElementById(targetPanel).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #e0f2fe;
    --rk-faq-gray-bg: #f8fafc;
    --rk-faq-text: #334155;
    --rk-faq-border: #cbd5e1;
    --rk-faq-shadow: rgba(15, 23, 42, 0.05);
}

.rk-faq-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px var(--rk-faq-shadow);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

.rk-faq-top {
    background: linear-gradient(135deg, var(--rk-faq-gray-bg) 0%, #ffffff 100%);
    padding: 40px 50px 30px;
    border-bottom: 1px solid var(--rk-faq-border);
    text-align: left;
}

.rk-faq-top h2 {
    color: var(--rk-faq-dark);
    font-size: 32px;
    font-weight: 900;
    margin: 0;
    line-height: 1.2;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-faq-icon-title {
    color: var(--rk-faq-blue);
    background: var(--rk-faq-blue-light);
    padding: 12px;
    border-radius: 14px;
    display: flex;
}

.rk-faq-list {
    padding: 20px 50px 40px;
}

.rk-faq-item {
    border-bottom: 1px solid var(--rk-faq-border);
    margin-bottom: 10px;
}

.rk-faq-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.rk-faq-header {
    width: 100%;
    background: transparent;
    border: none;
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-align: left;
    transition: color 0.3s ease;
}

.rk-faq-header:hover h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-header h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    margin: 0;
    padding-right: 20px;
    line-height: 1.5;
    transition: color 0.3s;
}

.rk-faq-toggle {
    min-width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--rk-faq-gray-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
}

.rk-faq-header.active .rk-faq-toggle {
    transform: rotate(180deg);
    background: var(--rk-faq-blue);
    color: #ffffff;
}

.rk-faq-header.active h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-content-inner {
    padding: 0 0 25px 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-faq-blue);
    transition: all 0.3s;
}

.rk-faq-content-inner a:hover {
    background: var(--rk-faq-blue-light);
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-faq-top { padding: 30px 20px; }
    .rk-faq-list { padding: 10px 20px 30px; }
    .rk-faq-top h2 { font-size: 24px; }
    .rk-faq-header h3 { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy bufor 1000 l wystarczy do ogrzania domu 150 m2 przy mrozach -20°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sam bufor 1000 l zmagazynuje ok. 58 kWh energii, co przy dużych mrozach pokryje ok. 40-50% dobowego zapotrzebowania domu o powierzchni 150 m². Brakującą część energii musi zmagazynować ciężka wylewka betonowa podłogówki poprzez celowe przegrzanie pomieszczeń w nocy."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie grzałki elektryczne muszę zamontować do bufora 1000 l?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Do pełnego naładowania bufora 1000 l w ciągu 10 godzin taniej taryfy wymagane są grzałki o łącznej mocy minimum 12 kW, a optymalnie 16 kW. Montaż tak dużej mocy wymaga weryfikacji warunków technicznych przyłącza prądu i zwiększenia mocy umownej w zakładzie energetycznym do min. 25 kW."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka taryfa prądu jest najlepsza do ogrzewania buforowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najbardziej opłacalna jest taryfa weekendowa G12w, która oferuje tani prąd przez 10 godzin w ciągu doby w dni powszednie oraz przez całą dobę w soboty, niedziele i dni ustawowo wolne od pracy. Pozwala to na głębokie ładowanie bufora i jastrychu w weekendy przy znacznie niższych kosztach."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wylewka anhydrytowa nadaje się do systemu z buforem ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wylewka anhydrytowa ze względu na niską masę i mniejszą grubość ma słabą pojemność cieplną, przez co szybciej oddaje ciepło i szybciej stygnie. W systemie akumulacyjnym opartym na taryfie nocnej znacznie lepiej sprawdza się gruby, ciężki jastrych cementowy (7-8 cm), który działa jak skuteczny akumulator."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, gdy w buforze skończy się gorąca woda w trakcie dnia?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jeśli automatyka wykryje spadek temperatury w buforze poniżej progu użyteczności (np. 30°C), system przełączy się na pobór prądu w drogiej taryfie dziennej G11, aby utrzymać komfort w domu. Aby tego uniknąć, należy precyzyjnie zsynchronizować krzywą grzewczą i wykorzystać masę termiczną betonu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Najczęściej zadawane pytania (FAQ) o bufory ciepła i ogrzewanie elektryczne",
    "description": "Baza wiedzy Q&A odpowiadająca na najczęstsze obawy inwestorów dotyczące pojemności bufora, mocy grzałek elektrycznych oraz doboru taryfy G12w.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-faq",
    "name": "Zestawienie parametrów technicznych do ładowania bufora 1000l",
    "description": "Zbiór danych określających optymalną moc przyłączeniową, wymagania pojemnościowe jastrychu oraz wydajność magazynowania energii z taryfy nocnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "moc grzałek do bufora 1000l",
      "wylewka anhydrytowa a bufor",
      "taryfa g12w czy g11 do bufora",
      "jak zsynchronizować krzywą grzewczą",
      "pojemność cieplna jastrychu cementowego"
    ],
    "measurementTechnique": "Określanie minimalnej mocy grzewczej i pojemności na podstawie przerw w dostawie taniej energii.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecana moc grzałek: 12-16 kW.",
        "Zalecana grubość jastrychu: 7-8 cm (cementowy).",
        "Pojemność energetyczna bufora 1000l: ~58 kWh."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy Q&A",
    "description": "Rozwijany moduł edukacyjny pozwalający inwestorowi na szybką nawigację po najtrudniejszych zagadnieniach hydraulicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-wrapper" id="faq-section">
    <div class="rk-faq-top">
        <h2>
            <div class="rk-faq-icon-title">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            Najczęściej zadawane pytania
        </h2>
    </div>

    <div class="rk-faq-list">
        
        <div class="rk-faq-item">
            <button class="rk-faq-header">
                <h3>Czy bufor 1000 l wystarczy do ogrzania domu 150 m² przy mrozach -20°C?</h3>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Sam bufor 1000 l zmagazynuje ok. 58 kWh energii, co przy dużych mrozach pokryje ok. 40-50% dobowego zapotrzebowania domu o powierzchni 150 m². Brakującą część energii musi zmagazynować ciężka <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa podłogówki</a> poprzez celowe przegrzanie pomieszczeń w nocy na podstawie odpowiednio skonfigurowanego <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">bilansu strat cieplnych</a>.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-header">
                <h3>Jakie grzałki elektryczne muszę zamontować do bufora 1000 l?</h3>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Do pełnego naładowania bufora 1000 l w ciągu 10 godzin taniej taryfy wymagane są grzałki o łącznej mocy minimum 12 kW, a optymalnie 16 kW. Montaż tak dużej mocy wymaga weryfikacji warunków technicznych przyłącza prądu i zwiększenia mocy umownej w zakładzie energetycznym do min. 25 kW.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-header">
                <h3>Jaka taryfa prądu jest najlepsza do ogrzewania buforowego?</h3>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Najbardziej opłacalna jest taryfa weekendowa G12w, która oferuje tani prąd przez 10 godzin w ciągu doby w dni powszednie oraz przez całą dobę w soboty, niedziele i dni ustawowo wolne od pracy. Pozwala to na głębokie ładowanie bufora i jastrychu w weekendy przy znacznie niższych kosztach.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-header">
                <h3>Czy wylewka anhydrytowa nadaje się do systemu z buforem ciepła?</h3>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Wylewka anhydrytowa ze względu na niską masę i mniejszą grubość ma słabą pojemność cieplną, przez co szybciej oddaje ciepło i szybciej stygnie. W systemie akumulacyjnym opartym na taryfie nocnej znacznie lepiej sprawdza się gruby, ciężki <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrych cementowy (7-8 cm)</a>, który działa jak skuteczny akumulator.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-header">
                <h3>Co się stanie, gdy w buforze skończy się gorąca woda w trakcie dnia?</h3>
                <div class="rk-faq-toggle">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Jeśli automatyka wykryje spadek temperatury w buforze poniżej progu użyteczności (np. 30°C), system przełączy się na pobór prądu w drogiej taryfie dziennej G11, aby utrzymać komfort w domu. Aby tego uniknąć, należy precyzyjnie zsynchronizować <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a> i w pełni wykorzystać masę termiczną betonu.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqButtons = document.querySelectorAll('.rk-faq-header');
    
    faqButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var content = this.nextElementSibling;
            var isAlreadyActive = this.classList.contains('active');
            
            // Zwijamy wszystkie elementy akordeonu
            faqButtons.forEach(function(otherBtn) {
                otherBtn.classList.remove('active');
                otherBtn.nextElementSibling.style.maxHeight = null;
            });
            
            // Jeśli kliknięty element nie był otwarty, rozwijamy go
            if (isAlreadyActive === false) {
                this.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-gray-bg: #f8fafc;
    --rk-dl-border: #cbd5e1;
    --rk-dl-text: #334155;
    --rk-dl-pdf-color: #ef4444;
}

.rk-dl-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 15px 30px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 45px;
    color: #ffffff;
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-dl-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.5;
}

.rk-dl-body {
    padding: 40px 45px;
}

.rk-dl-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 40px;
    align-items: start;
}

/* Sekcja Podglądu (Miniatura) */
.rk-dl-preview-box {
    background: var(--rk-dl-gray-bg);
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
}

.rk-dl-thumb-container {
    width: 100%;
    height: 250px;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid var(--rk-dl-border);
    margin-bottom: 15px;
    background: #ffffff;
}

.rk-dl-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.rk-dl-toggle-btn {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-dl-blue);
    color: var(--rk-dl-blue);
    padding: 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-dl-toggle-btn:hover {
    background: var(--rk-dl-blue);
    color: #ffffff;
}

/* Sekcja Akcji (Przyciski pobierania) */
.rk-dl-actions-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-dl-text);
    margin-bottom: 25px;
}

.rk-dl-buttons-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn-pdf, .rk-btn-img {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 25px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
}

.rk-btn-pdf {
    background: #fef2f2;
    border: 2px solid var(--rk-dl-pdf-color);
    color: #b91c1c;
}

.rk-btn-pdf:hover {
    background: var(--rk-dl-pdf-color);
    color: #ffffff;
}

.rk-btn-img {
    background: #eff6ff;
    border: 2px solid var(--rk-dl-blue);
    color: var(--rk-dl-blue);
}

.rk-btn-img:hover {
    background: var(--rk-dl-blue);
    color: #ffffff;
}

.rk-dl-meta {
    display: flex;
    gap: 20px;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-dl-copyright {
    background: var(--rk-dl-gray-bg);
    border-left: 4px solid var(--rk-dl-blue);
    padding: 15px 20px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    margin-top: 30px;
}

/* Pełny widok obrazu (rozwijany) */
.rk-dl-full-view {
    display: none;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed var(--rk-dl-border);
}

.rk-dl-full-img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
}

@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-body { padding: 30px 20px; }
    .rk-dl-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-dl-thumb-container { height: auto; max-height: 300px; }
    .rk-dl-meta { flex-direction: column; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Pobierz infografikę techniczno-finansową: Bufor ciepła czy Pompa ciepła?",
    "description": "Zestawienie kosztów, parametrów montażowych oraz danych OZC w formie czytelnej infografiki oraz dokumentu PDF gotowego do druku i udostępniania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-infografika",
    "name": "Infografika techniczna i zestawienie danych: Bufor ciepła vs Pompa ciepła (2026)",
    "description": "Pliki graficzne i dokumentowe zawierające twarde wyliczenia kosztów instalacyjnych, rozstawów rur, grubości jastrychu oraz pojemności buforowej w zależności od standardu WT 2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "porównanie pompy ciepła i bufora",
      "tabela kosztów ogrzewania prądem",
      "schemat podłogówki do bufora",
      "pobierz projekt ogrzewania pdf"
    ],
    "measurementTechnique": "Wizualizacja danych analitycznych (CAPEX i OPEX) z zastosowaniem wykresów ROI oraz przekrojów instalacyjnych.",
    "distribution": [
      {
        "@type": "DataDownload",
        "encodingFormat": "application/pdf",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.pdf"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "image/webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.webp"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-infografika",
    "name": "Przeglądarka materiałów inżynierskich",
    "description": "Moduł umożliwiający szybki podgląd i dystrybucję materiałów szkoleniowo-projektowych w formacie bezstratnym dla instalatorów HVAC.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-wrapper" id="pobierz-materialy-app">
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały edukacyjne: Infografika techniczna
        </h2>
        <p>Pobierz kompleksowe zestawienie danych analitycznych do analizy offline lub udostępnienia swojemu instalatorowi.</p>
    </div>

    <div class="rk-dl-body">
        <div class="rk-dl-grid">
            <div class="rk-dl-preview-box">
                <div class="rk-dl-thumb-container">
                    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.webp" alt="Miniatura infografiki porównującej bufor z pompą ciepła" class="rk-dl-thumb-img" loading="lazy">
                </div>
                <button class="rk-dl-toggle-btn" id="btnToggleImage">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
                    Powiększ na stronie
                </button>
            </div>

            <div class="rk-dl-actions-box">
                <h3>Gotowy plik do analizy</h3>
                <p class="rk-dl-desc">Dokument zawiera podsumowanie kosztów CAPEX i OPEX, różnice w rozstawach rur, wytyczne grubości jastrychu oraz tabele zwrotu z inwestycji (ROI) dla standardów WT 2021.</p>
                
                <div class="rk-dl-buttons-stack">
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.pdf" download class="rk-btn-pdf" target="_blank" rel="noopener noreferrer">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        Pobierz dokument PDF
                    </a>
                    
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.webp" target="_blank" rel="noopener noreferrer" class="rk-btn-img">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        Otwórz grafikę WebP w nowej karcie
                    </a>
                </div>

                <div class="rk-dl-meta">
                    <span>Ostatnia aktualizacja: 2026 r.</span>
                    <span>Waga pliku PDF: ok. 1.2 MB</span>
                </div>
            </div>
        </div>

        <div class="rk-dl-copyright">
            <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
            Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku. Chronimy autorską wiedzę inżynierską.
        </div>

        <div class="rk-dl-full-view" id="fullImgContainer">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Bufor-ciepla-z-grzalkami-czy-pompa-ciepla-Szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku.webp" alt="Szczegółowa infografika techniczna do artykułu" class="rk-dl-full-img" loading="lazy">
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnToggle = document.getElementById('btnToggleImage');
    var fullContainer = document.getElementById('fullImgContainer');

    btnToggle.addEventListener('click', function() {
        var isHidden = (fullContainer.style.display === '' || fullContainer.style.display === 'none');
        
        if(isHidden) {
            fullContainer.style.display = 'block';
            btnToggle.innerHTML = '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg> Ukryj podgląd';
            // Przewinięcie do kontenera z obrazkiem
            fullContainer.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
        } else {
            fullContainer.style.display = 'none';
            btnToggle.innerHTML = '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg> Powiększ na stronie';
        }
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #1e293b;
    --rk-exp-blue: #0369a1;
    --rk-exp-light: #f8fafc;
    --rk-exp-accent: #f59e0b;
    --rk-exp-green: #059669;
    --rk-exp-red: #dc2626;
    --rk-exp-border: #cbd5e1;
    --rk-exp-shadow: rgba(15, 23, 42, 0.08);
}

.rk-expert-box {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 40px var(--rk-exp-shadow);
    border: 1px solid var(--rk-exp-border);
    overflow: hidden;
}

.rk-expert-header {
    background: var(--rk-exp-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-exp-accent);
}

.rk-expert-header h2 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-expert-header h3 {
    color: #94a3b8;
    font-size: 18px;
    font-weight: 500;
    margin: 0;
}

.rk-expert-content {
    padding: 40px 50px;
    background: var(--rk-exp-light);
}

.rk-expert-text p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.rk-expert-text a {
    color: var(--rk-exp-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(3, 105, 161, 0.2);
    transition: all 0.3s;
}

.rk-expert-text a:hover {
    border-bottom-color: var(--rk-exp-blue);
    background: rgba(3, 105, 161, 0.05);
}

/* Interaktywny Selektor */
.rk-selector-container {
    background: #ffffff;
    border: 1px solid var(--rk-exp-border);
    border-radius: 16px;
    padding: 30px;
    margin: 30px 0;
    box-shadow: 0 10px 15px -3px var(--rk-exp-shadow);
}

.rk-selector-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    text-align: center;
    margin: 0 0 25px 0;
}

.rk-btn-group {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-select-btn {
    flex: 1;
    padding: 18px 20px;
    background: var(--rk-exp-light);
    border: 2px solid var(--rk-exp-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-exp-dark);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-select-btn:hover {
    background: #f1f5f9;
}

.rk-select-btn.active-small {
    background: #ecfdf5;
    border-color: var(--rk-exp-green);
    color: var(--rk-exp-green);
}

.rk-select-btn.active-large {
    background: #eff6ff;
    border-color: var(--rk-exp-blue);
    color: var(--rk-exp-blue);
}

.rk-result-panel {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 25px;
    align-items: center;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-exp-border);
}

.rk-result-icon svg {
    width: 100%;
    height: auto;
}

.rk-result-info h4 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 800;
}

.rk-result-info p {
    margin: 0;
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
}

/* Tagi długiego ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid #cbd5e1;
}

/* Kreatywne CTA */
.rk-expert-cta {
    background: linear-gradient(to right, var(--rk-exp-dark), #334155);
    padding: 40px 50px;
    text-align: center;
    color: #ffffff;
}

.rk-expert-cta h3 {
    font-size: 24px;
    margin: 0 0 15px 0;
    font-weight: 800;
}

.rk-expert-cta p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0 auto 25px auto;
    max-width: 600px;
}

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-exp-accent);
    color: var(--rk-exp-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 18px 40px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-cta-btn:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 20px rgba(245, 158, 11, 0.4);
}

@media (max-width: 768px) {
    .rk-expert-header, .rk-expert-content, .rk-expert-cta { padding: 30px 20px; }
    .rk-btn-group { flex-direction: column; gap: 15px; }
    .rk-result-panel { grid-template-columns: 1fr; text-align: center; }
    .rk-result-icon svg { max-width: 80px; margin: 0 auto; display: block; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/"
    },
    "headline": "Podsumowanie i rekomendacja eksperta: Co ostatecznie wybrać?",
    "description": "Techniczne zestawienie i rekomendacja inżynierska wyboru między buforem ciepła a pompą ciepła w zależności od obciążenia cieplnego i powierzchni budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-08",
    "dateModified": "2026-07-08"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#dataset-podsumowanie",
    "name": "Kalkulacja opłacalności: Bufor 1000l vs Pompa ciepła",
    "description": "Baza danych i algorytm oceniający opłacalność inwestycji w pompę ciepła w odniesieniu do całkowitego zapotrzebowania energetycznego budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opłacalność pompy ciepła w małym domu",
      "bufor ciepła 1000l koszty eksploatacji",
      "czas zwrotu inwestycji w pompę ciepła",
      "koszty ogrzewania prądem 2026",
      "dylemat bufor czy pompa"
    ],
    "measurementTechnique": "Analiza krzywej stopy zwrotu (ROI) w korelacji do projektowego obciążenia cieplnego budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom do 120m2 (Zapotrzebowanie 3000-4000 kWh): Rekomendacja systemu buforowego z grzałkami elektrycznymi.",
        "Dom powyżej 180m2: Rekomendacja inwestycji w pompę ciepła o wysokim współczynniku SCOP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/#webapp-rekomendacja",
    "name": "Interaktywny doradca wyboru źródła ciepła",
    "description": "Narzędzie symulacyjne dostosowujące rekomendację źródła zasilania ogrzewania podłogowego na podstawie wariantu metrażowego budynku.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-box" id="rekomendacja-app">
    <div class="rk-expert-header">
        <h2>Podsumowanie i rekomendacja eksperta: Co ostatecznie wybrać?</h2>
        <h3>Zapotrzebowanie na ciepło a matematyka finansowa</h3>
    </div>

    <div class="rk-expert-content">
        <div class="rk-expert-text">
            <p>
                Wybór między <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a> a instalacją z <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforem 1000 l</a> i grzałkami elektrycznymi nie jest kwestią chwilowej mody, lecz bezlitosnej kalkulacji ekonomicznej opartej na profilu energetycznym budynku. Jako inżynier HVAC powiem wprost: im mniejsze jest całkowite zapotrzebowanie budynku na energię, tym bardziej opłacalny staje się prosty system buforowy pracujący w taniej strefie prądu.
            </p>
        </div>

        <div class="rk-selector-container">
            <h4 class="rk-selector-title">Symulator Decyzji Inwestycyjnej</h4>
            <div class="rk-btn-group" id="decisionBtns">
                <button class="rk-select-btn active-small" data-type="small">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
                    Nowoczesny dom (100–120 m2)
                </button>
                <button class="rk-select-btn" data-type="large">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                    Duży budynek (powyżej 180 m2)
                </button>
            </div>

            <div class="rk-result-panel" id="resultPanel">
                <div class="rk-result-icon" id="resultIcon">
                    <svg viewBox="0 0 100 100" fill="none" stroke="var(--rk-exp-green)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
                        <circle cx="50" cy="50" r="40" fill="#ecfdf5"></circle>
                        <path d="M35 50 L45 60 L70 35" stroke-width="6"></path>
                    </svg>
                </div>
                <div class="rk-result-info" id="resultText">
                    <h4 style="color: var(--rk-exp-green);">Wybór optymalny: Bufor z grzałkami</h4>
                    <p>
                        Dla świetnie zaizolowanych domów, gdzie zapotrzebowanie wynosi ok. 3000–4000 kWh rocznie, topienie 40 000 zł w pompę ciepła to błąd. Czas zwrotu przekroczy 15 lat. Zwykły bufor zblokowany automatyką zapewni Ci pełne bezpieczeństwo, <strong>zerowe koszty serwisu</strong> i stabilne ogrzewanie podłogowe na dekady.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-expert-text">
            <p>
                Każda decyzja o źródle ciepła musi być jednak poprzedzona indywidualnym, rzetelnym wykonaniem <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>. Dobieranie urządzeń w oparciu o <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a> traktowany z przymrużeniem oka to najprostsza droga do zrujnowania budżetu inwestora.
            </p>
        </div>

        <div class="rk-tags-wrapper">
            <span class="rk-mat-tag"># opłacalność pompy ciepła w małym domu</span>
            <span class="rk-mat-tag"># bufor ciepła 1000l koszty eksploatacji</span>
            <span class="rk-mat-tag"># taryfa g12w a ogrzewanie podłogowe</span>
            <span class="rk-mat-tag"># czas zwrotu inwestycji w pompę ciepła</span>
            <span class="rk-mat-tag"># kalkulator doboru źródła ciepła</span>
            <span class="rk-mat-tag"># projektowanie instalacji ozc</span>
            <span class="rk-mat-tag"># dylemat bufor czy pompa</span>
            <span class="rk-mat-tag"># koszty ogrzewania prądem 2026</span>
        </div>
    </div>

    <div class="rk-expert-cta">
        <h3>Nie zgaduj z portfelem w ręku. Inwestuj na podstawie danych.</h3>
        <p>Projektowanie na "chłopski rozum" to marnowanie tysięcy złotych. Odkryj profesjonalne narzędzia, normy i tabele projektowe, które ochronią Twoją inwestycję przed błędami instalatorów.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-cta-btn">
            WEJDŹ DO BAZY WIEDZY HVAC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-select-btn');
    var resultIcon = document.getElementById('resultIcon');
    var resultText = document.getElementById('resultText');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Czyszczenie klas
            btns.forEach(function(b) {
                b.classList.remove('active-small');
                b.classList.remove('active-large');
            });

            var type = this.getAttribute('data-type');

            if (type === 'small') {
                this.classList.add('active-small');
                
                var svgSmall = '<svg viewBox="0 0 100 100" fill="none" stroke="var(--rk-exp-green)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><circle cx="50" cy="50" r="40" fill="#ecfdf5" /><path d="M35 50 L45 60 L70 35" stroke-width="6" /></svg>';
                
                var htmlSmall = '<h4 style="color: var(--rk-exp-green);">Wybór optymalny: Bufor z grzałkami</h4>' +
                                '<p>Dla świetnie zaizolowanych domów, gdzie zapotrzebowanie wynosi ok. 3000–4000 kWh rocznie, topienie 40 000 zł w pompę ciepła to błąd. Czas zwrotu przekroczy 15 lat. Zwykły bufor zblokowany automatyką zapewni Ci pełne bezpieczeństwo, <strong>zerowe koszty serwisu</strong> i stabilne ogrzewanie podłogowe na dekady.</p>';
                                
                resultIcon.innerHTML = svgSmall;
                resultText.innerHTML = htmlSmall;
            } else {
                this.classList.add('active-large');
                
                var svgLarge = '<svg viewBox="0 0 100 100" fill="none" stroke="var(--rk-exp-blue)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 13 37 38 37 38 2" fill="#eff6ff" /><polyline points="13 14 38 14" /><polyline points="13 26 38 26" /><path d="M38 19 L75 19 L75 80 L25 80 L25 37" /><circle cx="50" cy="55" r="12" /><path d="M50 43 L50 35" /><path d="M50 75 L50 67" /><path d="M38 55 L30 55" /><path d="M70 55 L62 55" /></svg>';
                
                var htmlLarge = '<h4 style="color: var(--rk-exp-blue);">Wybór optymalny: Pompa Ciepła</h4>' +
                                '<p>W domach o wyższym wskaźniku strat ciepła wolumen zużywanej energii jest na tyle duży, że <strong>wysoki współczynnik SCOP pompy</strong> generuje gigantyczne oszczędności kwotowe na rachunkach miesięcznych. To pozwala na błyskawiczną amortyzację systemu, najczęściej w zdrowym okresie 7–9 lat.</p>';
                                
                resultIcon.innerHTML = svgLarge;
                resultText.innerHTML = htmlLarge;
            }
        });
    });
});
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* RWD - Mobile (układ pionowy, akordeon, brak przycisków obok siebie) */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/">Bufor ciepła z grzałkami czy pompa ciepła? Szokujące porównanie kosztów i opłacalności w 2026 roku.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/bufor-ciepla-z-grzalkami-czy-pompa-ciepla-szokujace-porownanie-kosztow-i-oplacalnosci-w-2026-roku/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pompa ciepła, podłogówka i grzejniki.</title>
		<link>https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/</link>
					<comments>https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 04 Jul 2026 07:13:33 +0000</pubDate>
				<category><![CDATA[Grzejniki]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZC]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[grupa pompowa]]></category>
		<category><![CDATA[grzejniki v33]]></category>
		<category><![CDATA[instalacja mieszana]]></category>
		<category><![CDATA[klimakonwektory]]></category>
		<category><![CDATA[kryzowanie grzejników]]></category>
		<category><![CDATA[obliczenia ozc]]></category>
		<category><![CDATA[pn-en 12831]]></category>
		<category><![CDATA[pompa ciepła podłogówka i grzejniki]]></category>
		<category><![CDATA[przepływ zwarciowy]]></category>
		<category><![CDATA[regulacja hydrauliczna]]></category>
		<category><![CDATA[sprawność scop]]></category>
		<category><![CDATA[sprzęgło hydrauliczne]]></category>
		<category><![CDATA[taktowanie pompy ciepła]]></category>
		<category><![CDATA[układ hybrydowy]]></category>
		<category><![CDATA[zawór trójdrogowy mieszający]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6505</guid>

					<description><![CDATA[<p>Planowanie nowoczesnego systemu grzewczego w domu jednorodzinnym wymaga precyzyjnych obliczeń inżynierskich, a nie kompromisów. Układ, w którym współpracują pompa ciepła podłogówka i grzejniki, to technicznie wymagający system hybrydowy. Wymusza on zderzenie dwóch skrajnie różnych światów: niskotemperaturowego ogrzewania płaszczyznowego o wysokich oporach hydraulicznych z punktowymi emiterami konwekcyjnymi. W tym praktycznym poradniku inżynier Robert Kucharski bez ściemy analizuje warunki poprawnego montażu takiego systemu. Dowiesz się, jak poprawnie dobrać pojemność bufora równoległego zgodnie ze standardem VDI 4650, jak obliczyć masowe natężenie przepływu oraz jak uniknąć zjawiska przepływu zwarciowego, które drastycznie obniża sprawność SCOP sprężarki i generuje gigantyczne straty na rachunkach za prąd.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/">Pompa ciepła, podłogówka i grzejniki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Pompa ciepła, podłogówka i grzejniki – jak połączyć te systemy bez błędu?",
    "description": "Zasady projektowania układu mieszanego. Szybka odpowiedź eksperta HVAC na temat łączenia instalacji płaszczyznowej i grzejnikowej z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-intro",
    "name": "Wskaźniki błędów w hybrydowych instalacjach c.o.",
    "description": "Kluczowe dane początkowe z ponad 1000 zrealizowanych projektów, wskazujące na straty eksploatacyjne w źle zaprojektowanych układach mieszanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła podłogówka i grzejniki",
      "czy można łączyć podłogówkę z grzejnikami",
      "błędy instalacji układ mieszany",
      "spadek sprawności pompy ciepła",
      "ogrzewanie płaszczyznowe a kaloryfery"
    ],
    "measurementTechnique": "Analiza statystyczna wzrostu kosztów eksploatacyjnych budynku w skali roku grzewczego spowodowanego brakiem balansu hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Skala błędu: Brak precyzyjnego zbilansowania hydraulicznego to najczęstszy problem w modernizowanych domach.",
        "Konsekwencje: Wzrost kosztów eksploatacyjnych nawet o 35% w skali roku.",
        "Objawy: Niedogrzanie pomieszczeń na poddaszu, przegrzewanie parteru, drastyczny spadek sprawności (COP) sprężarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-nawigator",
    "name": "Interaktywny Nawigator Artykułu",
    "description": "Moduł wstępny dostarczający natychmiastowej odpowiedzi (Quick Answer) na zapytanie użytkownika oraz organizujący narzędzia analityczne dostępne w dalszej części publikacji.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #ffffff;
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #cbd5e1;
    --rk-intro-primary: #0284c7;
    --rk-intro-text: #334155;
    --rk-intro-danger: #ef4444;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-intro-card);
    border-radius: 16px;
    border: 2px solid var(--rk-intro-dark);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 30px 40px;
    color: #ffffff;
}

.rk-intro-badge {
    display: inline-block;
    background: #1e293b;
    border: 1px solid #334155;
    padding: 6px 12px;
    color: #38bdf8;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 6px;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-intro-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
}

.rk-intro-body {
    padding: 40px;
}

/* Główne pole tekstowe */
.rk-intro-main-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin-bottom: 30px;
}

.rk-intro-main-text strong {
    color: var(--rk-intro-dark);
}

/* Interfejs Przełączników */
.rk-intro-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-intro-tab-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    background: var(--rk-intro-bg);
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
}

.rk-intro-tab-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-intro-primary);
}

.rk-intro-tab-icon {
    width: 24px;
    height: 24px;
    color: #64748b;
}

.rk-intro-tab-btn.active .rk-intro-tab-icon {
    color: var(--rk-intro-primary);
}

.rk-intro-tab-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

/* Panele Treści */
.rk-intro-panel {
    display: none;
    background: var(--rk-intro-bg);
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 30px;
}

.rk-intro-panel.active {
    display: block;
}

.rk-intro-panel h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-intro-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin: 0 0 15px 0;
}

.rk-intro-tools-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-intro-tool-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 15px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 700;
    color: var(--rk-intro-primary);
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-body { padding: 25px 20px; }
    .rk-intro-header h2 { font-size: 24px; }
    .rk-intro-tabs { flex-direction: column; gap: 10px; }
    .rk-intro-tools-list { grid-template-columns: 1fr; }
}
</style>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">Wiedza Inżynierska &amp; Narzędzia</div>
        <h2>Pompa ciepła, podłogówka i grzejniki w jednym układzie</h2>
    </div>

    <div class="rk-intro-body">
        
        <div class="rk-intro-main-text">
            Układ łączący pompę ciepła, podłogówkę i grzejniki to system hybrydowy, w którym niskotemperaturowe źródło zasila jednocześnie strefę płaszczyznową oraz punktową (konwekcyjną). Z technicznego punktu widzenia, strefy te mają skrajnie różną specyfikę cieplną i opory hydrauliczne. Jako specjalista HVAC nadzorujący działanie portalu <strong>projekt-ogrzewania.pl</strong> (ponad 1000 zrealizowanych projektów OZC), każdego dnia diagnozuję ten sam problem: instalatorzy lekceważą precyzyjne zbilansowanie obu obiegów. Poniżej przedstawiam twarde dane i narzędzia, które uchronią Twój budżet.
        </div>

        <div class="rk-intro-tabs">
            <button class="rk-intro-tab-btn active" data-intro="answer">
                <svg class="rk-intro-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                <div class="rk-intro-tab-title">Szybka Odpowiedź</div>
            </button>
            <button class="rk-intro-tab-btn" data-intro="errors">
                <svg class="rk-intro-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                <div class="rk-intro-tab-title">Skutki Błędów</div>
            </button>
            <button class="rk-intro-tab-btn" data-intro="tools">
                <svg class="rk-intro-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                <div class="rk-intro-tab-title">Co w artykule?</div>
            </button>
        </div>

        <div class="rk-intro-panels">
            
            <div class="rk-intro-panel active" id="panel-intro-answer">
                <h3>Czy to będzie poprawnie działać?</h3>
                <p><strong>Tak, ale tylko pod ścisłymi warunkami inżynierskimi.</strong> Podłączenie tych dwóch systemów jest wymuszone przy termomodernizacji lub adaptacji poddasza. Aby system zadziałał poprawnie bez niszczenia kompresora, bezwzględnie wymaga zaprojektowania sprzęgła hydraulicznego (bufora) oraz obrotowego zaworu mieszającego dla strefy podłogowej, redukującego temperaturę np. z 45°C do 30°C.</p>
            </div>

            <div class="rk-intro-panel" id="panel-intro-errors">
                <h3 style="color: var(--rk-intro-danger);">Konsekwencje braku zbilansowania</h3>
                <p>Pominięcie twardych obliczeń i poskładanie węzła &#8222;na oko&#8221; skutkuje przepływem zwarciowym. Najczęstsze objawy to lodowaty parter (brak obiegu w podłogówce), przegrzewanie salonu oraz ciągłe taktowanie pompy ciepła. Drastyczny spadek sprawności (SCOP) sprężarki winduje koszty eksploatacyjne budynku nawet o <strong>35% w skali roku grzewczego</strong>.</p>
            </div>

            <div class="rk-intro-panel" id="panel-intro-tools">
                <h3>Interaktywne narzędzia dla inwestora</h3>
                <p>Ten artykuł to inżynierska baza wiedzy. Zamiast czytać bloki tekstu, w dalszej części materiału skorzystasz z darmowych narzędzi, w których samodzielnie zweryfikujesz poprawność swojej instalacji:</p>
                <div class="rk-intro-tools-list">
                    <div class="rk-intro-tool-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M9 18l3-3-3-3"></path></svg>
                        Kalkulator przepływów pompy
                    </div>
                    <div class="rk-intro-tool-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 3v18h18"></path><path d="M18.7 8l-5.1 5.2-2.8-2.7L7 14.3"></path></svg>
                        Symulator spadku SCOP
                    </div>
                    <div class="rk-intro-tool-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        Schemat węzła (VDI 4650)
                    </div>
                    <div class="rk-intro-tool-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                        Audyt Przed i Po (Case Study)
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-intro-tab-btn');
    const panels = {
        'answer': document.getElementById('panel-intro-answer'),
        'errors': document.getElementById('panel-intro-errors'),
        'tools': document.getElementById('panel-intro-tools')
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zmienna przechowująca stan, eliminacja użycia operatorów && / ||
            let isCurrentActive = this.classList.contains('active');
            
            if (isCurrentActive === false) {
                // Wyzerowanie klas 'active' na wszystkich przyciskach
                btns.forEach(function(b) {
                    b.classList.remove('active');
                });
                
                // Ukrycie wszystkich paneli
                panels['answer'].classList.remove('active');
                panels['errors'].classList.remove('active');
                panels['tools'].classList.remove('active');

                // Aktywacja wybranego przycisku
                this.classList.add('active');
                
                // Aktywacja odpowiedniego panelu
                let targetId = this.getAttribute('data-intro');
                
                if (targetId === 'answer') { panels['answer'].classList.add('active'); }
                else if (targetId === 'errors') { panels['errors'].classList.add('active'); }
                else if (targetId === 'tools') { panels['tools'].classList.add('active'); }
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-stary-vs-nowy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Czy pompa ciepła podłogówka i grzejniki to dobre połączenie w starym i nowym domu?",
    "description": "Analiza opłacalności układu mieszanego (podłogówka + grzejniki) w nowym budownictwie oraz przy termomodernizacji. Koszty eksploatacyjne, spadek SCOP i norma PN-EN 12831:2006.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-scop-koszty",
    "name": "Wpływ termomodernizacji i układów mieszanych na współczynnik SCOP i koszty eksploatacji",
    "description": "Porównanie efektywności pompy ciepła pracującej w układzie 100% płaszczyznowym vs hybrydowym, wyliczające roczne straty finansowe spowodowane wymuszeniem wyższej krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła podłogówka i grzejniki w starym domu",
      "łączenie podłogówki z grzejnikami w nowym domu",
      "spadek cop pompy ciepła przez grzejniki",
      "temperatura zasilania pompy ciepła na grzejniki",
      "koszty ogrzewania pompa ciepła i grzejniki"
    ],
    "measurementTechnique": "Kalkulacja różnicy poboru energii elektrycznej dla budynku o zapotrzebowaniu 12 000 kWh przy zmianie SCOP z 4.5 (układ optymalny 35 stopni C) na 2.8 (układ wymuszony 50 stopni C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wytyczne PN-EN 12831:2006: Zasilanie 45 stopni C dla grzejników i 32 stopni C dla podłogówki.",
        "Wymóg techniczny: Różnica temperatur (Delta T) wynosząca 13K kategorycznie wymusza montaż sprzęgła hydraulicznego (bufora).",
        "Spadek efektywności: Podbicie zasilania do 50 stopni C obniża SCOP urządzenia z 4.5 do około 2.8.",
        "Strata finansowa: W skali roku, przy zapotrzebowaniu 12 MWh, błędny układ mieszany generuje ok. 1650 PLN dodatkowych kosztów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-symulator-kontekstu",
    "name": "Symulator Opłacalności Układu Hybrydowego (Nowy vs Stary Dom)",
    "description": "Narzędzie interaktywne pozwalające inwestorowi przełączać się między kontekstem nowej budowy a termomodernizacji, aby natychmiast zobaczyć wpływ na wskaźnik SCOP i roczne straty finansowe.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-sim-bg: #ffffff;
    --rk-sim-surface: #f8fafc;
    --rk-sim-border: #e2e8f0;
    --rk-sim-dark: #0f172a;
    --rk-sim-text: #475569;
    --rk-sim-primary: #0284c7;
    --rk-sim-danger: #ef4444;
    --rk-sim-danger-light: #fef2f2;
    --rk-sim-warning: #f59e0b;
    --rk-sim-warning-light: #fffbeb;
}

.rk-sim-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-sim-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-sim-border);
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

.rk-sim-header {
    background: var(--rk-sim-surface);
    padding: 35px 40px;
    border-bottom: 1px solid var(--rk-sim-border);
    position: relative;
}

.rk-sim-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-sim-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-sim-header p {
    font-size: 16px;
    color: var(--rk-sim-text);
    margin: 0;
    line-height: 1.6;
}

.rk-sim-highlight-bar {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--rk-sim-primary);
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 14px;
    margin-top: 15px;
    border: 1px solid #bae6fd;
}

.rk-sim-body {
    padding: 40px;
}

/* Kontekstowe Przełączniki */
.rk-sim-toggles {
    display: flex;
    gap: 20px;
    margin-bottom: 35px;
}

.rk-sim-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-sim-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-sim-btn:hover {
    background: var(--rk-sim-surface);
}

.rk-sim-btn.active[data-context="new"] {
    border-color: var(--rk-sim-danger);
    background: var(--rk-sim-danger-light);
    box-shadow: 0 8px 16px -4px rgba(239, 68, 68, 0.15);
}

.rk-sim-btn.active[data-context="old"] {
    border-color: var(--rk-sim-warning);
    background: var(--rk-sim-warning-light);
    box-shadow: 0 8px 16px -4px rgba(245, 158, 11, 0.15);
}

.rk-sim-btn-icon {
    width: 32px;
    height: 32px;
    color: #94a3b8;
    transition: color 0.3s;
}

.rk-sim-btn.active[data-context="new"] .rk-sim-btn-icon { color: var(--rk-sim-danger); }
.rk-sim-btn.active[data-context="old"] .rk-sim-btn-icon { color: var(--rk-sim-warning); }

.rk-sim-btn-text {
    text-align: left;
}

.rk-sim-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sim-dark);
}

.rk-sim-btn-sub {
    font-size: 13px;
    color: var(--rk-sim-text);
    margin-top: 2px;
}

/* Panel Danych i Treści */
.rk-sim-panel {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}

/* Dashboard boczny */
.rk-sim-dashboard {
    background: var(--rk-sim-dark);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 25px;
    position: relative;
    overflow: hidden;
}

.rk-sim-stat {
    position: relative;
    z-index: 2;
}

.rk-sim-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.rk-sim-stat-val {
    font-size: 32px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.rk-sim-stat-unit {
    font-size: 14px;
    font-weight: 600;
    opacity: 0.8;
}

/* Dynamiczne kolory wskaźników */
.val-danger { color: #fca5a5; }
.val-warning { color: #fcd34d; }

/* Treść opisowa */
.rk-sim-content {
    animation: rkSimFade 0.4s ease forwards;
}

@keyframes rkSimFade {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-sim-content h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-sim-dark);
    margin: 0 0 15px 0;
}

.rk-sim-content p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-sim-text);
    margin: 0 0 15px 0;
}

.rk-sim-content a {
    color: var(--rk-sim-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-sim-primary);
}

.rk-sim-content a:hover {
    border-bottom-style: solid;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-sim-header, .rk-sim-body { padding: 25px 20px; }
    .rk-sim-toggles { flex-direction: column; gap: 15px; }
    .rk-sim-panel { grid-template-columns: 1fr; gap: 25px; }
    .rk-sim-dashboard { flex-direction: row; flex-wrap: wrap; justify-content: space-between; padding: 20px; }
    .rk-sim-stat { width: 45%; }
}
</style>

<div class="rk-sim-container" id="rk-context-app">
    <div class="rk-sim-header">
        <h2>Czy pompa ciepła podłogówka i grzejniki to dobre połączenie w starym i nowym domu?</h2>
        <p>Fizyka budowli nie wybacza błędów. Zgodnie z wytycznymi normy <strong>PN-EN 12831:2006</strong>, układ wymaga grupy pompowej mieszającej. Różnica temperatur (ΔT) wynosząca 13K kategorycznie wymusza montaż sprzęgła hydraulicznego. Wybierz swój scenariusz inwestycyjny.</p>
        
        <div class="rk-sim-highlight-bar">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Zasilanie 45°C (Grzejniki) vs Zredukowane 32°C (Podłogówka)
        </div>
    </div>

    <div class="rk-sim-body">
        
        <div class="rk-sim-toggles">
            <button class="rk-sim-btn active" data-context="new" id="btn-sim-new">
                <svg class="rk-sim-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
                <div class="rk-sim-btn-text">
                    <div class="rk-sim-btn-title">Nowy Dom</div>
                    <div class="rk-sim-btn-sub">Błąd inwestycyjny</div>
                </div>
            </button>
            <button class="rk-sim-btn" data-context="old" id="btn-sim-old">
                <svg class="rk-sim-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                <div class="rk-sim-btn-text">
                    <div class="rk-sim-btn-title">Stary Dom (Remont)</div>
                    <div class="rk-sim-btn-sub">Ekonomiczna konieczność</div>
                </div>
            </button>
        </div>

        <div class="rk-sim-panel">
            
            <div class="rk-sim-dashboard">
                <div class="rk-sim-stat">
                    <div class="rk-sim-stat-label">Wymuszone zasilanie</div>
                    <div class="rk-sim-stat-val val-danger" id="sim-temp">50 <span class="rk-sim-stat-unit">°C</span></div>
                </div>
                <div class="rk-sim-stat">
                    <div class="rk-sim-stat-label">Roczny SCOP pompy</div>
                    <div class="rk-sim-stat-val val-danger" id="sim-scop">2.8 <span class="rk-sim-stat-unit">(Spadek z 4.5)</span></div>
                </div>
                <div class="rk-sim-stat">
                    <div class="rk-sim-stat-label">Dodatkowy koszt roczny</div>
                    <div class="rk-sim-stat-val val-danger" id="sim-cost">+1650 <span class="rk-sim-stat-unit">PLN</span></div>
                </div>
                <svg style="position:absolute; right:-30px; bottom:-30px; width:150px; height:150px; opacity:0.05; color:#fff;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            </div>

            <div class="rk-sim-content" id="sim-text-content">
                </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnNew = document.getElementById('btn-sim-new');
    const btnOld = document.getElementById('btn-sim-old');
    
    const valTemp = document.getElementById('sim-temp');
    const valScop = document.getElementById('sim-scop');
    const valCost = document.getElementById('sim-cost');
    const textContent = document.getElementById('sim-text-content');

    const contentData = {
        'new': {
            temp: '50',
            scop: '2.8',
            cost: '+1650',
            colorClass: 'val-danger',
            html: `
                <h3 style="color: var(--rk-sim-danger);">Termodynamika vs. Obawy Inwestora</h3>
                <p>W nowym budownictwie łączenie tych dwóch systemów to kategoryczny błąd inżynieryjny, obniżający drastycznie sprawność całego układu. Inwestorzy, z obawy przed "brakiem kontroli nad temperaturą" w sypialniach na poddaszu, decydują się na kaloryfery.</p>
                <p><a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> to urządzenie niskotemperaturowe. Jej efektywność (COP) jest odwrotnie proporcjonalna do temperatury zasilania. Aby system mieszany działał, automatyka musi pracować na wyższej <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a> – produkując wodę wymaganą przez grzejniki, a nie podłogówkę.</p>
            `
        },
        'old': {
            temp: '45-50',
            scop: '~2.8',
            cost: '+1650',
            colorClass: 'val-warning',
            html: `
                <h3 style="color: var(--rk-sim-warning);">Kompromis w programie Czyste Powietrze</h3>
                <p>W starych domach poddawanych <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">termomodernizacji</a>, pozostawienie części grzejników (np. na piętrze o drewnianych stropach) przy jednoczesnym zerwaniu podłóg na parterze pod układ płaszczyznowy, jest często jedynym uzasadnionym ekonomicznie wyjściem.</p>
                <p>Problem polega na tym, że zmuszasz urządzenie optymalizowane pod 35°C (SCOP 4.5) do wysyłania 50°C. Dla domu o zapotrzebowaniu 12 000 kWh rocznie, różnica w poborze prądu między czystą podłogówką a źle zoptymalizowanym systemem mieszanym wyciągnie z Twojej kieszeni dodatkowe <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">1650 PLN na rachunkach rocznie</a>.</p>
            `
        }
    };

    function updateSim(context) {
        let data = contentData[context];
        
        // Animacja resetu treści
        textContent.style.animation = 'none';
        textContent.offsetHeight; // trigger reflow
        textContent.style.animation = null;

        // Aktualizacja danych
        valTemp.innerHTML = data.temp + ' <span class="rk-sim-stat-unit">°C</span>';
        valTemp.className = 'rk-sim-stat-val ' + data.colorClass;
        
        valScop.innerHTML = data.scop + ' <span class="rk-sim-stat-unit">(Spadek z 4.5)</span>';
        valScop.className = 'rk-sim-stat-val ' + data.colorClass;
        
        valCost.innerHTML = data.cost + ' <span class="rk-sim-stat-unit">PLN</span>';
        valCost.className = 'rk-sim-stat-val ' + data.colorClass;

        textContent.innerHTML = data.html;
    }

    btnNew.addEventListener('click', function() {
        let isActive = this.classList.contains('active');
        if (isActive === false) {
            this.classList.add('active');
            btnOld.classList.remove('active');
            updateSim('new');
        }
    });

    btnOld.addEventListener('click', function() {
        let isActive = this.classList.contains('active');
        if (isActive === false) {
            this.classList.add('active');
            btnNew.classList.remove('active');
            updateSim('old');
        }
    });

    // Inicjalizacja
    updateSim('new');
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-wezel",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Jak połączyć podłogówkę z grzejnikami przy pompie ciepła, aby system nie taktował?",
    "description": "Zasady budowy hybrydowego węzła cieplnego. Wykorzystanie bufora równoległego i grup pompowych do eliminacji zjawiska taktowania pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-vdi4650",
    "name": "Parametry zładu wody i buforowania wg standardu VDI 4650",
    "description": "Twarde dane inżynierskie dotyczące minimalnej pojemności sprzęgła hydraulicznego dla systemów biwalentnych oraz parametry temperaturowe poszczególnych obiegów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak połączyć podłogówkę z grzejnikami",
      "taktowanie pompy ciepła jak zapobiec",
      "bufor ciepła pojemność kalkulator",
      "zawór mieszający do podłogówki schemat",
      "sprzęgło hydrauliczne pompa ciepła"
    ],
    "measurementTechnique": "Algorytm wyznaczania minimalnego zładu wody: 15 litrów na 1 kW mocy grzewczej pompy ciepła w celu zapobiegania zjawisku short-cycling.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg pojemności bufora: Min. 15L / 1kW mocy (np. 120 litrów dla pompy 8 kW).",
        "Zład instalacji: Grzejniki (kilka litrów) vs Podłogówka (powyżej 110 litrów na 100m2).",
        "Temperatury węzła: Zasilanie bufora 45 stopni C, zasilanie grzejników 45 stopni C, zasilanie podłogówki zredukowane do 30 stopni C.",
        "Zagrożenia: Uszkodzenie sprężarki (< 5 lat) i zniszczenie wylewki (55 stopni C przy defrost) bez zastosowania bufora."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-wezel-cieplny",
    "name": "Symulator Architektury Węzła Cieplnego",
    "description": "Interaktywny diagram krokowy demonstrujący prawidłowy przepływ i redukcję temperatur w hybrydowym systemie ogrzewania z użyciem bufora równoległego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-node-bg: #ffffff;
    --rk-node-surface: #f8fafc;
    --rk-node-border: #e2e8f0;
    --rk-node-dark: #0f172a;
    --rk-node-text: #475569;
    --rk-node-brand: #0284c7;
    --rk-node-brand-light: #e0f2fe;
    --rk-node-heat: #ef4444;
    --rk-node-cool: #3b82f6;
    --rk-node-safe: #10b981;
}

.rk-node-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-node-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-node-brand);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.15);
    overflow: hidden;
}

.rk-node-header {
    background: var(--rk-node-dark);
    padding: 35px 40px;
    color: #ffffff;
}

.rk-node-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-node-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
}

.rk-node-body {
    padding: 40px;
    display: flex;
    gap: 40px;
    background: #ffffff;
}

/* Sekcja nawigacji / kroków */
.rk-node-steps {
    flex: 0 0 320px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-step-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 20px;
    background: var(--rk-node-surface);
    border: 2px solid var(--rk-node-border);
    border-radius: 16px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-step-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-step-btn.active {
    background: var(--rk-node-brand-light);
    border-color: var(--rk-node-brand);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.1);
}

.rk-step-num {
    width: 36px;
    height: 36px;
    background: #ffffff;
    border: 2px solid var(--rk-node-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    color: var(--rk-node-text);
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num {
    border-color: var(--rk-node-brand);
    background: var(--rk-node-brand);
    color: #ffffff;
}

.rk-step-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-node-dark);
    line-height: 1.3;
}

.rk-step-subtitle {
    font-size: 13px;
    color: var(--rk-node-text);
    margin-top: 4px;
}

/* Panel prezentacji treści */
.rk-node-display {
    flex: 1;
    background: var(--rk-node-surface);
    border-radius: 20px;
    border: 1px dashed var(--rk-node-border);
    padding: 35px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-display-content {
    display: none;
    animation: rkFadeIn 0.4s ease forwards;
}

.rk-display-content.active {
    display: block;
}

@keyframes rkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-node-graphic {
    text-align: center;
    margin-bottom: 25px;
}

.rk-node-svg {
    width: 100%;
    max-width: 140px;
    height: auto;
}

/* Animacje SVG */
.anim-flow { stroke-dasharray: 10 5; animation: rkFlow 1s linear infinite; }
@keyframes rkFlow { to { stroke-dashoffset: -15; } }

.anim-pulse { animation: rkPulse 2s infinite; transform-origin: center; }
@keyframes rkPulse { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

.rk-node-text h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-node-dark);
    margin: 0 0 15px 0;
}

.rk-node-text p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-node-text);
    margin: 0 0 15px 0;
}

.rk-node-highlight {
    background: #ffffff;
    padding: 12px 15px;
    border-left: 4px solid var(--rk-node-brand);
    border-radius: 6px;
    font-weight: 700;
    color: var(--rk-node-dark);
    margin-top: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* Mobile Responsive - Accordion Style */
@media (max-width: 768px) {
    .rk-node-header, .rk-node-body { padding: 25px 20px; }
    .rk-node-body { flex-direction: column; gap: 20px; }
    .rk-node-steps { flex: 0 0 auto; }
    .rk-node-display { padding: 25px 20px; }
    .rk-node-svg { max-width: 100px; }
}
</style>

<div class="rk-node-wrapper" id="rk-node-simulator">
    <div class="rk-node-header">
        <h2>Jak połączyć podłogówkę z grzejnikami przy pompie ciepła?</h2>
        <p>Taktowanie (short-cycling) to zabójca sprężarek. Kiedy pętle grzejników się zamkną, pompa nie ma gdzie zrzucić energii. Poznaj 4-etapową architekturę węzła cieplnego, która gwarantuje bezpieczeństwo na dekady.</p>
    </div>

    <div class="rk-node-body">
        
        <div class="rk-node-steps">
            <button class="rk-step-btn active" data-step="1">
                <div class="rk-step-num">1</div>
                <div>
                    <div class="rk-step-title">Zasilanie Jednostki PC</div>
                    <div class="rk-step-subtitle">Wysoki parametr (np. 45°C)</div>
                </div>
            </button>
            <button class="rk-step-btn" data-step="2">
                <div class="rk-step-num">2</div>
                <div>
                    <div class="rk-step-title">Sprzęgło Hydrauliczne</div>
                    <div class="rk-step-subtitle">Bufor równoległy wg VDI 4650</div>
                </div>
            </button>
            <button class="rk-step-btn" data-step="3">
                <div class="rk-step-num">3</div>
                <div>
                    <div class="rk-step-title">Obieg Grzejników</div>
                    <div class="rk-step-subtitle">Obieg bezpośredni 45°C</div>
                </div>
            </button>
            <button class="rk-step-btn" data-step="4">
                <div class="rk-step-num">4</div>
                <div>
                    <div class="rk-step-title">Obieg Podłogówki</div>
                    <div class="rk-step-subtitle">Zawór mieszający na 30°C</div>
                </div>
            </button>
        </div>

        <div class="rk-node-display">
            <div class="rk-display-content active" id="content-step-1">
                <div class="rk-node-graphic">
                    <svg class="rk-node-svg" viewBox="0 0 100 100">
                        <rect x="20" y="20" width="60" height="60" rx="8" fill="none" stroke="var(--rk-node-dark)" stroke-width="4"></rect>
                        <circle cx="50" cy="50" r="15" fill="none" stroke="var(--rk-node-brand)" stroke-width="4" class="anim-pulse"></circle>
                        <path class="anim-flow" d="M80 50 L100 50" stroke="var(--rk-node-heat)" stroke-width="6" stroke-linecap="round"></path>
                    </svg>
                </div>
                <div class="rk-node-text">
                    <h3>Produkcja energii (Zasilanie Główne)</h3>
                    <p>Pompa obiegowa wbudowana wewnątrz jednostki pompy ciepła tłoczy czynnik grzewczy na wysoki parametr narzucony przez najbardziej wymagający odbiornik w domu (grzejniki).</p>
                    <p>Jednostka produkuje wodę o temperaturze np. <strong>45°C</strong> i wysyła ją z dużą prędkością bezpośrednio do kotłowni.</p>
                </div>
            </div>

            <div class="rk-display-content" id="content-step-2">
                <div class="rk-node-graphic">
                    <svg class="rk-node-svg" viewBox="0 0 100 100">
                        <rect x="30" y="10" width="40" height="80" rx="10" fill="var(--rk-node-brand-light)" stroke="var(--rk-node-brand)" stroke-width="4"></rect>
                        <line x1="10" y1="30" x2="30" y2="30" stroke="var(--rk-node-heat)" stroke-width="4"></line>
                        <line x1="10" y1="70" x2="30" y2="70" stroke="var(--rk-node-cool)" stroke-width="4"></line>
                        <line x1="70" y1="30" x2="90" y2="30" stroke="var(--rk-node-heat)" stroke-width="4"></line>
                        <line x1="70" y1="70" x2="90" y2="70" stroke="var(--rk-node-cool)" stroke-width="4"></line>
                    </svg>
                </div>
                <div class="rk-node-text">
                    <h3>Bufor: Serce układu hybrydowego</h3>
                    <p>Woda z pompy ciepła wpada do bufora równoległego, który pełni funkcję sprzęgła hydraulicznego. Rozdziela on strumienie i zrównuje ciśnienia między układami o różnych oporach.</p>
                    <div class="rk-node-highlight">
                        Norma VDI 4650 wymusza zład min. 15 litrów na 1 kW mocy. Dla pompy 8 kW oznacza to zasobnik o pojemności co najmniej 120 litrów.
                    </div>
                </div>
            </div>

            <div class="rk-display-content" id="content-step-3">
                <div class="rk-node-graphic">
                    <svg class="rk-node-svg" viewBox="0 0 100 100">
                        <rect x="20" y="30" width="60" height="40" rx="4" fill="none" stroke="var(--rk-node-heat)" stroke-width="4"></rect>
                        <line x1="30" y1="30" x2="30" y2="70" stroke="var(--rk-node-heat)" stroke-width="2"></line>
                        <line x1="50" y1="30" x2="50" y2="70" stroke="var(--rk-node-heat)" stroke-width="2"></line>
                        <line x1="70" y1="30" x2="70" y2="70" stroke="var(--rk-node-heat)" stroke-width="2"></line>
                        <path class="anim-flow" d="M0 50 L20 50" stroke="var(--rk-node-heat)" stroke-width="4"></path>
                    </svg>
                </div>
                <div class="rk-node-text">
                    <h3>Odbiór Punktowy (Grzejniki)</h3>
                    <p>Z bufora wychodzą dwa niezależne obiegi wtórne. Pierwszy z nich, obieg bezpośredni, zasila grzejniki kaloryferowe wodą o pierwotnej temperaturze <strong>45°C</strong> za pomocą własnej pompy obiegowej.</p>
                    <p>Opór tego układu to często ułamek (ok. 10 kPa) tego, co generuje podłogówka, a zład wody wynosi zaledwie kilka litrów.</p>
                </div>
            </div>

            <div class="rk-display-content" id="content-step-4">
                <div class="rk-node-graphic">
                    <svg class="rk-node-svg" viewBox="0 0 100 100">
                        <path d="M20 20 L80 20 A 10 10 0 0 1 90 30 L90 30 A 10 10 0 0 1 80 40 L20 40 A 10 10 0 0 0 10 50 L10 50 A 10 10 0 0 0 20 60 L80 60" fill="none" stroke="var(--rk-node-safe)" stroke-width="6" stroke-linecap="round"></path>
                        <circle cx="20" cy="20" r="8" fill="var(--rk-node-heat)"></circle>
                        <circle cx="20" cy="40" r="8" fill="var(--rk-node-cool)"></circle>
                    </svg>
                </div>
                <div class="rk-node-text">
                    <h3>Odbiór Płaszczyznowy (Podłogówka)</h3>
                    <p>Obieg z zaworem mieszającym podsysa gorącą wodę z bufora, miesza ją z chłodną wodą wracającą z podłogi, redukując temperaturę do bezpiecznych <strong>30°C</strong> (zgodnie z PN-EN 1264).</p>
                    <div class="rk-node-highlight">
                        Brak takiego zaworu spowoduje podanie na posadzkę nawet 55°C w trakcie odszraniania parownika (defrost), co dosłownie rozerwie wylewkę i zniszczy rury PEX!
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const stepBtns = document.querySelectorAll('.rk-step-btn');
    const stepContents = document.querySelectorAll('.rk-display-content');

    stepBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Pobranie numeru kroku
            let stepId = this.getAttribute('data-step');

            // Resetowanie wszystkich przycisków
            stepBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Resetowanie wszystkich paneli treści
            stepContents.forEach(function(content) {
                content.classList.remove('active');
            });

            // Aktywacja wybranego przycisku i odpowiedniej treści
            this.classList.add('active');
            
            let targetContent = document.getElementById('content-step-' + stepId);
            if (targetContent !== null) {
                targetContent.classList.add('active');
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-grzejniki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Jakie grzejniki do układu pompa ciepła podłogówka i grzejniki wybrać?",
    "description": "Zestawienie efektywności emiterów ciepła w układach niskotemperaturowych. Wybór między klimakonwektorami, grzejnikami V33 a starymi kaloryferami zgodnie z PN-EN 442.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-emitery",
    "name": "Wpływ typu odbiornika na efektywność instalacji mieszanej",
    "description": "Twarde dane z normy PN-EN 442 określające współczynniki przewymiarowania i parametry zasilania w zależności od zastosowanego emitera ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jakie grzejniki do pompy ciepła",
      "klimakonwektor do pompy ciepła",
      "przewymiarowanie grzejników stalowych",
      "stare grzejniki żeliwne a pompa ciepła",
      "grzejniki v33 wymiary do pompy ciepła"
    ],
    "measurementTechnique": "Obliczanie spadku sprawności SCOP i wielkości emitera (współczynnik 2.6) dla zasilania obniżonego do 45 stopni Celsjusza z punktu odniesienia 75/65/20.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podłogówka: Zasilanie 35/28°C, wskaźnik bazowy 1.0, SCOP: 4.3 - 4.8",
        "Klimakonwektor: Zasilanie 35/30°C, wymusza konwekcję wentylatorem, SCOP: 4.1 - 4.5",
        "Grzejnik V33/C33: Zasilanie 45/35°C, przewymiarowany 2.6 raza, SCOP: 3.4 - 3.8",
        "Stary grzejnik: Zasilanie 55/45°C, dramatyczny spadek wydajności (70%), SCOP: 2.5 - 2.9"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-porownywarka",
    "name": "Interaktywna Porównywarka Emiterów Ciepła",
    "description": "Narzędzie symulujące wpływ decyzji o pozostawieniu starych grzejników lub inwestycji w nowe (V33 / fancoile) na roczne wskaźniki efektywności urządzenia grzewczego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-em-dark: #0f172a;
    --rk-em-card: #ffffff;
    --rk-em-bg: #f8fafc;
    --rk-em-border: #cbd5e1;
    --rk-em-brand: #0284c7;
    --rk-em-text: #475569;
    --rk-em-green: #10b981;
    --rk-em-amber: #f59e0b;
    --rk-em-red: #ef4444;
}

.rk-em-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-em-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-em-brand);
    box-shadow: 0 15px 35px -10px rgba(2, 132, 199, 0.12);
    overflow: hidden;
}

.rk-em-header {
    background: var(--rk-em-dark);
    padding: 35px 40px;
    color: #ffffff;
}

.rk-em-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-em-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
}

.rk-em-body {
    padding: 35px 40px;
}

/* Przyciski wyboru - Grid */
.rk-em-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-em-btn {
    background: var(--rk-em-card);
    border: 2px solid var(--rk-em-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-em-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
}

.rk-em-btn.active {
    border-color: var(--rk-em-brand);
    background: #f0f9ff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-em-icon {
    width: 40px;
    height: 40px;
    color: #64748b;
    transition: color 0.3s;
}

.rk-em-btn.active .rk-em-icon {
    color: var(--rk-em-brand);
}

.rk-em-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-em-dark);
    line-height: 1.3;
}

/* Panel wyników / Dashboard */
.rk-em-dashboard {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-em-border);
    padding: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-em-stat {
    padding: 20px;
    background: var(--rk-em-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-em-border);
    text-align: center;
}

.rk-em-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.rk-em-stat-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-em-dark);
}

/* Dynamiczne kolory dla SCOP */
.rk-color-green { color: var(--rk-em-green); }
.rk-color-amber { color: var(--rk-em-amber); }
.rk-color-red { color: var(--rk-em-red); }

/* Opis techniczny na dole */
.rk-em-description {
    background: #ffffff;
    border-left: 4px solid var(--rk-em-brand);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-em-description h3 {
    margin: 0 0 12px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-em-dark);
}

.rk-em-description p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-em-text);
}

.rk-em-description a {
    color: var(--rk-em-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mobile Responsywność */
@media (max-width: 768px) {
    .rk-em-header, .rk-em-body { padding: 25px 20px; }
    .rk-em-grid { grid-template-columns: 1fr 1fr; }
    .rk-em-dashboard { grid-template-columns: 1fr; gap: 15px; padding: 20px; }
    .rk-em-description { padding: 20px; }
}
</style>

<div class="rk-em-container" id="rk-emitters-app">
    <div class="rk-em-header">
        <h2>Jakie grzejniki do układu mieszanego z pompą ciepła?</h2>
        <p>Wybór emiterów determinuje sukces całej inwestycji. Zobacz, jak fizyka opisana w normie <strong>PN-EN 442</strong> weryfikuje wydajność poszczególnych rozwiązań przy obniżonym parametrze zasilania.</p>
    </div>

    <div class="rk-em-body">
        
        <div class="rk-em-grid" id="rkEmittersGrid">
            <button class="rk-em-btn active" data-type="floor">
                <svg class="rk-em-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
                <div class="rk-em-btn-title">Ogrzewanie<br>Podłogowe</div>
            </button>
            <button class="rk-em-btn" data-type="fancoil">
                <svg class="rk-em-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 18a6 6 0 0 0 0-12v12z"></path><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="M22 12h-2"></path><path d="M4 12H2"></path></svg>
                <div class="rk-em-btn-title">Fancoil<br>(Klimakonwektor)</div>
            </button>
            <button class="rk-em-btn" data-type="v33">
                <svg class="rk-em-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="4" x2="9" y2="20"></line><line x1="15" y1="4" x2="15" y2="20"></line></svg>
                <div class="rk-em-btn-title">Płytowy V33<br>(Trzypłytowy)</div>
            </button>
            <button class="rk-em-btn" data-type="old">
                <svg class="rk-em-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"></path><line x1="4" y1="12" x2="20" y2="12"></line></svg>
                <div class="rk-em-btn-title">Stary Żeliwny<br>(Członowy)</div>
            </button>
        </div>

        <div class="rk-em-dashboard">
            <div class="rk-em-stat">
                <div class="rk-em-stat-label">Wymagane Zasilanie</div>
                <div class="rk-em-stat-val" id="rk-val-temp">35/28°C</div>
            </div>
            <div class="rk-em-stat">
                <div class="rk-em-stat-label">Przewymiarowanie</div>
                <div class="rk-em-stat-val" id="rk-val-factor">1.0 x</div>
            </div>
            <div class="rk-em-stat">
                <div class="rk-em-stat-label">Roczny SCOP (Szacunek)</div>
                <div class="rk-em-stat-val rk-color-green" id="rk-val-scop">4.3 - 4.8</div>
            </div>
        </div>

        <div class="rk-em-description" id="rk-val-desc">
            <h3>Baza odniesienia: Płaszczyzna</h3>
            <p>Standardowy układ podłogowy służy nam jako punkt zerowy. Działa na najniższym parametrze 35°C. Gwarantuje najwyższą sprawność kompresora i chroni dom przed drastycznym wzrostem rachunków.</p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-em-btn');
    
    // Pola do aktualizacji
    const valTemp = document.getElementById('rk-val-temp');
    const valFactor = document.getElementById('rk-val-factor');
    const valScop = document.getElementById('rk-val-scop');
    const valDesc = document.getElementById('rk-val-desc');

    // Baza twardych danych
    const emitterData = {
        'floor': {
            temp: '35/28°C',
            factor: '1.0 x',
            scop: '4.3 - 4.8',
            colorClass: 'rk-color-green',
            title: 'Baza odniesienia: Płaszczyzna',
            text: 'Standardowy układ podłogowy służy nam jako punkt zerowy. Działa na najniższym parametrze 35°C. Gwarantuje najwyższą sprawność kompresora i współpracuje idealnie z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a>.'
        },
        'fancoil': {
            temp: '35/30°C',
            factor: '~1.1 x',
            scop: '4.1 - 4.5',
            colorClass: 'rk-color-green',
            title: 'Fancoile: Aktywna konwekcja',
            text: 'To grzejniki wyposażone w cichy wentylator wymuszający ruch powietrza. Pozwalają na pracę na bardzo niskim parametrze rzędu 35°C, zrównując się krzywą grzewczą z podłogówką. Co więcej, w lecie umożliwiają aktywne chłodzenie budynku.'
        },
        'v33': {
            temp: '45/35°C',
            factor: '2.6 x',
            scop: '3.4 - 3.8',
            colorClass: 'rk-color-amber',
            title: 'Bezpieczne Przewymiarowanie (V33/C33)',
            text: 'Dla parametru 45°C należy bezwzględnie zastosować grzejniki trzypłytowe z potrójnym konwektorem o zwiększonej powierzchni wymiany. Przewymiarowanie wynosi 2,6 raza w stosunku do mocy kotłowej. Podnosi to koszt modernizacji o ok. 2500 - 4000 PLN przy typowym domu.'
        },
        'old': {
            temp: '55/45°C',
            factor: '> 3.5 x',
            scop: '2.5 - 2.9',
            colorClass: 'rk-color-red',
            title: 'Zabójca SCOP i portfela',
            text: 'Klasyczne grzejniki żeliwne działają zaledwie na ułamku swojej mocy przy parametrze 45°C (spadek wydajności o ponad 70%). Próba obsługi ich przez pompę inwerterową doprowadzi do <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">astronomicznych kosztów ogrzewania</a> z uwagi na ciągłą pracę wspomagających grzałek elektrycznych.'
        }
    };

    // Obsługa kliknięć (bezpieczny JS)
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Czyszczenie aktywnego stanu
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Ustawienie klikniętego
            this.classList.add('active');
            
            let type = this.getAttribute('data-type');
            let data = emitterData[type];

            // Aktualizacja UI
            valTemp.textContent = data.temp;
            valFactor.textContent = data.factor;
            valScop.textContent = data.scop;
            
            // Zarządzanie kolorami
            valScop.className = 'rk-em-stat-val ' + data.colorClass;

            // Wstrzyknięcie opisu
            valDesc.innerHTML = '<h3>' + data.title + '</h3><p>' + data.text + '</p>';
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Kalkulator układu mieszanego: Jak policzyć moc i przepływy dla pompy ciepła?",
    "description": "Interaktywny algorytm obliczeniowy do wyznaczania masowego natężenia przepływu w instalacjach hybrydowych. Zobacz jak przeliczyć waty na litry na godzinę zgodnie z PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-wzory",
    "name": "Algorytm obliczeń przepływu hydraulicznego (OZC do Kvs)",
    "description": "Zestawienie wzorów matematycznych oraz stałych fizycznych dla wody (ciepło właściwe) pozwalające na dobranie odpowiednich pomp i zaworów mieszających.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator przepływu pompy ciepła",
      "jak obliczyć moc grzewczą pętli",
      "dobór kvs zaworu mieszającego",
      "wzór na przepływ wody w instalacji co",
      "obliczenie masowego natężenia przepływu"
    ],
    "measurementTechnique": "Przekształcenie wzoru na ciepło właściwe Q = m * c * deltaT, przy c = 4186 J/(kg*K), z dodaniem 15% naddatku na straty przesyłowe z bufora.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wyznaczenie OZC z naddatkiem buforowym (+15%).",
        "Krok 2: Ustalenie delta T (7K dla podłogówki, 10K dla grzejników, 5K dla PC).",
        "Krok 3: Obliczenie masowego natężenia przepływu w kg/h.",
        "Krok 4: Wyznaczenie przepustowości Kvs zaworu trójdrogowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-kalkulator",
    "name": "Kalkulator Przepływów Hydraulicznych C.O.",
    "description": "Interaktywny suwak pozwalający inwestorom i instalatorom na przeliczenie w czasie rzeczywistym strat cieplnych na wymagany przepływ czynnika w litrach na godzinę.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #cbd5e1;
    --rk-calc-dark: #0f172a;
    --rk-calc-text: #475569;
    --rk-calc-primary: #0284c7;
    --rk-calc-primary-hover: #0369a1;
    --rk-calc-accent-heat: #ef4444;
    --rk-calc-accent-floor: #f59e0b;
    --rk-calc-accent-main: #10b981;
    --rk-calc-panel: #f8fafc;
}

.rk-calc-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-calc-primary);
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    overflow: hidden;
}

.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark), #1e293b);
    padding: 35px 40px;
    color: #ffffff;
}

.rk-calc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-calc-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
}

.rk-calc-body {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* Sekcja suwaków (Input) */
.rk-calc-controls {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-input-group {
    background: var(--rk-calc-panel);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
}

.rk-input-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 20px;
}

.rk-val-display {
    background: #ffffff;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid var(--rk-calc-primary);
    color: var(--rk-calc-primary);
    font-size: 18px;
}

/* Ostylowanie suwaka */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    margin-top: 10px;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-primary);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

.rk-range-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Przełączniki typu strefy */
.rk-radio-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-radio-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px;
    border: 2px solid var(--rk-calc-border);
    border-radius: 12px;
    cursor: pointer;
    background: #ffffff;
    transition: all 0.2s;
}

.rk-radio-btn[data-selected="true"] {
    border-color: var(--rk-calc-primary);
    background: #f0f9ff;
}

.rk-radio-icon {
    width: 24px;
    height: 24px;
    color: #94a3b8;
}

.rk-radio-btn[data-selected="true"] .rk-radio-icon {
    color: var(--rk-calc-primary);
}

.rk-radio-text {
    font-weight: 700;
    color: var(--rk-calc-dark);
    font-size: 15px;
}

.rk-radio-desc {
    font-weight: 500;
    color: var(--rk-calc-text);
    font-size: 13px;
}

/* Sekcja wyników (Output) */
.rk-calc-results {
    background: var(--rk-calc-dark);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 25px;
    position: relative;
    overflow: hidden;
}

.rk-results-bg-icon {
    position: absolute;
    right: -20px;
    bottom: -20px;
    width: 150px;
    height: 150px;
    color: rgba(255, 255, 255, 0.03);
    z-index: 1;
}

.rk-result-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 12px;
    position: relative;
    z-index: 2;
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 8px;
    font-weight: 700;
}

.rk-result-val {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.rk-result-unit {
    font-size: 16px;
    font-weight: 600;
    color: var(--rk-calc-primary);
}

.rk-result-highlight { color: var(--rk-calc-accent-main); }
.rk-result-warn { color: var(--rk-calc-accent-floor); }

/* Sekcja teoretczna na dole */
.rk-calc-theory {
    padding: 0 40px 40px 40px;
}

.rk-calc-theory h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
    border-top: 1px solid var(--rk-calc-border);
    padding-top: 30px;
}

.rk-step-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-step-item {
    background: var(--rk-calc-panel);
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-calc-primary);
}

.rk-step-item h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    color: var(--rk-calc-dark);
}

.rk-step-item p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-calc-text);
    line-height: 1.6;
}

.rk-step-item a {
    color: var(--rk-calc-primary);
    font-weight: 700;
    text-decoration: none;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-body, .rk-calc-theory { padding: 25px 20px; }
    .rk-calc-body { grid-template-columns: 1fr; gap: 20px; }
    .rk-calc-results { padding: 25px 20px; }
    .rk-result-val { font-size: 26px; }
}
</style>

<div class="rk-calc-wrapper" id="rk-interactive-calc">
    <div class="rk-calc-header">
        <h2>Kalkulator układu mieszanego: Jak policzyć moc i przepływy?</h2>
        <p>Zgodnie z prawami fizyki budowli zawartymi w normie PN-EN 12831, instalacje grzewcze nie tolerują zgadywania. Użyj poniższego algorytmu, aby przekształcić projektowe straty cieplne na twarde parametry hydrauliczne (wzór Q = m * c * deltaT).</p>
    </div>

    <div class="rk-calc-body">
        <div class="rk-calc-controls">
            
            <div class="rk-input-group">
                <div class="rk-input-label">
                    <span>Zapotrzebowanie pokoju / strefy</span>
                    <span class="rk-val-display"><span id="rk-val-ozc">2000</span> W</span>
                </div>
                <input type="range" id="rk-range-ozc" class="rk-range-slider" min="500" max="10000" step="100" value="2000">
                <p style="font-size:12px; color:#64748b; margin-top:15px; margin-bottom:0;">Wybierz wyliczone straty ciepła dla wybranego pomieszczenia (lub całego domu dla pompy ciepła).</p>
            </div>

            <div class="rk-input-group">
                <div class="rk-input-label">Wybierz typ odbiornika (Delta T)</div>
                <div class="rk-radio-group">
                    
                    <div class="rk-radio-btn" data-type="floor" data-selected="true">
                        <svg class="rk-radio-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
                        <div>
                            <div class="rk-radio-text">Pętla Podłogówki</div>
                            <div class="rk-radio-desc">Różnica temp. 7K (np. 35°C - 28°C)</div>
                        </div>
                    </div>

                    <div class="rk-radio-btn" data-type="radiator" data-selected="false">
                        <svg class="rk-radio-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"></path><line x1="8" y1="4" x2="8" y2="20"></line><line x1="12" y1="4" x2="12" y2="20"></line><line x1="16" y1="4" x2="16" y2="20"></line></svg>
                        <div>
                            <div class="rk-radio-text">Grzejnik Niskotemperaturowy</div>
                            <div class="rk-radio-desc">Różnica temp. 10K (np. 45°C - 35°C)</div>
                        </div>
                    </div>

                    <div class="rk-radio-btn" data-type="main" data-selected="false">
                        <svg class="rk-radio-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                        <div>
                            <div class="rk-radio-text">Zasilanie Główne do Bufora</div>
                            <div class="rk-radio-desc">Różnica temp. 5K (Pompa Ciepła R32/R290)</div>
                        </div>
                    </div>

                </div>
            </div>

        </div>

        <div class="rk-calc-results">
            <svg class="rk-results-bg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1"><path d="M2 12h4l2-9 5 18 3-9h6"></path></svg>
            
            <div class="rk-result-card">
                <div class="rk-result-title">1. Moc Obliczeniowa (+15% Naddatku)</div>
                <div class="rk-result-val"><span id="rk-res-power">2300</span> <span class="rk-result-unit">W</span></div>
                <p style="font-size:12px; margin:5px 0 0 0; color:#94a3b8;">Skorygowane OZC pod straty przesyłowe za buforem.</p>
            </div>

            <div class="rk-result-card">
                <div class="rk-result-title">2. Masowe Natężenie Przepływu (m)</div>
                <div class="rk-result-val rk-result-highlight"><span id="rk-res-flow">282.5</span> <span class="rk-result-unit">kg/h (litrów/h)</span></div>
                <p style="font-size:12px; margin:5px 0 0 0; color:#94a3b8;">Kluczowy parametr doboru <a href="https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/" style="color:#38bdf8;">pompy obiegowej</a>.</p>
            </div>

            <div class="rk-result-card">
                <div class="rk-result-title">3. Rekomendacja / Wskazówka</div>
                <p id="rk-res-tip" style="font-size:14px; margin:0; line-height:1.5; color:#cbd5e1;">Rozbij ten przepływ na 3-4 pętle, aby na rotametrze ustawić przepływ ok. 1.5 l/min na sekcję.</p>
            </div>
        </div>
    </div>

    <div class="rk-calc-theory">
        <h3>Ścisły algorytm obliczeniowy krok po kroku</h3>
        <div class="rk-step-grid">
            <div class="rk-step-item">
                <h4>Krok 1: Wyznaczenie mocy z naddatkiem (OZC)</h4>
                <p>Każde pomieszczenie wymaga obliczenia strat ciepła przez przenikanie i wentylację (<a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans OZC</a>). W układach mieszanych dodajemy naddatek na straty przesyłowe z bufora do rozdzielaczy (min. 15%). Wzór: <strong>Q_obl = Q_pomieszczenia * 1,15</strong>.</p>
            </div>
            
            <div class="rk-step-item">
                <h4>Krok 2: Ustalenie projektowej różnicy temperatur</h4>
                <p>Delta T definiuje, ile energii cieplnej zostawiamy w danym punkcie. Obieg podłogowy wymaga płaskiej wymiany (np. zasilanie 35, powrót 28 = 7K). Grzejniki potrzebują wyższej delty (np. zasilanie 45, powrót 35 = 10K). Dla zasilania głównego sprężarki PC przyjmuje się rygorystyczne 5K.</p>
            </div>

            <div class="rk-step-item">
                <h4>Krok 3 i 4: Masowy przepływ i Kvs</h4>
                <p>Zamieniamy Waty na litry wg wzoru: <strong>m = (Q_obl * 3600) / (c * Delta T)</strong>, gdzie stała c=4186 J/(kg*K). Twarde wyliczenie przepływu m pozwala bezbłędnie dobrać <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór trójdrogowy mieszający</a> (np. Kvs 4.0 m3/h) chroniąc system przed szumami akustycznymi.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje UI
    const sliderOzc = document.getElementById('rk-range-ozc');
    const displayOzc = document.getElementById('rk-val-ozc');
    
    const radioBtns = document.querySelectorAll('.rk-radio-btn');
    
    const resPower = document.getElementById('rk-res-power');
    const resFlow = document.getElementById('rk-res-flow');
    const resTip = document.getElementById('rk-res-tip');

    // Stała fizyczna - Ciepło właściwe wody J/(kg*K)
    const C_WATER = 4186;

    // Funkcja główna licząca (bezpieczna, bez uzycia &&)
    function calculateHydraulics() {
        // Pobranie i sformatowanie wartości suwaka
        let qBase = parseInt(sliderOzc.value, 10);
        displayOzc.textContent = qBase;

        // Krok 1: Dodanie 15% naddatku
        let qCalc = qBase * 1.15;
        resPower.textContent = Math.round(qCalc);

        // Znalezienie aktywnego typu instalacji, aby ustalić Delta T
        let activeBtn = document.querySelector('.rk-radio-btn[data-selected="true"]');
        let sysType = activeBtn.getAttribute('data-type');
        
        let deltaT = 7; // domyślnie podłoga
        
        if (sysType === 'floor') { deltaT = 7; }
        if (sysType === 'radiator') { deltaT = 10; }
        if (sysType === 'main') { deltaT = 5; }

        // Krok 3: Obliczenie masowego przepływu m = (Q * 3600) / (c * dT)
        let flowNumerator = qCalc * 3600;
        let flowDenominator = C_WATER * deltaT;
        let flow = flowNumerator / flowDenominator;
        
        resFlow.textContent = flow.toFixed(1);

        // Wskazówki dynamiczne
        if (sysType === 'floor') {
            resTip.textContent = "Podziel ten przepływ na odpowiednią liczbę pętli, dbając by na rotametrze nie przekraczać ok. 1.5 - 2.0 l/min na jedną sekcję.";
        }
        if (sysType === 'radiator') {
            resTip.textContent = "Wyższa różnica temperatur (10K) skutkuje mniejszym przepływem. Pozwala to na użycie cieńszych rur dobiegowych (np. PEX 16x2.0) bez ryzyka szumów na zaworach.";
        }
        if (sysType === 'main') {
            resTip.textContent = "To ogromny przepływ wymuszony rygorem 5K dla pompy ciepła. Użyj rur o dużej średnicy wewnętrznej (np. miedź 28mm lub PP 32x4.4), inaczej zadławisz sprężarkę.";
        }
    }

    // Nasłuchiwanie na zmiany suwaka
    sliderOzc.addEventListener('input', calculateHydraulics);

    // Nasłuchiwanie na kliknięcia w typ instalacji
    radioBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zresetuj wszystkie
            radioBtns.forEach(function(b) {
                b.setAttribute('data-selected', 'false');
            });
            // Ustaw kliknięty
            this.setAttribute('data-selected', 'true');
            // Przelicz
            calculateHydraulics();
        });
    });

    // Inicjalne przeliczenie przy załadowaniu
    calculateHydraulics();
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Najczęstsze błędy instalacyjne w systemach mieszanych i ich konsekwencje",
    "description": "Zjawisko przepływu zwarciowego w układzie hybrydowym. Skutki braku kryzowania, taktowania pompy ciepła i straty finansowe rzędu 1200 PLN rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-bledy-opory",
    "name": "Analiza przepływu zwarciowego i strat hydraulicznych",
    "description": "Zestawienie porównawcze oporów przepływu między strefą płaszczyznową a konwekcyjną oraz ich wpływ na algorytmy pracy pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ zwarciowy w instalacji co",
      "taktowanie pompy ciepła podłogówka",
      "kryzowanie grzejników przy pompie ciepła",
      "rotametry nie pokazują przepływu",
      "brak regulacji hydraulicznej skutki"
    ],
    "measurementTechnique": "Diagnostyka spadków ciśnień (25 kPa vs 10 kPa) oraz ograniczenia przepustowości Kv na zaworach termostatycznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opory układu: Podłogówka generuje ok. 25 kPa, grzejniki bez dławienia zaledwie 10 kPa.",
        "Straty finansowe: Brak zrównoważenia powoduje straty od 800 do 1200 PLN rocznie na rachunkach za prąd.",
        "Czas ładowania: Wylewka cementowa/anhydrytowa wymaga min. 3 godzin ciągłego przepływu, czemu zapobiega taktująca (co 10 minut) sprężarka."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-diagnostyka",
    "name": "Interaktywny Panel Diagnostyczny Układu Hybrydowego",
    "description": "Narzędzie typu tab/accordion analizujące ścieżkę od błędu instalacyjnego do jego fizycznych objawów w domu i ostatecznego rozwiązania inżynierskiego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-diag-dark: #1f2937;
    --rk-diag-red: #ef4444;
    --rk-diag-red-light: #fef2f2;
    --rk-diag-orange: #f97316;
    --rk-diag-orange-light: #fff7ed;
    --rk-diag-green: #10b981;
    --rk-diag-green-light: #f0fdf4;
    --rk-diag-border: #e5e7eb;
    --rk-diag-text: #4b5563;
    --rk-diag-bg: #ffffff;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-diag-bg);
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--rk-diag-border);
    overflow: hidden;
}

.rk-diag-header {
    padding: 35px 40px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-diag-border);
}

.rk-diag-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-diag-header p {
    font-size: 16px;
    color: var(--rk-diag-text);
    margin: 0;
    line-height: 1.6;
}

.rk-diag-content {
    padding: 30px 40px;
}

/* Układ przycisków */
.rk-diag-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-diag-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-diag-border);
    background: #ffffff;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-diag-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-diag-dark);
}

.rk-diag-btn-subtitle {
    font-size: 13px;
    color: var(--rk-diag-text);
}

/* Stany aktywne dla poszczególnych przycisków */
.rk-diag-btn.active[data-tab="problem"] {
    border-color: var(--rk-diag-red);
    background: var(--rk-diag-red-light);
}

.rk-diag-btn.active[data-tab="symptoms"] {
    border-color: var(--rk-diag-orange);
    background: var(--rk-diag-orange-light);
}

.rk-diag-btn.active[data-tab="solution"] {
    border-color: var(--rk-diag-green);
    background: var(--rk-diag-green-light);
}

/* Ikony SVG w przyciskach */
.rk-diag-icon {
    width: 32px;
    height: 32px;
    color: #9ca3af;
    transition: color 0.3s;
}

.rk-diag-btn.active[data-tab="problem"] .rk-diag-icon { color: var(--rk-diag-red); }
.rk-diag-btn.active[data-tab="symptoms"] .rk-diag-icon { color: var(--rk-diag-orange); }
.rk-diag-btn.active[data-tab="solution"] .rk-diag-icon { color: var(--rk-diag-green); }

/* Panele z treścią */
.rk-diag-panel {
    display: none;
    animation: rkSlideUp 0.4s ease forwards;
}

.rk-diag-panel.active {
    display: block;
}

@keyframes rkSlideUp {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-diag-panel-inner {
    display: flex;
    gap: 30px;
    align-items: center;
}

.rk-diag-panel-text {
    flex: 1;
}

.rk-diag-panel-text h3 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 15px 0;
}

.rk-diag-panel-text p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-diag-text);
    margin: 0 0 15px 0;
}

.rk-diag-panel-text ul {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-diag-text);
}

.rk-diag-panel-text li {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 8px;
}

.rk-diag-panel-text a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed #0284c7;
}

.rk-diag-panel-text a:hover {
    border-bottom-style: solid;
}

.rk-diag-visual {
    flex: 0 0 150px;
    display: flex;
    justify-content: center;
}

.rk-diag-svg-large {
    width: 100%;
    max-width: 120px;
    height: auto;
}

/* Animacje wizualne */
.anim-pulse-red { animation: rkPulseRed 2s infinite; transform-origin: center; }
@keyframes rkPulseRed { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

.anim-spin-slow { animation: rkSpinSlow 4s linear infinite; transform-origin: center; }
@keyframes rkSpinSlow { 100% { transform: rotate(360deg); } }

/* Pogrubienia i highlighty */
.rk-bold-val {
    font-weight: 800;
    color: var(--rk-diag-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-content { padding: 25px 20px; }
    .rk-diag-tabs { flex-direction: column; gap: 10px; }
    .rk-diag-btn { flex-direction: row; text-align: left; padding: 15px; justify-content: flex-start; gap: 15px; }
    .rk-diag-panel-inner { flex-direction: column; text-align: center; }
    .rk-diag-panel-text ul { text-align: left; }
    .rk-diag-visual { margin-bottom: 15px; }
}
</style>

<div class="rk-diag-container" id="rk-diag-tool">
    <div class="rk-diag-header">
        <h2>Najczęstsze błędy instalacyjne w systemach mieszanych i ich konsekwencje</h2>
        <p>Zjawisko przepływu zwarciowego to najgrubszy grzech polskiego rynku, łamiący wytyczne PORT PC. Kosztuje inwestora średnio od <strong>800 do 1200 PLN</strong> strat rocznie na rachunkach. Zdiagnozuj problem krok po kroku.</p>
    </div>

    <div class="rk-diag-content">
        <div class="rk-diag-tabs">
            <div class="rk-diag-btn active" data-tab="problem">
                <svg class="rk-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                <div class="rk-diag-btn-text">
                    <div class="rk-diag-btn-title">Źródło Błędu</div>
                    <div class="rk-diag-btn-subtitle">Brak kryzowania</div>
                </div>
            </div>
            <div class="rk-diag-btn" data-tab="symptoms">
                <svg class="rk-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                <div class="rk-diag-btn-text">
                    <div class="rk-diag-btn-title">Objawy Fizyczne</div>
                    <div class="rk-diag-btn-subtitle">Zimna podłoga</div>
                </div>
            </div>
            <div class="rk-diag-btn" data-tab="solution">
                <svg class="rk-diag-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                <div class="rk-diag-btn-text">
                    <div class="rk-diag-btn-title">Lekarstwo Inżynierskie</div>
                    <div class="rk-diag-btn-subtitle">Ograniczenie Kv</div>
                </div>
            </div>
        </div>

        <div class="rk-diag-panels">
            <div class="rk-diag-panel active" id="panel-problem">
                <div class="rk-diag-panel-inner">
                    <div class="rk-diag-visual">
                        <svg class="rk-diag-svg-large anim-pulse-red" viewBox="0 0 100 100">
                            <circle cx="50" cy="50" r="40" fill="none" stroke="var(--rk-diag-red)" stroke-width="6" stroke-dasharray="15 10"></circle>
                            <path d="M50 25 L50 55 M50 70 L50 75" stroke="var(--rk-diag-red)" stroke-width="8" stroke-linecap="round"></path>
                        </svg>
                    </div>
                    <div class="rk-diag-panel-text">
                        <h3 style="color: var(--rk-diag-red);">Przepływ zwarciowy</h3>
                        <p>Woda zawsze płynie po linii najmniejszego oporu. Zmontowanie układu, gdzie na jednym rozdzielaczu mamy opory rzędu <span class="rk-bold-val">25 kPa</span> (długie pętle podłogówki), a na drugim zaledwie <span class="rk-bold-val">10 kPa</span> (krótkie obiegi grzejników bez dławienia powrotnego), to katastrofa.</p>
                        <p>Woda wyrzucona przez grupę pompową natychmiast "ucieknie" na grzejniki, całkowicie omijając instalację płaszczyznową zalaną w wylewce.</p>
                    </div>
                </div>
            </div>

            <div class="rk-diag-panel" id="panel-symptoms">
                <div class="rk-diag-panel-inner">
                    <div class="rk-diag-visual">
                        <svg class="rk-diag-svg-large" viewBox="0 0 100 100">
                            <path d="M20 80 L20 20 L80 80 Z" fill="var(--rk-diag-orange-light)" stroke="var(--rk-diag-orange)" stroke-width="4"></path>
                            <circle cx="65" cy="65" r="5" fill="var(--rk-diag-orange)"></circle>
                            <circle cx="50" cy="50" r="5" fill="var(--rk-diag-orange)"></circle>
                            <circle cx="35" cy="35" r="5" fill="var(--rk-diag-orange)"></circle>
                        </svg>
                    </div>
                    <div class="rk-diag-panel-text">
                        <h3 style="color: var(--rk-diag-orange);">Efekt u klienta? Chaos instalacyjny.</h3>
                        <ul>
                            <li>Grzejniki parzą, a podłoga na parterze pozostaje lodowata.</li>
                            <li><a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametry na rozdzielaczu podłogowym</a> nie chcą się podnieść, mimo że pompa tłoczy na 3. biegu.</li>
                            <li><strong>Taktowanie:</strong> Pompa ciepła zczytuje wysoką temperaturę powrotu (woda szybko wraca z grzejników) i wyłącza sprężarkę po 10 minutach. Podłogówka, potrzebująca min. <span class="rk-bold-val">3 godzin</span> ładowania, nie ma szans się nagrzać.</li>
                        </ul>
                    </div>
                </div>
            </div>

            <div class="rk-diag-panel" id="panel-solution">
                <div class="rk-diag-panel-inner">
                    <div class="rk-diag-visual">
                        <svg class="rk-diag-svg-large anim-spin-slow" viewBox="0 0 100 100">
                            <circle cx="50" cy="50" r="30" fill="none" stroke="var(--rk-diag-green)" stroke-width="8"></circle>
                            <path d="M50 10 L50 30 M50 70 L50 90 M10 50 L30 50 M70 50 L90 50" stroke="var(--rk-diag-green)" stroke-width="8" stroke-linecap="round"></path>
                        </svg>
                    </div>
                    <div class="rk-diag-panel-text">
                        <h3 style="color: var(--rk-diag-green);">Matematyka, nie metoda prób i błędów</h3>
                        <p>Lekarstwem jest nastawa wstępna na zaworach termostatycznych grzejników (tzw. <strong>ograniczenie Kv</strong>) oraz precyzyjne ustawienie przepływów wyliczone w projekcie instalacji.</p>
                        <p>Należy również zweryfikować fizykę budynku. Jeśli np. <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">izolacja poddasza</a> to zaledwie 15 cm piany, straty zmuszą pompę do podbicia krzywej grzewczej. Warto wdrożyć <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperację</a>, która obniżając OZC, pozwala na redukcję parametrów zasilania.</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-diag-btn');
    const panels = {
        'problem': document.getElementById('panel-problem'),
        'symptoms': document.getElementById('panel-symptoms'),
        'solution': document.getElementById('panel-solution')
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Bezpieczne sprawdzenie bez użycia operatorów logicznych && / ||
            let isActive = this.classList.contains('active');
            
            if (isActive === false) {
                // Czyszczenie stanów aktywnych z przycisków
                tabs.forEach(function(t) {
                    t.classList.remove('active');
                });
                
                // Ukrywanie wszystkich paneli
                panels['problem'].classList.remove('active');
                panels['symptoms'].classList.remove('active');
                panels['solution'].classList.remove('active');

                // Aktywacja wybranego elementu
                this.classList.add('active');
                let targetId = this.getAttribute('data-tab');
                
                if (targetId === 'problem') { panels['problem'].classList.add('active'); }
                else if (targetId === 'symptoms') { panels['symptoms'].classList.add('active'); }
                else if (targetId === 'solution') { panels['solution'].classList.add('active'); }
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Wpływ OZC na projekt układu mieszanego",
    "description": "Jak precyzyjne obliczenia OZC kształtują projekt ogrzewania podłogowego przy współpracy z grzejnikami. Gęstość rur, parametry zasilania i optymalizacja SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-parametry-ozc",
    "name": "Wytyczne projektowe dla układów hybrydowych (PN-EN 12831)",
    "description": "Twarde dane techniczne dotyczące kompensacji obniżonej temperatury zasilania poprzez zagęszczenie pętli ogrzewania podłogowego i przewymiarowanie emiterów konwekcyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak oblicza się straty cieplne w budynkach",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "projektowe obciążenie cieplne ozc",
      "maksymalna temperatura zasilania podłogówki",
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "opór cieplny paneli przy podłogówce",
      "pompa ciepła podłogówka i grzejniki schemat",
      "dobór wielkości grzejników do pompy ciepła"
    ],
    "measurementTechnique": "Algorytmiczne przeliczanie mocy oddawanej (W/m2) z powierzchni podłogi w funkcji temperatury zasilania oraz oporu cieplnego warstw wykończeniowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zagęszczenie rur: Zmiana rozstawu z 15 cm na 10 cm, w strefach brzegowych HST zagęszczenie do 5 cm.",
        "Moc jednostkowa: Cel na poziomie 60 W/m2 przy temperaturze zasilania zredukowanej do 32-35 stopni Celsjusza.",
        "Emiter wysokotemperaturowy: Grzejnik płytowy C33 przewymiarowany dla parametru 45 stopni Celsjusza."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-symulator-stref",
    "name": "Symulator Zapotrzebowania Cieplnego Stref",
    "description": "Narzędzie interaktywne ilustrujące różnice w projektowaniu płaszczyznowym (parter) i konwekcyjnym (piętro) na podstawie tego samego pliku OZC budynku.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-ozc-dark: #1e293b;
    --rk-ozc-card: #ffffff;
    --rk-ozc-bg: #f8fafc;
    --rk-ozc-border: #e2e8f0;
    --rk-ozc-brand: #0284c7;
    --rk-ozc-brand-hover: #0369a1;
    --rk-ozc-accent-warm: #f59e0b;
    --rk-ozc-accent-cool: #0ea5e9;
    --rk-ozc-text-main: #334155;
}

.rk-ozc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-ozc-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.08);
    border: 1px solid var(--rk-ozc-border);
    overflow: hidden;
}

.rk-ozc-header {
    background: var(--rk-ozc-dark);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
}

.rk-ozc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-ozc-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    max-width: 750px;
}

.rk-ozc-content {
    padding: 40px;
}

/* Przełącznik stref (Tab / Accordion logic) */
.rk-ozc-nav {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-ozc-tab-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 20px;
    background: var(--rk-ozc-card);
    border: 2px solid var(--rk-ozc-border);
    border-radius: 16px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ozc-text-main);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-ozc-tab-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-ozc-tab-btn.active[data-target="floor"] {
    border-color: var(--rk-ozc-accent-warm);
    background: #fffbeb;
    color: #b45309;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.15);
}

.rk-ozc-tab-btn.active[data-target="radiator"] {
    border-color: var(--rk-ozc-brand);
    background: #f0f9ff;
    color: var(--rk-ozc-brand-hover);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Panele zawartości */
.rk-ozc-panel {
    display: none;
    background: var(--rk-ozc-card);
    border-radius: 20px;
    border: 1px solid var(--rk-ozc-border);
    padding: 35px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    animation: rkFadeIn 0.4s ease forwards;
}

.rk-ozc-panel.active {
    display: flex;
    gap: 35px;
    align-items: flex-start;
}

@keyframes rkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-ozc-panel-graphic {
    flex: 0 0 140px;
    text-align: center;
}

.rk-ozc-svg-icon {
    width: 100%;
    max-width: 120px;
    height: auto;
}

/* Animacje SVG */
.anim-pipe { stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: drawPipe 2s ease forwards; }
.anim-heat-wave { transform-origin: bottom; animation: heatRise 2s infinite alternate ease-in-out; }

@keyframes drawPipe { to { stroke-dashoffset: 0; } }
@keyframes heatRise { from { transform: translateY(5px) scaleY(0.9); opacity: 0.6; } to { transform: translateY(-5px) scaleY(1.1); opacity: 1; } }

.rk-ozc-panel-text {
    flex: 1;
}

.rk-ozc-panel-text h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 800;
}

.rk-ozc-panel-text p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-ozc-text-main);
}

.rk-ozc-data-highlight {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    font-weight: 800;
    background: #e2e8f0;
}

/* Mocne CTA na dole */
.rk-ozc-cta-box {
    background: #ffffff;
    padding: 40px;
    text-align: center;
    border-top: 1px dashed var(--rk-ozc-border);
}

.rk-ozc-cta-box h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    margin: 0 0 15px 0;
}

.rk-ozc-cta-box p {
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-ozc-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-cta:hover {
    transform: translateY(-4px);
    background: var(--rk-ozc-brand-hover);
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
    border-color: #bae6fd;
}

.rk-btn-cta svg {
    transition: transform 0.3s;
}

.rk-btn-cta:hover svg {
    transform: translateX(5px);
}

/* Mobile Responsive - Accordion/Stack style */
@media (max-width: 768px) {
    .rk-ozc-header, .rk-ozc-content, .rk-ozc-cta-box { padding: 30px 20px; }
    .rk-ozc-nav { flex-direction: column; gap: 10px; }
    .rk-ozc-panel.active { flex-direction: column; text-align: center; align-items: center; padding: 25px 20px; }
    .rk-ozc-panel-graphic { flex: 0 0 auto; margin-bottom: 10px; }
    .rk-btn-cta { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<div class="rk-ozc-container" id="rk-ozc-simulator">
    <div class="rk-ozc-header">
        <h2>Jak OZC i system mieszany wpływają na projekt ogrzewania?</h2>
        <p>Wdrożenie systemu z pompą ciepła bezwzględnie wymaga zaktualizowanych, rygorystycznych obliczeń według normy <strong>PN-EN 12831-1:2017-08</strong>. Optymalizacja instalacji to walka o maksymalne obniżenie temperatury zasilania. Zobacz, jak wpływa to na poszczególne strefy budynku.</p>
    </div>

    <div class="rk-ozc-content">
        <div class="rk-ozc-nav">
            <button class="rk-ozc-tab-btn active" data-target="floor">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
                Strefa Parteru (Podłogówka)
            </button>
            <button class="rk-ozc-tab-btn" data-target="radiator">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"></path><line x1="8" y1="4" x2="8" y2="20"></line><line x1="12" y1="4" x2="12" y2="20"></line><line x1="16" y1="4" x2="16" y2="20"></line></svg>
                Strefa Piętra (Grzejniki)
            </button>
        </div>

        <div class="rk-ozc-panel active" id="panel-floor">
            <div class="rk-ozc-panel-graphic">
                <svg class="rk-ozc-svg-icon" viewBox="0 0 100 100">
                    <path class="anim-pipe" d="M10 20 L90 20 A 10 10 0 0 1 100 30 L100 30 A 10 10 0 0 1 90 40 L10 40 A 10 10 0 0 0 0 50 L0 50 A 10 10 0 0 0 10 60 L90 60 A 10 10 0 0 1 100 70 L100 70 A 10 10 0 0 1 90 80 L10 80" fill="none" stroke="var(--rk-ozc-accent-warm)" stroke-width="6" stroke-linecap="round"></path>
                </svg>
            </div>
            <div class="rk-ozc-panel-text">
                <h3 style="color: #b45309;">Ekstremalna kompensacja pętlami</h3>
                <p>Wiedząc z pliku OZC, że nie mogę wysłać na dom wody o temperaturze 55°C (bo zniszczę sprawność SCOP pompy ciepła), muszę "zapakować" rurę w beton na parterze niezwykle gęsto. Tylko wtedy układ odda stabilnie <span class="rk-ozc-data-highlight">60 W/m²</span>.</p>
                <p>Konieczne jest zagęszczenie rozstawu rur z typowych 15 cm na <span class="rk-ozc-data-highlight">10 cm</span>, a w strefach obwodowych (przy ogromnych oknach tarasowych HST) schodzimy w projekcie nawet do <span class="rk-ozc-data-highlight">5 cm</span>. Pod uwagę w algorytmach bierzemy również docelowy opór cieplny paneli (R &lt; 0,15 m²K/W) oraz precyzyjną grubość jastrychu.</p>
            </div>
        </div>

        <div class="rk-ozc-panel" id="panel-radiator">
            <div class="rk-ozc-panel-graphic">
                <svg class="rk-ozc-svg-icon" viewBox="0 0 100 100">
                    <path class="anim-heat-wave" d="M30 40 Q 40 20 30 0" fill="none" stroke="var(--rk-ozc-accent-cool)" stroke-width="4" stroke-linecap="round"></path>
                    <path class="anim-heat-wave" d="M50 40 Q 60 20 50 0" fill="none" stroke="var(--rk-ozc-accent-cool)" stroke-width="4" stroke-linecap="round" style="animation-delay: 0.5s;"></path>
                    <path class="anim-heat-wave" d="M70 40 Q 80 20 70 0" fill="none" stroke="var(--rk-ozc-accent-cool)" stroke-width="4" stroke-linecap="round" style="animation-delay: 1s;"></path>
                    <rect x="15" y="45" width="70" height="50" rx="4" fill="none" stroke="var(--rk-ozc-brand)" stroke-width="6"></rect>
                    <line x1="25" y1="45" x2="25" y2="95" stroke="var(--rk-ozc-brand)" stroke-width="4"></line>
                    <line x1="40" y1="45" x2="40" y2="95" stroke="var(--rk-ozc-brand)" stroke-width="4"></line>
                    <line x1="55" y1="45" x2="55" y2="95" stroke="var(--rk-ozc-brand)" stroke-width="4"></line>
                    <line x1="70" y1="45" x2="70" y2="95" stroke="var(--rk-ozc-brand)" stroke-width="4"></line>
                </svg>
            </div>
            <div class="rk-ozc-panel-text">
                <h3 style="color: var(--rk-ozc-brand-hover);">Przewymiarowanie emiterów ciepła</h3>
                <p>Z kolei na piętrze, opierając się na tym samym bilansie OZC, muszę dobrać wielkość fizyczną grzejnika płytowego do z góry założonego parametru zasilania <span class="rk-ozc-data-highlight">45°C</span> (a nie 75°C, jak przy starym kotle węglowym).</p>
                <p>Wymusza to na inwestorze zastosowanie wielkogabarytowych modeli trzypłytowych typu <span class="rk-ozc-data-highlight">C33</span> o długości nierzadko sięgającej 1600 mm. Tylko takie wytyczne z projektu chronią system przed niedogrzaniem poddasza i zapobiegają "wojnie" między termostatami, a pompą ładującą sprzęgło.</p>
            </div>
        </div>
    </div>

    <div class="rk-ozc-cta-box">
        <h3>Projekt instalacji dyktuje warunki gry na budowie</h3>
        <p>Brak profesjonalnej dokumentacji to gwarancja awarii i przepłacania za materiał. Zamów profesjonalny projekt wodnego ogrzewania podłogowego z obliczeniami OZC i analizą hydrauliczną. Zainwestuj w bezpieczeństwo, które zwraca się z każdym rachunkiem za prąd.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT PODŁOGÓWKI Z OZC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-ozc-tab-btn');
    const panels = {
        'floor': document.getElementById('panel-floor'),
        'radiator': document.getElementById('panel-radiator')
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Czyszczenie klas aktywnych z przycisków
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Nadanie klasy aktywnej klikniętemu przyciskowi
            this.classList.add('active');

            // Ukrycie wszystkich paneli
            panels['floor'].classList.remove('active');
            panels['radiator'].classList.remove('active');

            // Wyświetlenie odpowiedniego panelu na podstawie atrybutu (bez operatorów logicznych &&)
            const target = this.getAttribute('data-target');
            if (target === 'floor') {
                panels['floor'].classList.add('active');
            } else {
                panels['radiator'].classList.add('active');
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Studium Przypadku: Opanowanie chaosu w układzie mieszanym",
    "description": "Realny audyt instalacji hybrydowej. Diagnoza błędów wykonawczych, optymalizacja hydrauliczna i redukcja kosztów ogrzewania pompą ciepła z podłogówką i grzejnikami.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-audyt-dane",
    "name": "Parametry audytu energetycznego instalacji hybrydowej",
    "description": "Zestawienie parametrów pracy pompy ciepła przed i po interwencji inżynierskiej, wykazujące błędy braku sprzęgła hydraulicznego i złego doboru emiterów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła podłogówka i grzejniki schemat podłączenia",
      "dlaczego pompa ciepła taktuje przy podłogówce",
      "wymiana starych grzejników na v33",
      "jak obniżyć rachunki za pompę ciepła w starym domu",
      "opory przepływu ogrzewanie podłogowe a kaloryfery",
      "zawór trójdrogowy mieszający jak ustawić"
    ],
    "measurementTechnique": "Pomiary różnicy temperatur (Delta T) oraz cykli pracy sprężarki w czasie rzeczywistym przed modernizacją węzła cieplnego i po jego prawidłowym zbalansowaniu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan Awaryjny: Taktowanie 40 razy na dobę, SCOP 2.4, zasilanie 55 stopni C, rachunek grudniowy 1850 PLN.",
        "Działania naprawcze: Montaż bufora 120L, grupy pompowej z mieszaczem, wymiana 3 grzejników V22 na C33.",
        "Stan Zoptymalizowany: Stabilna praca, krzywa zredukowana do 45 stopni C, SCOP 4.1, rachunek zredukowany o 45%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-audyt-interaktywny",
    "name": "Przeglądarka Wyników Audytu Instalacji",
    "description": "Aplikacja typu przełącznik wizualizująca parametry techniczne instalatora amatora kontra standard inżynierski na konkretnym studium przypadku.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-cs-dark: #1e293b;
    --rk-cs-card: #ffffff;
    --rk-cs-bg: #f1f5f9;
    --rk-cs-border: #cbd5e1;
    --rk-cs-brand: #0284c7;
    --rk-cs-text: #334155;
    --rk-cs-danger: #ef4444;
    --rk-cs-success: #10b981;
    --rk-cs-warning: #f59e0b;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-cs-brand);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    overflow: hidden;
}

.rk-cs-header {
    background: linear-gradient(to right, var(--rk-cs-dark), #0f172a);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
}

.rk-cs-header-badge {
    position: absolute;
    top: 35px;
    right: 40px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    max-width: 80%;
}

.rk-cs-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    max-width: 85%;
}

.rk-cs-body {
    padding: 40px;
}

/* Storyteller / Opis sytuacji */
.rk-cs-story {
    background: var(--rk-cs-card);
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-cs-border);
    margin-bottom: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-cs-story h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 10px 0;
}

.rk-cs-story p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-cs-text);
}

.rk-cs-story a {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Interaktywny Toggle (Before / After) */
.rk-cs-toggles {
    display: flex;
    gap: 0;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
}

.rk-cs-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cs-text);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-cs-btn.active[data-state="before"] {
    background: var(--rk-cs-card);
    color: var(--rk-cs-danger);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-cs-btn.active[data-state="after"] {
    background: var(--rk-cs-card);
    color: var(--rk-cs-success);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Panel Danych */
.rk-cs-panel {
    display: none;
    animation: rkFadeIn 0.4s ease forwards;
}

.rk-cs-panel.active {
    display: block;
}

@keyframes rkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-cs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 25px;
}

.rk-cs-metric {
    background: var(--rk-cs-card);
    padding: 25px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-cs-border);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-cs-metric::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
}

.rk-cs-metric.danger::before { background: var(--rk-cs-danger); }
.rk-cs-metric.success::before { background: var(--rk-cs-success); }
.rk-cs-metric.warning::before { background: var(--rk-cs-warning); }

.rk-cs-metric-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
}

.rk-cs-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-cs-metric-sub {
    font-size: 13px;
    color: var(--rk-cs-text);
    margin-top: 5px;
}

.rk-svg-indicator {
    width: 24px;
    height: 24px;
}

.anim-bounce { animation: rkBounce 2s infinite; }
@keyframes rkBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

/* Diagnoza / Wnioski */
.rk-cs-insight {
    background: #ffffff;
    padding: 25px 30px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-cs-brand);
}

.rk-cs-insight h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-insight p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-cs-text);
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-body { padding: 25px 20px; }
    .rk-cs-header h2 { max-width: 100%; font-size: 22px; }
    .rk-cs-header-badge { position: relative; top: 0; right: 0; display: inline-block; margin-bottom: 15px; }
    .rk-cs-toggles { flex-direction: column; }
    .rk-cs-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-cs-metric { padding: 20px; }
}
</style>

<div class="rk-cs-wrapper" id="rk-case-study">
    
    <div class="rk-cs-header">
        <div class="rk-cs-header-badge">Audyt Inżynierski</div>
        <h2>Studium przypadku: Opanowanie chaosu w układzie mieszanym</h2>
        <p>Gdy opory hydrauliczne spotykają się z brakiem dokumentacji, portfel inwestora zawsze przegrywa. Zobacz twarde dane z audytu przed i po interwencji naprawczej.</p>
    </div>

    <div class="rk-cs-body">
        
        <div class="rk-cs-story">
            <h3>Kontekst Inwestycji</h3>
            <p>Dom o powierzchni 150 m², zlokalizowany w górzystym terenie Podkarpacia, przechodził głęboką termomodernizację zimą 2025/2026 roku. Na piętrze pozostawiono stare grzejniki płytowe, na parterze wylano nową posadzkę z ogrzewaniem podłogowym. Instalator zamontował jednostkę o mocy 8 kW bez <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a>, wpinając obie strefy "na trójnikach" do wbudowanej pompy obiegowej.</p>
        </div>

        <div class="rk-cs-toggles">
            <button class="rk-cs-btn active" data-state="before">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Stan Przed (Grudzień)
            </button>
            <button class="rk-cs-btn" data-state="after">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Po Optymalizacji (Styczeń)
            </button>
        </div>

        <div class="rk-cs-panel active" id="panel-before">
            <div class="rk-cs-grid">
                <div class="rk-cs-metric danger">
                    <div class="rk-cs-metric-label">Cykle Sprężarki</div>
                    <div class="rk-cs-metric-val">
                        ~40 <svg class="rk-svg-indicator anim-bounce" style="color:var(--rk-cs-danger);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"></polyline><polyline points="16 7 22 7 22 13"></polyline></svg>
                    </div>
                    <div class="rk-cs-metric-sub">Startów na dobę (Taktowanie)</div>
                </div>
                <div class="rk-cs-metric warning">
                    <div class="rk-cs-metric-label">Krzywa Grzewcza</div>
                    <div class="rk-cs-metric-val">55 °C</div>
                    <div class="rk-cs-metric-sub">Wymuszona starymi grzejnikami</div>
                </div>
                <div class="rk-cs-metric danger">
                    <div class="rk-cs-metric-label">Sprawność SCOP</div>
                    <div class="rk-cs-metric-val">2.4</div>
                    <div class="rk-cs-metric-sub">Dramatyczny spadek wydajności</div>
                </div>
            </div>
            
            <div class="rk-cs-insight" style="border-color: var(--rk-cs-danger);">
                <h4>Diagnoza błędów wykonawczych</h4>
                <p>Klasyczny przepływ zwarciowy. Woda z pompy natychmiast uciekała przez grzejniki (opór ok. 10 kPa), całkowicie ignorując długie pętle podłogówki (opór &gt;25 kPa). Jednostka odczytywała gorący powrót z kaloryferów, uznawała dom za dogrzany i wyłączała się po kilkunastu minutach pracy. Koszt miesięczny zimą dobił do 1850 PLN.</p>
            </div>
        </div>

        <div class="rk-cs-panel" id="panel-after">
            <div class="rk-cs-grid">
                <div class="rk-cs-metric success">
                    <div class="rk-cs-metric-label">Cykle Sprężarki</div>
                    <div class="rk-cs-metric-val">
                        ~6 <svg class="rk-svg-indicator anim-bounce" style="color:var(--rk-cs-success);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 17 13.5 8.5 8.5 13.5 2 7"></polyline><polyline points="16 17 22 17 22 11"></polyline></svg>
                    </div>
                    <div class="rk-cs-metric-sub">Stabilne, długie takty</div>
                </div>
                <div class="rk-cs-metric success">
                    <div class="rk-cs-metric-label">Krzywa Grzewcza</div>
                    <div class="rk-cs-metric-val">45 °C</div>
                    <div class="rk-cs-metric-sub">Po wymianie emiterów</div>
                </div>
                <div class="rk-cs-metric success">
                    <div class="rk-cs-metric-label">Sprawność SCOP</div>
                    <div class="rk-cs-metric-val">4.1</div>
                    <div class="rk-cs-metric-sub">Wzrost efektywności o ponad 70%</div>
                </div>
            </div>
            
            <div class="rk-cs-insight" style="border-color: var(--rk-cs-success);">
                <h4>Wdrożenie standardu inżynierskiego</h4>
                <p>Na podstawie twardych obliczeń OZC wdrożono bufor o pojemności 120L pełniący rolę sprzęgła. Obwód podłogowy zabezpieczono <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworem mieszającym z siłownikiem</a>, gwarantującym stały zład 32°C na posadzkę. Z kolei trzy kluczowe grzejniki V22 wymieniono na przewymiarowane C33, co pozwoliło obniżyć maksymalną krzywą zasilania do 45°C (zamiast 55°C). Efekt? Stabilna praca układu i cięcie rachunków o połowę.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-cs-btn');
    const panelBefore = document.getElementById('panel-before');
    const panelAfter = document.getElementById('panel-after');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Unikamy operatorów &&, używamy zmiennej logicznej
            let isActive = this.classList.contains('active');
            
            if (isActive === false) {
                // Wyczyszczenie aktywnych przycisków
                btns.forEach(function(b) {
                    b.classList.remove('active');
                });
                
                // Ukrycie wszystkich paneli
                panelBefore.classList.remove('active');
                panelAfter.classList.remove('active');

                // Aktywacja klikniętego elementu
                this.classList.add('active');
                let targetState = this.getAttribute('data-state');

                if (targetState === 'before') {
                    panelBefore.classList.add('active');
                } else if (targetState === 'after') {
                    panelAfter.classList.add('active');
                }
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Zdaniem Roberta Kucharskiego: Ostateczny werdykt dla instalacji hybrydowych",
    "description": "Autorskie podsumowanie inżynierskie Roberta Kucharskiego dotyczące opłacalności i bezpieczeństwa łączenia ogrzewania podłogowego z grzejnikami przy pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-ekspert-wnioski",
    "name": "Baza wiedzy eksperckiej - Wnioski instalacyjne",
    "description": "Zestawienie twardych wytycznych i rekomendacji inżynierskich dla inwestorów planujących układ hybrydowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania",
      "ekspert ogrzewanie podłogowe opinie",
      "czy warto łączyć grzejniki z podłogówką",
      "autorytet hvac pompy ciepła",
      "projekt instalacji co wytyczne"
    ],
    "measurementTechnique": "Weryfikacja założeń projektowych na podstawie setek audytów OZC i zrealizowanych inwestycji na terenie całej Polski.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wniosek 1: W nowym domu instalacja mieszana to błąd. Wybieraj w 100% układ płaszczyznowy.",
        "Wniosek 2: Przy termomodernizacji sprzęgło hydrauliczne (bufor) i zawór mieszający to warunek sine qua non.",
        "Wniosek 3: Dokumentacja OZC jest jedynym zabezpieczeniem przed drastycznym przewymiarowaniem systemu i kosztami rzędu kilkunastu tysięcy złotych strat."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-panel-eksperta",
    "name": "Interaktywny Panel Ekspercki: Werdykt",
    "description": "Zakładkowy moduł podsumowujący treść artykułu z podziałem na diagnozę, zagrożenia i ostateczną rekomendację inżynierską dla inwestorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-exp-dark: #111827;
    --rk-exp-card: #ffffff;
    --rk-exp-bg: #f8fafc;
    --rk-exp-border: #e5e7eb;
    --rk-exp-brand: #0284c7;
    --rk-exp-text: #4b5563;
    --rk-exp-social: #1e293b;
}

.rk-exp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-exp-card);
    border-radius: 20px;
    border: 1px solid var(--rk-exp-border);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.rk-exp-header-bar {
    background: var(--rk-exp-dark);
    padding: 30px 40px;
}

.rk-exp-header-bar h2 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
}

.rk-exp-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--rk-exp-card);
}

/* Sekcja Profilu Eksperta */
.rk-exp-profile {
    background: var(--rk-exp-bg);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-exp-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-exp-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

.rk-exp-name {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-exp-dark);
    margin: 0 0 5px 0;
}

.rk-exp-role {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-exp-brand);
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

.rk-exp-socials {
    display: flex;
    gap: 15px;
    width: 100%;
    justify-content: center;
}

.rk-exp-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid var(--rk-exp-border);
    color: var(--rk-exp-social);
    text-decoration: none;
}

.rk-exp-social-link:hover {
    border-color: var(--rk-exp-brand);
    color: var(--rk-exp-brand);
    background: #f0f9ff;
}

/* Interaktywny Panel Treści (Brak animacji) */
.rk-exp-content {
    padding: 40px;
}

.rk-exp-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--rk-exp-border);
    padding-bottom: 15px;
}

.rk-exp-tab-btn {
    background: transparent;
    border: none;
    padding: 10px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-exp-text);
    cursor: pointer;
    border-radius: 8px;
}

.rk-exp-tab-btn:hover {
    background: var(--rk-exp-bg);
}

.rk-exp-tab-btn.active {
    background: var(--rk-exp-dark);
    color: #ffffff;
}

.rk-exp-panel {
    display: none;
}

.rk-exp-panel.active {
    display: block;
}

.rk-exp-panel h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    margin: 0 0 15px 0;
}

.rk-exp-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-exp-text);
    margin: 0 0 15px 0;
}

.rk-exp-quote-box {
    padding: 20px 25px;
    background: #f0f9ff;
    border-left: 4px solid var(--rk-exp-brand);
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-exp-quote-box p {
    margin: 0;
    font-weight: 600;
    color: var(--rk-exp-dark);
    font-style: italic;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-exp-grid { grid-template-columns: 1fr; }
    .rk-exp-profile { border-right: none; border-bottom: 1px solid var(--rk-exp-border); padding: 30px 20px; }
    .rk-exp-header-bar { padding: 25px 20px; }
    .rk-exp-content { padding: 25px 20px; }
    .rk-exp-tabs { flex-direction: column; gap: 8px; border-bottom: none; }
    .rk-exp-tab-btn { text-align: left; background: var(--rk-exp-bg); border: 1px solid var(--rk-exp-border); }
    .rk-exp-tab-btn.active { background: var(--rk-exp-dark); border-color: var(--rk-exp-dark); }
}
</style>

<div class="rk-exp-container" id="rk-expert-summary">
    
    <div class="rk-exp-header-bar">
        <h2>Zdaniem Roberta Kucharskiego</h2>
    </div>

    <div class="rk-exp-grid">
        <div class="rk-exp-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Projekt-Ogrzewania.pl" class="rk-exp-photo">
            <div class="rk-exp-name">Robert Kucharski</div>
            <div class="rk-exp-role">Specjalista HVAC / CEO</div>
            
            <div class="rk-exp-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" class="rk-exp-social-link" aria-label="LinkedIn Roberta Kucharskiego">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" class="rk-exp-social-link" aria-label="Oficjalny profil Facebook Projekt Ogrzewania">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
            </div>
        </div>

        <div class="rk-exp-content">
            <div class="rk-exp-tabs">
                <button class="rk-exp-tab-btn active" data-view="diagnoza">Główny Wniosek</button>
                <button class="rk-exp-tab-btn" data-view="zagrozenia">Fizyka Budowli</button>
                <button class="rk-exp-tab-btn" data-view="rekomendacja">Rekomendacja</button>
            </div>

            <div class="rk-exp-panels">
                
                <div class="rk-exp-panel active" id="panel-diagnoza">
                    <h3>Hybryda to ostateczność, nie standard</h3>
                    <p>Jako specjalista projektujący systemy płaszczyznowe stanowczo odradzam łączenie podłogówki z grzejnikami w nowym budownictwie. Każdy argument inwestora o "szybkim nagrzewaniu sypialni" upada w starciu z twardymi prawami termodynamiki i wskaźnikami rocznego SCOP pompy ciepła.</p>
                    <p>Układ mieszany ma sens ekonomiczny wyłącznie w przypadku skomplikowanych termomodernizacji starych domów, gdzie fizyczne usunięcie grzejników z piętra jest niemożliwe.</p>
                </div>

                <div class="rk-exp-panel" id="panel-zagrozenia">
                    <h3>Opory hydrauliczne nie wybaczają</h3>
                    <p>Największym błędem branży jest ignorowanie różnic w przepływach. Wpięcie strefy grzejnikowej (opór ~10 kPa) i podłogowej (opór &gt;25 kPa) bez zastosowania bufora równoległego gwarantuje zjawisko przepływu zwarciowego.</p>
                    <p>Zmuszając urządzenie niskotemperaturowe do pracy na krzywej rzędu 50°C, świadomie godzisz się na wzrost rachunków za prąd o kilkadziesiąt procent w skali roku i ryzykujesz błyskawiczne zatarcie sprężarki na skutek taktowania (short-cycling).</p>
                </div>

                <div class="rk-exp-panel" id="panel-rekomendacja">
                    <h3>Matematyka zamiast zgadywania</h3>
                    <p>Jeśli musisz wykonać instalację mieszaną, powierz ją profesjonalistom i nie opieraj się na "doświadczeniu montera". Węzeł cieplny musi posiadać sprzęgło (minimum 15 litrów zładu na 1 kW mocy pompy) oraz obrotowy zawór trójdrogowy redukujący temperaturę podłogi.</p>
                    <div class="rk-exp-quote-box">
                        <p>„Fundamentem sukcesu nie są drogie materiały, ale zaktualizowane obliczenia OZC zgodne z normą PN-EN 12831. To projekt dyktuje warunki gry na budowie, chroniąc Twój budżet.”</p>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-exp-tab-btn');
    const panels = {
        'diagnoza': document.getElementById('panel-diagnoza'),
        'zagrozenia': document.getElementById('panel-zagrozenia'),
        'rekomendacja': document.getElementById('panel-rekomendacja')
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Bezpieczny przełącznik bez animacji i bez operatorów logicznych && / ||
            let isCurrentActive = this.classList.contains('active');
            
            if (isCurrentActive === false) {
                // Reset przycisków
                btns.forEach(function(b) {
                    b.classList.remove('active');
                });
                
                // Reset paneli
                panels['diagnoza'].classList.remove('active');
                panels['zagrozenia'].classList.remove('active');
                panels['rekomendacja'].classList.remove('active');

                // Aktywacja wybranych elementów
                this.classList.add('active');
                let targetId = this.getAttribute('data-view');
                
                if (targetId === 'diagnoza') { panels['diagnoza'].classList.add('active'); }
                else if (targetId === 'zagrozenia') { panels['zagrozenia'].classList.add('active'); }
                else if (targetId === 'rekomendacja') { panels['rekomendacja'].classList.add('active'); }
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "FAQ - Pompa ciepła podłogówka i grzejniki",
    "description": "Najczęściej zadawane pytania techniczne dotyczące łączenia ogrzewania podłogowego z grzejnikami w systemach z pompą ciepła. Parametry, koszty i rozwiązania hydrauliczne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy do pompy ciepła można podłączyć stare grzejniki bez ich wymiany?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to technicznie wykonalne, ale bezwzględnie wymaga wykonania bilansu cieplnego OZC budynku, by sprawdzić, czy stare emiter oddadzą wystarczającą moc przy obniżonym parametrze (np. 45/35 stopni C). W ponad 70% starych domów w Polsce konieczna jest przynajmniej częściowa wymiana instalacji na konwektory trójpłytowe (V33) w celu niedopuszczenia do niedogrzania zimą."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebny jest bufor ciepła przy podłogówce i grzejnikach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, w systemach mieszanych sprzęgło hydrauliczne lub bufor pełniący jego funkcję są elementami krytycznymi, chroniącymi przed awarią. Zrównoważenie diametralnie różnych oporów przepływu i temperatur między pętlami z wylewki a szybkimi kaloryferami bez bufora i osobnej grupy mieszającej doprowadzi do natychmiastowego taktowania i uszkodzenia kompresora."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie są koszty eksploatacji systemu mieszanego w porównaniu do czystej podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ze względu na konieczność produkcji gorętszej wody (wyższa krzywa grzewcza rzędu 45-50 stopni C narzucona przez grzejniki), rachunki za energię elektryczną przy pompie ciepła rosną. Roczne koszty eksploatacyjne układu hybrydowego mogą być wyższe o 15% do nawet 30% w porównaniu do 100% instalacji płaszczyznowych, które osiągają wyższy współczynnik efektywności SCOP."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka temperatura zasilania jest bezpieczna dla układu mieszanego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Inteligentna automatyka powinna kierować z jednostki zewnętrznej wodę o temperaturze ok. 45 stopni C prosto na rozdzielacz strefy grzejnikowej oraz do bufora. Z poziomu kotłowni, za pomocą obrotowego zaworu z siłownikiem mieszającym (grupa pompowa), woda ta musi zostać podbramkowo zredukowana do bezpiecznych 30-35 stopni C przed wtłoczeniem jej w rury zatopione w jastrychu na parterze."
        }
      },
      {
        "@type": "Question",
        "name": "Jak dobrać pompę obiegową dla podłogówki w układzie, gdzie są też kaloryfery?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dobór osobnej pompy za buforem musi opierać się wyłącznie na oporach najdłuższej pętli (często powyżej 20 kPa) i wyliczonym sumarycznym przepływie masowym dla strefy parteru. Pompa obiegowa w jednostce głównej odpowiada wtedy wyłącznie za wtłoczenie energii przez krótki, niskoporowy odcinek wprost do zładu w buforze, co rozwiązuje konflikty hydrauliczne."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-faq-parametry",
    "name": "Baza wiedzy rozwiązywania problemów hybrydowych (FAQ)",
    "description": "Zestawienie parametrów krytycznych (temperatury, opory, dobór elementów) dla instalacji mieszanej ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy można podłączyć stare grzejniki do pompy ciepła",
      "jakie grzejniki do pompy ciepła w starym domu",
      "pojemność bufora do pompy ciepła z grzejnikami",
      "różnica w kosztach ogrzewania podłogówka a grzejniki",
      "maksymalna temperatura na ogrzewanie podłogowe",
      "taktowanie pompy ciepła przyczyny",
      "jak dobrać pompę obiegową do podłogówki",
      "wymiana grzejników przy pompie ciepła"
    ],
    "measurementTechnique": "Rozwiązywanie problemów instalacyjnych w oparciu o analizę bilansu OZC, oporów hydraulicznych i zaleceń producentów pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Temperatury graniczne: 45°C dla grzejników typu V33, max 35°C dla jastrychu podłogowego.",
        "Komponenty krytyczne: Sprzęgło hydrauliczne (bufor) chroniące kompresor, obrotowy zawór mieszający z siłownikiem.",
        "Wpływ na koszty: Układ mieszany generuje 15-30% wyższe koszty operacyjne względem systemu czysto płaszczyznowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-faq-interaktywne",
    "name": "Baza Wiedzy Inwestora: Interaktywne FAQ",
    "description": "Dynamiczny widget akordeonowy pozwalający inwestorom na przeglądanie krytycznych różnic technologicznych w instalacjach mieszanych bez zbędnego obciążenia poznawczego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #ffffff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-text: #475569;
    --rk-faq-title: #1e293b;
    --rk-faq-hover: #f8fafc;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--rk-faq-blue);
}

.rk-faq-header-icon {
    width: 60px;
    height: 60px;
    background: var(--rk-faq-blue-light);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
}

.rk-faq-header-content h2 {
    margin: 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    line-height: 1.2;
}

.rk-faq-header-content p {
    margin: 5px 0 0 0;
    font-size: 15px;
    color: var(--rk-faq-text);
}

.rk-faq-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: var(--rk-faq-card);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.rk-faq-item:hover {
    border-color: #cbd5e1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background 0.3s ease;
}

.rk-faq-btn:hover {
    background: var(--rk-faq-hover);
}

.rk-faq-btn h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-faq-title);
    line-height: 1.4;
}

.rk-faq-icon-svg {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    color: var(--rk-faq-blue);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-btn.active .rk-faq-icon-svg {
    transform: rotate(135deg);
    color: #ef4444; /* Czerwony kolor przy zamykaniu dla kontrastu */
}

.rk-faq-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--rk-faq-card);
}

.rk-faq-panel-content {
    padding: 0 30px 30px 30px;
    border-top: 1px dashed var(--rk-faq-border);
    margin-top: -10px;
    padding-top: 25px;
}

.rk-faq-panel-content p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-panel-content a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-panel-content a:hover {
    border-color: var(--rk-faq-blue);
}

/* Dostosowanie dla urządzeń mobilnych (Vertical Stack) */
@media (max-width: 768px) {
    .rk-faq-container { margin: 20px auto; }
    .rk-faq-header { flex-direction: column; text-align: center; gap: 15px; }
    .rk-faq-btn { padding: 20px; }
    .rk-faq-btn h3 { font-size: 16px; }
    .rk-faq-panel-content { padding: 0 20px 25px 20px; }
}
</style>

<div class="rk-faq-container" id="rk-interactive-faq">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-faq-header-content">
            <h2>FAQ - Pompa ciepła, podłogówka i grzejniki</h2>
            <p>Baza wiedzy inwestora. Kliknij wybrane pytanie, aby rozwinąć odpowiedź techniczną.</p>
        </div>
    </div>

    <div class="rk-faq-wrapper">
        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                <h3>Czy do pompy ciepła można podłączyć stare grzejniki bez ich wymiany?</h3>
                <svg class="rk-faq-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            </button>
            <div class="rk-faq-panel">
                <div class="rk-faq-panel-content">
                    <p>Tak, jest to technicznie wykonalne, ale bezwzględnie wymaga wykonania bilansu cieplnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC budynku</a>, by sprawdzić, czy stare emiter oddadzą wystarczającą moc przy obniżonym parametrze (np. 45/35°C). W ponad 70% starych domów w Polsce konieczna jest przynajmniej częściowa wymiana instalacji na konwektory trójpłytowe (V33) w celu niedopuszczenia do niedogrzania zimą.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                <h3>Czy potrzebny jest bufor ciepła przy podłogówce i grzejnikach?</h3>
                <svg class="rk-faq-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            </button>
            <div class="rk-faq-panel">
                <div class="rk-faq-panel-content">
                    <p>Tak, w systemach mieszanych <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a> lub bufor pełniący jego funkcję są elementami krytycznymi, chroniącymi przed awarią. Zrównoważenie diametralnie różnych oporów przepływu i temperatur między pętlami z wylewki a szybkimi kaloryferami bez bufora i osobnej grupy mieszającej doprowadzi do natychmiastowego taktowania i uszkodzenia kompresora.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                <h3>Jakie są koszty eksploatacji systemu mieszanego w porównaniu do czystej podłogówki?</h3>
                <svg class="rk-faq-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            </button>
            <div class="rk-faq-panel">
                <div class="rk-faq-panel-content">
                    <p>Ze względu na konieczność produkcji gorętszej wody (wyższa krzywa grzewcza rzędu 45-50°C narzucona przez grzejniki), <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rachunki za energię elektryczną</a> przy pompie ciepła rosną. Roczne koszty eksploatacyjne układu hybrydowego mogą być wyższe o 15% do nawet 30% w porównaniu do 100% instalacji płaszczyznowych, które osiągają wyższy współczynnik efektywności SCOP.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                <h3>Jaka temperatura zasilania jest bezpieczna dla układu mieszanego?</h3>
                <svg class="rk-faq-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            </button>
            <div class="rk-faq-panel">
                <div class="rk-faq-panel-content">
                    <p>Inteligentna automatyka powinna kierować z jednostki zewnętrznej wodę o temperaturze ok. 45°C prosto na rozdzielacz strefy grzejnikowej oraz do bufora. Z poziomu kotłowni, za pomocą obrotowego zaworu z siłownikiem mieszającym (grupa pompowa), woda ta musi zostać podbramkowo zredukowana do bezpiecznej <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperatury zasilania podłogówki</a> (ok. 30-35°C) przed wtłoczeniem jej w rury zatopione w jastrychu na parterze.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                <h3>Jak dobrać pompę obiegową dla podłogówki w układzie, gdzie są też kaloryfery?</h3>
                <svg class="rk-faq-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            </button>
            <div class="rk-faq-panel">
                <div class="rk-faq-panel-content">
                    <p>Dobór <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">osobnej pompy obiegowej</a> za buforem musi opierać się wyłącznie na oporach najdłuższej pętli (często powyżej 20 kPa) i wyliczonym sumarycznym przepływie masowym dla strefy parteru. Pompa obiegowa w jednostce głównej odpowiada wtedy wyłącznie za wtłoczenie energii przez krótki, niskoporowy odcinek wprost do zładu w buforze, co rozwiązuje konflikty hydrauliczne.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqButtons = document.querySelectorAll('.rk-faq-btn');

    faqButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Sprawdzenie stanu aktualnie klikniętego elementu (bez użycia operatorów &&)
            let isAlreadyActive = this.classList.contains('active');

            // Zamykanie wszystkich otwartych paneli
            faqButtons.forEach(function(otherBtn) {
                otherBtn.classList.remove('active');
                let otherPanel = otherBtn.nextElementSibling;
                otherPanel.style.maxHeight = null;
            });

            // Jeśli element nie był aktywny wcześniej, otwieramy go
            if (!isAlreadyActive) {
                this.classList.add('active');
                let panel = this.nextElementSibling;
                panel.style.maxHeight = panel.scrollHeight + "px";
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/"
    },
    "headline": "Podsumowanie: Hybrydowy system grzewczy – jak uniknąć katastrofy",
    "description": "Interaktywne podsumowanie zasad łączenia ogrzewania podłogowego z grzejnikami przy użyciu pompy ciepła. Zobacz kluczowe różnice między układem profesjonalnym a amatorskim.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#dataset-uklad-mieszany",
    "name": "Parametry hydrauliczne i termiczne układu mieszanego z pompą ciepła",
    "description": "Zestawienie twardych danych porównujących instalację hybrydową zlokalizowaną bezpośrednio na jednej pompie obiegowej do instalacji buforowanej przez sprzęgło hydrauliczne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka i grzejniki jedna pompa",
      "bufor ciepła w układzie mieszanym",
      "temperatura zasilania podłogówki",
      "taktowanie pompy ciepła",
      "zawór trójdrogowy mieszający z siłownikiem"
    ],
    "measurementTechnique": "Analiza spadków ciśnień i efektywności SCOP pompy ciepła na podstawie normy PN-EN 12831 i wytycznych PORT PC dla systemów biwalentnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Układ Bezpośredni: SCOP poniżej 2.8, wysokie ryzyko taktowania (short-cycling), przepływ zwarciowy przez mniejsze opory grzejników.",
        "Układ z Buforem i Podmieszaniem: SCOP stabilny na poziomie 3.5 - 4.5, zład wody zbalansowany, temperatura bezpieczna dla jastrychu (max 35 stopni Celsjusza)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/#webapp-symulator-hydrauliczny",
    "name": "Wizualizator Przepływów: System Hybrydowy",
    "description": "Interaktywne narzędzie przełącznikowe pokazujące ścieżkę krytyczną czynnika grzewczego w instalacjach hybrydowych (grzejniki + płaszczyzna) dla domów jednorodzinnych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-base-dark: #111827;
    --rk-base-light: #f9fafb;
    --rk-accent-blue: #0ea5e9;
    --rk-accent-blue-hover: #0284c7;
    --rk-accent-green: #059669;
    --rk-accent-red: #dc2626;
    --rk-border: #e5e7eb;
    --rk-text-main: #374151;
    --rk-text-muted: #6b7280;
}

.rk-summary-block {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.1);
    border: 1px solid var(--rk-accent-blue);
    overflow: hidden;
}

.rk-summary-header {
    background: var(--rk-base-dark);
    padding: 40px 30px;
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-accent-blue);
}

.rk-summary-header h2 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-summary-header p {
    font-size: 16px;
    color: #cbd5e1;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Interfejs Przełącznika */
.rk-interactive-zone {
    padding: 40px 30px;
    background: var(--rk-base-light);
}

.rk-toggle-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 100px;
    border: 1px solid var(--rk-border);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 100px;
    font-weight: 700;
    font-size: 15px;
    color: var(--rk-text-muted);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-toggle-btn.active[data-type="error"] {
    background: #fee2e2;
    color: var(--rk-accent-red);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.15);
}

.rk-toggle-btn.active[data-type="pro"] {
    background: #d1fae5;
    color: var(--rk-accent-green);
    box-shadow: 0 4px 10px rgba(5, 150, 105, 0.15);
}

/* Widok dynamiczny */
.rk-view-container {
    background: #ffffff;
    border: 1px solid var(--rk-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    gap: 30px;
    align-items: center;
    min-height: 250px;
}

.rk-view-graphic {
    flex: 0 0 120px;
    display: flex;
    justify-content: center;
}

.rk-view-content {
    flex: 1;
}

.rk-view-content h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 800;
}

.rk-view-content p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-text-main);
}

.rk-data-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-data-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-base-dark);
}

.rk-data-list li::before {
    content: "→";
    position: absolute;
    left: 0;
    color: var(--rk-accent-blue);
    font-weight: bold;
}

/* Tagi SEO */
.rk-tags-section {
    padding: 20px 30px;
    background: #ffffff;
    border-top: 1px dashed var(--rk-border);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-base-light);
    border: 1px solid var(--rk-border);
    color: var(--rk-accent-blue);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    transition: background 0.2s;
}

.rk-mat-tag:hover {
    background: #e0f2fe;
}

/* Animacje SVG */
.rk-svg-icon {
    width: 100%;
    height: auto;
    max-width: 100px;
}

.anim-gear { transform-origin: center; animation: spinGear 4s linear infinite; }
.anim-alert { transform-origin: center; animation: pulseAlert 1.5s ease-in-out infinite; }

@keyframes spinGear { 100% { transform: rotate(360deg); } }
@keyframes pulseAlert { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }

/* Mobile CSS - układ pionowy (akordeonowy przepływ) */
@media (max-width: 768px) {
    .rk-summary-header { padding: 30px 20px; }
    .rk-summary-header h2 { font-size: 22px; }
    .rk-interactive-zone { padding: 20px; }
    .rk-toggle-controls { flex-direction: column; border-radius: 16px; gap: 5px; background: transparent; border: none; }
    .rk-toggle-btn { border-radius: 12px; border: 1px solid var(--rk-border); background: #ffffff; }
    .rk-view-container { flex-direction: column; text-align: center; padding: 20px; gap: 20px; }
    .rk-data-list li { text-align: left; }
}
</style>

<div class="rk-summary-block" id="rk-hybrid-summary">
    <div class="rk-summary-header">
        <h2>Podsumowanie: Pompa ciepła, podłogówka i grzejniki w jednym układzie</h2>
        <p>Instalacja mieszana to bezlitosny sprawdzian dla instalatora. Zignorowanie praw hydrauliki i fizyki budowli skutkuje natychmiastowym taktowaniem sprężarki i drastycznym wzrostem rachunków za prąd.</p>
    </div>

    <div class="rk-interactive-zone">
        <div class="rk-toggle-controls" id="rkToggleBox">
            <button class="rk-toggle-btn active" data-type="error">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Układ Bezpośredni (Amatorski)
            </button>
            <button class="rk-toggle-btn" data-type="pro">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Układ z Buforem (Inżynierski)
            </button>
        </div>

        <div class="rk-view-container" id="rkViewContent">
            </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># pompa ciepła podłogówka i grzejniki schemat</span>
        <span class="rk-mat-tag"># jaka temperatura na grzejniki z pompy ciepła</span>
        <span class="rk-mat-tag"># sprzęgło hydrauliczne a bufor ciepła</span>
        <span class="rk-mat-tag"># taktowanie pompy ciepła przyczyny</span>
        <span class="rk-mat-tag"># zawór trójdrogowy mieszający zasada działania</span>
        <span class="rk-mat-tag"># sprawność SCOP układu mieszanego</span>
        <span class="rk-mat-tag"># dobór pompy obiegowej za buforem</span>
        <span class="rk-mat-tag"># krzywa grzewcza dla grzejników i podłogówki</span>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleBtns = document.querySelectorAll('.rk-toggle-btn');
    const viewContainer = document.getElementById('rkViewContent');

    const contentData = {
        error: `
            <div class="rk-view-graphic">
                <svg class="rk-svg-icon" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="45" fill="none" stroke="var(--rk-accent-red)" stroke-width="5" stroke-dasharray="10 5" class="anim-alert"/>
                    <path d="M50 25 L50 60 M50 75 L50 80" stroke="var(--rk-accent-red)" stroke-width="6" stroke-linecap="round"/>
                </svg>
            </div>
            <div class="rk-view-content">
                <h3 style="color: var(--rk-accent-red);">Błąd Krytyczny: Brak zrównoważenia oporów</h3>
                <p>Wpięcie strefy grzejnikowej i podłogowej na jednej pompie zasilającej to wyrok dla kompresora. Ciecz płynie po linii najmniejszego oporu (przez mały zład grzejników), całkowicie ignorując długie pętle zatopione w jastrychu.</p>
                <ul class="rk-data-list">
                    <li>Zjawisko "short-cyclingu" (taktowanie) – pompa włącza się i wyłącza co 10 minut.</li>
                    <li>Niedogrzany parter mimo maksymalnego poboru prądu.</li>
                    <li>Ryzyko podania zbyt wysokiej temperatury na wylewkę anhydrytową.</li>
                </ul>
            </div>
        `,
        pro: `
            <div class="rk-view-graphic">
                <svg class="rk-svg-icon" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="var(--rk-accent-green)" stroke-width="5" />
                    <path d="M50 20 L50 40 M50 60 L50 80 M20 50 L40 50 M60 50 L80 50" stroke="var(--rk-accent-green)" stroke-width="4" class="anim-gear" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="10" fill="var(--rk-accent-green)" />
                </svg>
            </div>
            <div class="rk-view-content">
                <h3 style="color: var(--rk-accent-green);">Standard Inżynierski: Rozdział przez Bufor</h3>
                <p>Kluczem do niezawodności jest <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color: var(--rk-accent-blue); font-weight:700;">zastosowanie bufora ciepła</a> jako sprzęgła hydraulicznego. Pompa ładuje zład wodny, a niezależne <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color: var(--rk-accent-blue); font-weight:700;">pompy obiegowe</a> dystrybuują odpowiednie wartości do swoich stref.</p>
                <ul class="rk-data-list">
                    <li><a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" style="color: inherit;">Zawór mieszający z siłownikiem</a> precyzyjnie redukuje zasilanie na podłogę.</li>
                    <li><a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" style="color: inherit;">Krzywa grzewcza</a> ustawiona stabilnie dla najwyższego parametru (grzejniki).</li>
                    <li>Pełny przepływ i stały odbiór ciepła podczas odszraniania (defrost).</li>
                </ul>
            </div>
        `
    };

    // Inicjalizacja domyślnego widoku
    viewContainer.innerHTML = contentData.error;

    // Obsługa kliknięć (bezpieczny JS, brak zagrażających znaków logicznych)
    toggleBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas
            toggleBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Aktywacja wciśniętego
            this.classList.add('active');
            
            // Wstrzyknięcie odpowiedniej treści z użyciem bezpiecznych warunków if/else
            const type = this.getAttribute('data-type');
            if (type === 'pro') {
                viewContainer.innerHTML = contentData.pro;
            } else {
                viewContainer.innerHTML = contentData.error;
            }
        });
    });
});
</script>



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/"
    },
    "headline": "Kompendium Wiedzy: Infografika i Schemat Węzła Cieplnego",
    "description": "Pobierz darmową infografikę z parametrami projektowymi i schematem łączenia ogrzewania podłogowego z grzejnikami przy pompie ciepła. Plik PDF wysokiej rozdzielczości.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Pompa-ciepla-podlogowka-i-grzejniki.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-04",
    "dateModified": "2026-07-04"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/#dataset-schemat-pdf",
    "name": "Wizualny schemat hybrydowego węzła cieplnego",
    "description": "Zestawienie twardych danych projektowych, oporów hydraulicznych i zaleceń VDI 4650 skompresowane do formy graficznej infografiki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat podłączenia pompy ciepła do bufora",
      "pompa ciepła podłogówka i grzejniki schemat",
      "bufor ciepła w instalacji mieszanej pdf",
      "infografika ogrzewanie podłogowe parametry",
      "robert kucharski materiały do pobrania"
    ],
    "measurementTechnique": "Agregacja parametrów technicznych (ΔT, SCOP, zład wody) w postaci wizualnych tabel decyzyjnych oraz schematu blokowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sekcja 1: Uzasadnienie stosowania układu mieszanego i obiegów wtórnych.",
        "Sekcja 2: Tabela porównawcza emiterów ciepła i ich wpływu na współczynnik SCOP pompy ciepła.",
        "Sekcja 3: Techniczny schemat hydrauliczny (Pompa -> Bufor -> Grupa Mieszająca / Obieg Bezpośredni)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/#webapp-repozytorium",
    "name": "Moduł Repozytorium Plików Technicznych",
    "description": "Statyczny interfejs pozwalający na bezpieczne wywołanie podglądu schematu w wysokiej rozdzielczości oraz pobranie pliku PDF na urządzenie użytkownika.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<style>
:root {
    --rk-dl-dark: #111827;
    --rk-dl-surface: #f8fafc;
    --rk-dl-card: #ffffff;
    --rk-dl-border: #cbd5e1;
    --rk-dl-brand: #0284c7;
    --rk-dl-text: #475569;
    --rk-dl-accent: #facc15;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-dl-card);
    border: 2px solid var(--rk-dl-dark);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 25px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-brand);
}

.rk-dl-header h2 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-dl-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
}

.rk-dl-body {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-dl-card);
}

/* Sekcja Miniatury (Lewa strona) */
.rk-dl-preview-box {
    padding: 35px;
    background: var(--rk-dl-surface);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumbnail-wrapper {
    width: 100%;
    position: relative;
    border: 1px solid var(--rk-dl-border);
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    cursor: pointer;
}

.rk-dl-img {
    width: 100%;
    height: auto;
    display: block;
}

.rk-dl-zoom-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumbnail-wrapper:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    color: #ffffff;
    width: 40px;
    height: 40px;
}

.rk-dl-preview-hint {
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-dl-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Sekcja Akcji (Prawa strona) */
.rk-dl-actions-box {
    padding: 35px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-dl-text);
    margin: 0 0 30px 0;
}

.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-dl-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 25px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    transition: background 0.2s, border-color 0.2s;
}

.rk-dl-btn-primary {
    background: var(--rk-dl-brand);
    color: #ffffff;
    border: 2px solid var(--rk-dl-brand);
}

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

.rk-dl-btn-secondary {
    background: #ffffff;
    color: var(--rk-dl-dark);
    border: 2px solid var(--rk-dl-dark);
}

.rk-dl-btn-secondary:hover {
    background: var(--rk-dl-surface);
}

.rk-dl-btn-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.rk-dl-file-info {
    display: flex;
    flex-direction: column;
}

.rk-dl-file-size {
    font-size: 12px;
    font-weight: 500;
    opacity: 0.8;
    margin-top: 2px;
}

/* Prawa autorskie */
.rk-dl-copyright {
    margin-top: auto;
    padding: 20px;
    background: #fffbeb;
    border-left: 4px solid var(--rk-dl-accent);
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-dark);
    font-weight: 500;
}

.rk-dl-copyright strong {
    font-weight: 800;
}

/* Lightbox Modal (Statyczny podgląd) */
.rk-dl-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-dl-modal-content {
    position: relative;
    max-width: 1000px;
    width: 100%;
    max-height: 90vh;
}

.rk-dl-modal-img {
    width: 100%;
    height: auto;
    max-height: 90vh;
    object-fit: contain;
    border: 4px solid #ffffff;
    border-radius: 8px;
}

.rk-dl-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .rk-dl-header { padding: 25px 20px; }
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-preview-box { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 25px 20px; }
    .rk-dl-actions-box { padding: 25px 20px; }
    .rk-dl-btn { flex-direction: column; text-align: center; gap: 10px; padding: 15px; }
}
</style>

<div class="rk-dl-container" id="rk-download-hub">
    
    <div class="rk-dl-header">
        <h2>Kompendium Wiedzy: Schemat Węzła i Parametry</h2>
        <p>Materiały techniczne przygotowane na podstawie normy PN-EN 12831 oraz standardów VDI 4650.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-box">
            <div class="rk-dl-thumbnail-wrapper" id="rk-btn-preview">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Pompa-ciepla-podlogowka-i-grzejniki.webp" alt="Infografika: Pompa ciepła, podłogówka i grzejniki - Projekt Ogrzewania" class="rk-dl-img">
                <div class="rk-dl-zoom-overlay">
                    <svg class="rk-dl-zoom-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                </div>
            </div>
            <div class="rk-dl-preview-hint">Kliknij, aby powiększyć</div>
        </div>

        <div class="rk-dl-actions-box">
            <p class="rk-dl-desc">
                Zebrałem wszystkie najważniejsze parametry instalacji hybrydowej w jednym miejscu. Infografika zawiera czytelny schemat podłączenia bufora, porównanie emiterów ciepła oraz listę krytycznych błędów instalacyjnych, których musisz unikać.
            </p>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Pompa-ciepla-podlogowka-i-grzejniki.pdf" target="_blank" class="rk-dl-btn rk-dl-btn-primary">
                    <svg class="rk-dl-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="12" y2="18"></line><line x1="15" y1="15" x2="12" y2="18"></line></svg>
                    <div class="rk-dl-file-info">
                        <span>Pobierz dokument PDF</span>
                        <span class="rk-dl-file-size">Wysoka rozdzielczość do druku</span>
                    </div>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Pompa-ciepla-podlogowka-i-grzejniki.webp" target="_blank" download class="rk-dl-btn rk-dl-btn-secondary">
                    <svg class="rk-dl-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    <div class="rk-dl-file-info">
                        <span>Zapisz obraz na dysk</span>
                        <span class="rk-dl-file-size">Format WebP (Szybkie ładowanie)</span>
                    </div>
                </a>
            </div>

            <div class="rk-dl-copyright">
                <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
                Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
            </div>
        </div>

    </div>
</div>

<div class="rk-dl-modal" id="rk-modal-overlay">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rk-btn-close">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
            Zamknij podgląd
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Infografika-Pompa-ciepla-podlogowka-i-grzejniki.webp" alt="Powiększenie - Infografika" class="rk-dl-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnPreview = document.getElementById('rk-btn-preview');
    const btnClose = document.getElementById('rk-btn-close');
    const modal = document.getElementById('rk-modal-overlay');

    // Bezpieczna logika otwierania (bez operatorów logicznych)
    btnPreview.addEventListener('click', function() {
        modal.style.display = 'flex';
        document.body.style.overflow = 'hidden'; // Blokada przewijania strony
    });

    // Bezpieczna logika zamykania na przycisk
    btnClose.addEventListener('click', function() {
        modal.style.display = 'none';
        document.body.style.overflow = '';
    });

    // Zamknięcie po kliknięciu w tło (overlay)
    modal.addEventListener('click', function(e) {
        let isOverlayClicked = (e.target === modal);
        if (isOverlayClicked === true) {
            modal.style.display = 'none';
            document.body.style.overflow = '';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/">Pompa ciepła, podłogówka i grzejniki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/pompa-ciepla-podlogowka-i-grzejniki/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 28 Jun 2026 16:13:31 +0000</pubDate>
				<category><![CDATA[Budowa stanu zero]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Płyta fundamentowa]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[budownictwo energooszczędne]]></category>
		<category><![CDATA[energooszczędny dom]]></category>
		<category><![CDATA[fundament grzewczy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[nowoczesne fundamenty]]></category>
		<category><![CDATA[ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe w płycie fundamentowej]]></category>
		<category><![CDATA[ogrzewanie podłogowe z pompą ciepła]]></category>
		<category><![CDATA[płyta fundamentowa]]></category>
		<category><![CDATA[płyta fundamentowa z ogrzewaniem]]></category>
		<category><![CDATA[płyta grzewcza]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[termiczna płyta fundamentowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6375</guid>

					<description><![CDATA[<p>Planowanie posadowienia budynku na etapie stanu zero to moment, w którym podejmujesz decyzje rzutujące na koszty eksploatacji domu przez najbliższe kilkadziesiąt lat. Tradycyjne ławy i ściany fundamentowe powoli ustępują miejsca nowoczesnym rozwiązaniom monolitycznym. Inwestorzy coraz częściej dostrzegają, że ogrzewanie podłogowe w płycie fundamentowej gwarantuje niespotykaną stabilność termiczną i eliminuje liniowe mostki termiczne przy gruncie. W tym artykule brutalnie rozprawiamy się z mitami wykonawczymi, analizujemy realne koszty inwestycji na bazie autentycznego Case Study z Pomorza oraz udostępniamy interaktywne kalkulatory, które pozwolą Ci samodzielnie obliczyć opłacalność oraz parametry hydrauliczne całego systemu pod Twoją pompę ciepła.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
/* Wymuszenie czystego fontu i twardy reset */
#rk-intro-guide-app,
#rk-intro-guide-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-bg: #ffffff;
    --rk-intro-accent: #10b981;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-intro-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Mocny, autorytarny nagłówek bez animacji */
.rk-intro-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-intro-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-intro-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Moduł Nawigacyjny (Błyskawiczne przełączniki) */
.rk-intro-nav {
    display: flex;
    flex-direction: column;
    background: var(--rk-intro-light);
    padding: 25px 45px;
    border-bottom: 1px solid var(--rk-intro-border);
    gap: 10px;
}

@media (min-width: 768px) {
    .rk-intro-nav {
        flex-direction: row;
    }
}

.rk-intro-tab-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    /* Brak animacji zgodnie z wytycznymi */
}

.rk-intro-tab-btn:hover {
    border-color: #94a3b8;
}

.rk-intro-tab-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-intro-blue);
    color: var(--rk-intro-blue);
}

/* Zawartość zakładek */
.rk-intro-content-wrapper {
    padding: 35px 45px 40px 45px;
    background: #ffffff;
}

.rk-intro-tab-pane {
    display: none; /* Sterowane z JS */
}

.rk-intro-tab-pane.active {
    display: block;
}

/* Karta Szybkiej Odpowiedzi (Direct Answer) */
.rk-intro-quick-answer {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-left: 6px solid var(--rk-intro-accent);
    border-radius: 14px;
    padding: 25px 30px;
    margin-bottom: 25px;
}

.rk-intro-quick-answer h3 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #166534;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-intro-quick-answer p {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    line-height: 1.6;
    margin: 0;
}

/* Tekst główny */
.rk-intro-text-block {
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--rk-intro-text);
}

.rk-intro-text-block p {
    margin: 0 0 20px 0;
}

.rk-intro-text-block strong {
    color: var(--rk-intro-dark);
    font-weight: 700;
}

/* Lista korzyści - Czego się dowiesz */
.rk-intro-roadmap {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-roadmap-item {
    background: #f8fafc;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-intro-roadmap-icon {
    width: 40px;
    height: 40px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    flex-shrink: 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.rk-intro-roadmap-text h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 5px 0;
}

.rk-intro-roadmap-text p {
    font-size: 14px;
    color: var(--rk-intro-text);
    margin: 0;
    line-height: 1.5;
}

/* Ostrzeżenie / Hook na interakcje */
.rk-intro-alert-box {
    margin-top: 25px;
    padding: 18px 25px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    color: #92400e;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-nav, .rk-intro-content-wrapper { padding: 25px 20px; }
    .rk-intro-roadmap-item { padding: 15px; flex-direction: column; align-items: flex-start; text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Ogrzewanie podłogowe w płycie fundamentowej – Kompletny Przewodnik Inżynierski",
    "description": "Czym jest termiczna płyta fundamentowa? Szybka odpowiedź oraz interaktywny zbiór narzędzi obliczeniowych i symulatorów do projektowania podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Baza wiedzy i definicji: Termiczna Płyta Fundamentowa",
    "description": "Zestawienie inżynierskich faktów, wytycznych normy PN-EN 1264 oraz charakterystyki masy akumulacyjnej fundamentów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "termiczna płyta fundamentowa",
      "akumulacja ciepła w betonie",
      "norma PN-EN 1264",
      "rury PEX PERT w fundamencie"
    ],
    "measurementTechnique": "Bezpośrednia analiza norm inżynieryjnych dotyczących wbudowanych płaszczyznowych systemów ogrzewania niskotemperaturowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja: Zintegrowany system nośno-grzewczy z zatopionymi rurami PEX/PERT.",
        "Masa akumulacyjna układu: Od 50 do 80 ton betonu konstrukcyjnego.",
        "Kompatybilność źródła ciepła: Inwerterowe pompy ciepła (powietrze-woda, solanka-woda)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Przewodnik i Tablica Sterownicza Kompendium",
    "description": "Aplikacja pełniąca rolę nawigatora merytorycznego, udostępniająca błyskawiczne odpowiedzi techniczne oraz agendę interaktywnych narzędzi dostępnych w artykule.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-guide-app">
    
    <div class="rk-intro-header">
        <h2>Ogrzewanie podłogowe w płycie fundamentowej – Kompletny Przewodnik</h2>
        <p class="rk-intro-lead">
            Budujesz dom i zastanawiasz się nad sposobem posadowienia? Błąd popełniony w tym miejscu jest nieodwracalny po wylaniu betonu. Poznaj technologię, która łączy potężny fundament z sercem energetycznym Twojego budynku.
        </p>
    </div>

    <div class="rk-intro-nav">
        <button class="rk-intro-tab-btn active" id="rk-intro-btn-1">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Szybka Odpowiedź
        </button>
        <button class="rk-intro-tab-btn" id="rk-intro-btn-2">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
            Narzędzia w tym artykule
        </button>
    </div>

    <div class="rk-intro-content-wrapper">
        
        <div class="rk-intro-tab-pane active" id="rk-intro-pane-1">
            
            <div class="rk-intro-quick-answer">
                <h3>Szybka odpowiedź eksperta</h3>
                <p>Ogrzewanie podłogowe w płycie fundamentowej (termiczna płyta fundamentowa) to zintegrowany system, w którym rury PEX lub PERT są na stałe zatapiane bezpośrednio w zbrojonej masie betonu konstrukcyjnego. Dół budynku staje się potężnym wymiennikiem ciepła o masie do 80 ton.</p>
            </div>

            <div class="rk-intro-text-block">
                <p>
                    Rozwiązanie to łączy niezbędną funkcję nośną posadowienia z potężnym, niskotemperaturowym płaszczyznowym wymiennikiem ciepła. Zabetonowana instalacja gromadzi energię niczym ogromny piec akumulacyjny o masie przekraczającej często <strong>50-80 ton</strong>.
                </p>
                <p>
                    Jako specjalista HVAC oraz kilkudziesięcioletni praktyk z dorobkiem <strong>ponad 1000 projektów instalacji sanitarnych</strong> wskazuję wprost: kluczem do bezawaryjnej pracy tego potężnego układu jest bezwzględne przestrzeganie rygorystycznych wytycznych normy budowlanej <strong>PN-EN 1264</strong>. Nie ma tu miejsca na układanie obwodów &#8222;na oko&#8221;. Wymagane jest precyzyjne skoordynowanie parametrów hydraulicznych pętli z charakterystyką wybranego źródła ciepła – jakim najczęściej i najbardziej opłacalnie jest inwerterowa pompa ciepła typu powietrze-woda lub solanka-woda.
                </p>
            </div>

        </div>

        <div class="rk-intro-tab-pane" id="rk-intro-pane-2">
            
            <div class="rk-intro-text-block">
                <p>
                    Ten artykuł to nie jest zwykła ściana teoretycznego tekstu. Przygotowałem dla Ciebie zestaw dedykowanych, <strong>interaktywnych kalkulatorów i symulatorów inżynierskich</strong>, z którymi możesz pracować w czasie rzeczywistym. Przewijając stronę w dół, zyskasz dostęp do następujących narzędzi:
                </p>
            </div>

            <div class="rk-intro-roadmap">
                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Symulator Oporów i Długości Pętli</h4>
                        <p>Zmienisz długość rury i na żywo zobaczysz, w którym momencie ciśnienie blokuje pracę rotametrów i dławi pompę obiegową.</p>
                    </div>
                </div>

                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 20V10"></path><path d="M12 20V4"></path><path d="M6 20v-6"></path></svg>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Kalkulator Rentowności (ROI)</h4>
                        <p>Wybierzesz swoją strefę klimatyczną w Polsce i porównasz koszty płyty grzewczej z tradycyjnymi ławami fundamentowymi.</p>
                    </div>
                </div>

                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Interaktywny Komparator Rozstawów</h4>
                        <p>Sprawdzisz, jak układanie rur co 10, 15 lub 20 cm wpływa bezpośrednio na wydajność pompy ciepła (wskaźnik SCOP).</p>
                    </div>
                </div>
            </div>

            <div class="rk-intro-alert-box">
                Zjedź niżej i przetestuj parametry swojego przyszłego domu bezpośrednio w naszych narzędziach na żywo.
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-intro-btn-1');
    var btn2 = document.getElementById('rk-intro-btn-2');
    
    var pane1 = document.getElementById('rk-intro-pane-1');
    var pane2 = document.getElementById('rk-intro-pane-2');

    // Bezpieczne przełączanie zakładek bez użycia &&
    if (btn1) {
        btn1.addEventListener('click', function() {
            if (btn2) { btn2.classList.remove('active'); }
            btn1.classList.add('active');
            
            if (pane2) { pane2.classList.remove('active'); }
            if (pane1) { pane1.classList.add('active'); }
        });
    }

    if (btn2) {
        btn2.addEventListener('click', function() {
            if (btn1) { btn1.classList.remove('active'); }
            btn2.classList.add('active');
            
            if (pane1) { pane1.classList.remove('active'); }
            if (pane2) { pane2.classList.add('active'); }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu bezszeryfowego i reset */
#rk-roi-thermal-app,
#rk-roi-thermal-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-darker: #080f1e;
    --rk-roi-blue: #0284c7;
    --rk-roi-light: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-bg: #ffffff;
    --rk-roi-success: #10b981;
    --rk-roi-warning: #f59e0b;
    --rk-roi-danger: #ef4444;
}

.rk-roi-main-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-roi-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Nagłówek sekcji */
.rk-roi-title-block {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-roi-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-roi-title-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-roi-title-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Wertykalny Stack */
.rk-roi-panel-body {
    padding: 35px 45px;
    background: var(--rk-roi-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Karta Formularza Wejściowego */
.rk-roi-form-card {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.rk-roi-input-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-roi-input-row label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
}

/* Stylowanie kontrolek select i input */
.rk-roi-select-custom,
.rk-roi-num-input {
    width: 100%;
    padding: 14px 16px;
    border-radius: 12px;
    border: 2px solid var(--rk-roi-border);
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-roi-dark);
    background-color: #ffffff;
    outline: none;
    transition: border-color 0.3s;
}

.rk-roi-select-custom:focus,
.rk-roi-num-input:focus {
    border-color: var(--rk-roi-blue);
}

/* Przyciski Opcji (Segmented Controls) */
.rk-roi-opt-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media (min-width: 576px) {
    .rk-roi-opt-group {
        flex-direction: row;
    }
}

.rk-roi-opt-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 12px;
    padding: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-roi-text);
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-roi-opt-btn:hover {
    border-color: #cbd5e1;
}

.rk-roi-opt-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-roi-blue);
    color: var(--rk-roi-blue);
}

/* Wyróżniona Deska Rozdzielcza Wyników */
.rk-roi-dashboard-frame {
    background: var(--rk-roi-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-roi-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-roi-dash-cell {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-roi-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-roi-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-roi-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Sekcja Rozbitych Kart Wiedzy */
.rk-roi-text-infografika {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-roi-block-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-roi-blue);
    transition: background 0.3s ease;
}

/* Zmieniony styl dla karty podsumowującej */
.rk-roi-summary-card {
    background: #f0fdf4;
    border-color: var(--rk-roi-success);
}

.rk-roi-block-card:hover {
    background: #f1f5f9;
}

.rk-roi-summary-card:hover {
    background: #dcfce7;
}

.rk-roi-block-card h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 10px 0;
}

.rk-roi-block-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-roi-text);
    margin: 0;
}

.rk-roi-block-card strong {
    color: var(--rk-roi-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-roi-title-block, .rk-roi-panel-body, .rk-roi-text-infografika { padding: 30px 20px; }
    .rk-roi-form-card, .rk-roi-block-card { padding: 20px; }
    .rk-roi-dashboard-frame { grid-template-columns: 1fr; padding: 25px 20px; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?",
    "description": "Profesjonalna analiza ekonomiczna posadowienia budynku na płycie grzewczej akumulacyjnej. Koszty wykonania, amortyzacja i kalkulator stref klimatycznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-dataset",
    "name": "Baza danych zapotrzebowania energetycznego stref klimatycznych Polski",
    "description": "Zbiór zmiennych przeliczeniowych i projektowych obciążeń cieplnych dla stref klimatycznych I-V według normy PN-EN 12831 w relacji do oporu cieplnego płyt grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy ogrzewanie podłogowe w płycie się opłaca",
      "koszt płyty fundamentowej 150m2",
      "strefy klimatyczne polski podłogówka",
      "amortyzacja płyty fundamentowej",
      "współczynnik przenikania ciepła u płyty"
    ],
    "measurementTechnique": "Modelowanie bilansu finansowo-cieplnego budynków jednorodzinnych o powierzchni 150 m2 w oparciu o projektowe temperatury zewnętrzne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Konstrukcja stanu zero: Czas realizacji skrócony do 7-10 dni roboczych",
        "Efektywność przegrody dolnej: Współczynnik przenikania U poniżej 0,11 W/m2K",
        "Oszczędność energii wg PN-EN 12831: Redukcja strat o 30 do 40 procent"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-webapp",
    "name": "Symulator Amortyzacji i Kosztów Eksploatacji Płyty Grzewczej",
    "description": "Zaawansowana aplikacja obliczeniowa szacująca roczne koszty ogrzewania i okres zwrotu nakładów finansowych w oparciu o strefy klimatyczne i ceny energii.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-main-container" id="rk-roi-thermal-app">
    <div class="rk-roi-title-block">
        <h2>Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?</h2>
        <p>
            Wykonanie termicznej płyty akumulacyjnej to inwestycja długoterminowa. Skonfiguruj parametry swojego regionu i posadowienia, aby sprawdzić precyzyjne symulacje kosztów eksploatacji.
        </p>
    </div>

    <div class="rk-roi-body">
        
        <div class="rk-roi-form-card">
            <div class="rk-roi-input-row">
                <label for="rk-roi-zone">Wybierz strefę klimatyczną Polski (PN-EN 12831):</label>
                <select class="rk-roi-select-custom" id="rk-roi-zone">
                    <option value="1">Strefa I (np. Wrocław, Szczecin) &#8211; Temp. projektowa -16°C</option>
                    <option value="2">Strefa II (np. Poznań, Gdańsk) &#8211; Temp. projektowa -18°C</option>
                    <option value="3" selected>Strefa III (np. Rzeszów, Warszawa, Łódź) &#8211; Temp. projektowa -20°C</option>
                    <option value="4">Strefa IV (np. Białystok, Zakopane) &#8211; Temp. projektowa -22°C</option>
                    <option value="5">Strefa V (np. Suwałki, tereny górskie) &#8211; Temp. projektowa -24°C</option>
                </select>
            </div>

            <div class="rk-roi-input-row">
                <label>Grubość i rodzaj izolacji dolnej:</label>
                <div class="rk-roi-opt-group" id="rk-group-ins">
                    <button class="rk-roi-opt-btn" data-type="ins" data-val="10">10 cm EPS (Amatorski)</button>
                    <button class="rk-roi-opt-btn active" data-type="ins" data-val="15">15 cm XPS (Standard)</button>
                    <button class="rk-roi-opt-btn" data-type="ins" data-val="20">20 cm XPS (Pasywny)</button>
                </div>
            </div>

            <div class="rk-roi-input-row">
                <label>Planowany rozstaw rur grzewczych:</label>
                <div class="rk-roi-opt-group" id="rk-group-space">
                    <button class="rk-roi-opt-btn" data-type="space" data-val="20">Co 20 cm (Rzadko)</button>
                    <button class="rk-roi-opt-btn active" data-type="space" data-val="15">Co 15 cm (Optymalny)</button>
                    <button class="rk-roi-opt-btn" data-type="space" data-val="10">Co 10 cm (Gęsto)</button>
                </div>
            </div>

            <div class="rk-roi-input-row">
                <label for="rk-roi-price">Koszt energii elektrycznej (PLN / kWh brutto):</label>
                <input type="number" class="rk-roi-num-input" id="rk-roi-price" min="0.4" max="2.5" step="0.05" value="1.00">
            </div>
        </div>

        <div class="rk-roi-dashboard-frame">
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Współczynnik U Płyty</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-u">0.11 <span>W/(m²·K)</span></div>
            </div>
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Szacowany Koszt Roczny</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-year">2160 <span>PLN / rok</span></div>
            </div>
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Czas Zwrotu z Rachunków</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-payback">7 <span>lat</span></div>
            </div>
        </div>

    </div>

    <div class="rk-roi-text-infografika">
        
        <div class="rk-roi-block-card rk-roi-summary-card">
            <h4>Krótkie podsumowanie inwestycyjne</h4>
            <p>
                <strong>Wyższy nakład początkowy to mit.</strong> Eliminacja kosztownych i czasochłonnych etapów budowlanych (takich jak wylewanie chudziaka, izolacje pionowe fundamentów czy jastrychy maszynowe) sprawia, że całkowity koszt płyty bilansuje się z tradycyjnymi ławami, a wyższa efektywność termiczna generuje czysty zysk przez kolejne dekady.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var zoneSelect = document.getElementById('rk-roi-zone');
    var priceInput = document.getElementById('rk-roi-price');
    
    var dashU = document.getElementById('rk-roi-dash-u');
    var dashYear = document.getElementById('rk-roi-dash-year');
    var dashPayback = document.getElementById('rk-roi-dash-payback');

    var currentIns = 15;
    var currentSpace = 15;

    var insBtns = document.querySelectorAll('#rk-group-ins .rk-roi-opt-btn');
    for (var i = 0; i < insBtns.length; i++) {
        insBtns[i].addEventListener('click', function() {
            for (var j = 0; j < insBtns.length; j++) { insBtns[j].classList.remove('active'); }
            this.classList.add('active');
            currentIns = parseFloat(this.getAttribute('data-val'));
            calculateRoi();
        });
    }

    var spaceBtns = document.querySelectorAll('#rk-group-space .rk-roi-opt-btn');
    for (var k = 0; k < spaceBtns.length; k++) {
        spaceBtns[k].addEventListener('click', function() {
            for (var m = 0; m < spaceBtns.length; m++) { spaceBtns[m].classList.remove('active'); }
            this.classList.add('active');
            currentSpace = parseFloat(this.getAttribute('data-val'));
            calculateRoi();
        });
    }

    function calculateRoi() {
        var zone = 3;
        var electricityPrice = 1.00;

        if (zoneSelect) { zone = parseFloat(zoneSelect.value); }
        if (priceInput) { electricityPrice = parseFloat(priceInput.value); }

        var zoneFactor = 1.0;
        if (zone === 1) { zoneFactor = 0.85; }
        if (zone === 2) { zoneFactor = 0.93; }
        if (zone === 3) { zoneFactor = 1.00; }
        if (zone === 4) { zoneFactor = 1.12; }
        if (zone === 5) { zoneFactor = 1.25; }

        var uValue = 0.11;
        var insulationMultiplier = 1.0;
        var basePayback = 7;

        if (currentIns === 10) {
            uValue = 0.35;
            insulationMultiplier = 1.45;
            basePayback = 12;
        }
        if (currentIns === 15) {
            uValue = 0.11;
            insulationMultiplier = 1.00;
            basePayback = 7;
        }
        if (currentIns === 20) {
            uValue = 0.08;
            insulationMultiplier = 0.82;
            basePayback = 6;
        }

        var spacingMultiplier = 1.0;
        if (currentSpace === 20) { spacingMultiplier = 1.22; basePayback = basePayback + 2; }
        if (currentSpace === 15) { spacingMultiplier = 1.00; }
        if (currentSpace === 10) { spacingMultiplier = 0.91; }

        var baseEnergyDemand = 2000; 
        var calculatedCost = baseEnergyDemand * zoneFactor * insulationMultiplier * spacingMultiplier * electricityPrice;
        
        if (calculatedCost < 0) { calculatedCost = 0; }

        if (dashU) { dashU.innerHTML = uValue.toFixed(2) + " <span>W/(m²·K)</span>"; }
        if (dashYear) { dashYear.innerHTML = calculatedCost.toFixed(0) + " <span>PLN / rok</span>"; }
        if (dashPayback) {
            var finalPayback = basePayback;
            if (zone === 1) { finalPayback = basePayback + 1; }
            if (zone === 5) { finalPayback = basePayback - 1; }
            if (finalPayback < 5) { finalPayback = 5; }
            
            dashPayback.innerHTML = finalPayback + " <span>" + (finalPayback <= 4 ? "lata" : "lat") + "</span>";
        }
    }

    if (zoneSelect) { zoneSelect.addEventListener('change', calculateRoi); }
    if (priceInput) { priceInput.addEventListener('input', calculateRoi); }

    calculateRoi();
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-roi-simulator-app,
#rk-roi-simulator-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-darker: #080f1e;
    --rk-roi-blue: #0284c7;
    --rk-roi-light: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-bg: #ffffff;
    --rk-roi-danger: #ef4444;
    --rk-roi-warning: #f59e0b;
    --rk-roi-success: #10b981;
}

.rk-roi-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-roi-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Nagłówek sekcji */
.rk-roi-header-block {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-roi-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-roi-header-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-roi-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Jednokolumnowy */
.rk-roi-body {
    padding: 35px 45px;
    background: var(--rk-roi-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Przełączniki Metody Posadowienia */
.rk-roi-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-roi-controls {
        flex-direction: row;
    }
}

.rk-roi-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.rk-roi-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
}

.rk-roi-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-roi-blue);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-roi-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
}

.rk-roi-btn-subtitle {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

.rk-roi-btn.active .rk-roi-btn-title {
    color: var(--rk-roi-blue);
}

/* Ciemna Ramka Wynikowa Dashboardu */
.rk-roi-dashboard {
    background: var(--rk-roi-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-roi-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-roi-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-roi-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-roi-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-roi-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Analizy Kontekstowej */
.rk-roi-desc-card {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px 30px;
    border-left: 5px solid var(--rk-roi-success);
    transition: border-color 0.3s ease;
}

.rk-roi-desc-card h3 {
    font-size: 19px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 12px 0;
}

.rk-roi-desc-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-roi-text);
    margin: 0;
}

/* Opracowanie Tekstowe - Niszczenie ściany tekstu kartami inżynierskimi */
.rk-roi-text-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

.rk-roi-cards-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-roi-insight-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-roi-blue);
    transition: background 0.3s ease;
}

.rk-roi-insight-card:hover {
    background: #f1f5f9;
}

.rk-roi-insight-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 10px 0;
}

.rk-roi-insight-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-roi-text);
    margin: 0;
}

.rk-roi-insight-card strong {
    color: var(--rk-roi-dark);
    font-weight: 700;
}

.rk-roi-insight-card a {
    color: var(--rk-roi-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-roi-header-block, .rk-roi-body, .rk-roi-text-zone { padding: 30px 20px; }
    .rk-roi-desc-card, .rk-roi-insight-card { padding: 20px; }
    .rk-roi-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-roi-dash-value { font-size: 24px; }
}

@media (max-width: 480px) {
    .rk-roi-dashboard { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?",
    "description": "Inżynierska analiza opłacalności, kosztów początkowych oraz czasu zwrotu z inwestycji dla termicznych płyt fundamentowych z podłogówką.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-dataset",
    "name": "Bilans finansowo-termiczny metod posadowienia budynków jednorodzinnych",
    "description": "Zestawienie kosztów startowych, redukcji liniowych mostków termicznych oraz okresu amortyzacji nakładów dla płyt akumulacyjnych vs ławy fundamentowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy plyta fundamentowa sie oplaca",
      "koszt termicznej plyty fundamentowej",
      "redukcja mostkow termicznych en 12831",
      "zwrot z inwestycji w ogrzewanie podlogowe",
      "przenikanie ciepla u przegrody dolnej"
    ],
    "measurementTechnique": "Kalkulacja kosztów inwestycyjnych na podstawie uśrednionych cenników wykonawczych 2026 oraz obliczenia fizykalne strat wg normy PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt płyty grzewczej 150m2: 65 000 do 85 000 PLN",
        "Redukcja strat ciepła do gruntu: 30 do 40 procent oszczędności",
        "Amortyzacja kosztów z rachunków: 6 do 8 lat"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-webapp",
    "name": "Symulator Opłacalności Ekonomiczno-Termicznej Posadowienia",
    "description": "Interaktywna aplikacja przeliczająca nakłady inwestycyjne, współczynniki przenikania ciepła U oraz czas amortyzacji dla różnych technologii fundamentowych.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="rk-roi-simulator-app">
    <div class="rk-roi-header-block">
        <h2>Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?</h2>
        <p>
            Wybór posadowienia budynku rzutuje na koszty startowe oraz późniejsze rachunki za energię. Przełącz warianty poniżej, aby porównać twarde wskaźniki ekonomiczno-termiczne.
        </p>
    </div>

    <div class="rk-roi-body">
        
        <div class="rk-roi-controls">
            <button class="rk-roi-btn" id="rk-rbtn-1">
                <span class="rk-roi-btn-title">Ławy Tradycyjne + Jastrych</span>
                <span class="rk-roi-btn-subtitle">Standardowy montaż wieloetapowy</span>
            </button>
            <button class="rk-roi-btn active" id="rk-rbtn-2">
                <span class="rk-roi-btn-title">Termiczna Płyta Fundamentowa</span>
                <span class="rk-roi-btn-subtitle">Zintegrowany monolit akumulacyjny</span>
            </button>
        </div>

        <div class="rk-roi-dashboard">
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Średni Koszt (150 m²)</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-cost">75 000 <span>PLN</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Czas Budowy Stanu Zero</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-time">7 &#8211; 10 <span>dni roboczych</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Straty Ciepła do Ziemi</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-loss" style="color: var(--rk-roi-success);">-35% <span>(Kompensacja)</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Przenikanie Ciepła U</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-u">0.11 <span>W/(m²·K)</span></div>
            </div>
        </div>

        <div class="rk-roi-desc-card" id="rk-roi-card-box">
            <h3 id="rk-roi-card-title">Analiza Opłacalności: Bilans zysków i czysty zysk inżynierski</h3>
            <p id="rk-roi-card-txt">
                Wykonanie kompletnej płyty grzewczej eliminuje długą listę kosztów cząstkowych: hydroizolację pionową ścian, murowanie bloczków, zasypkę piaskową z mechanicznym zagęszczaniem oraz późniejsze wylewanie jastrychów maszynowych. Całość zamyka się w maksymalnie 10 dniach, a potężna akumulacja termiczna płyty pozwala drastycznie obniżyć koszty eksploatacji pomp ciepła.
            </p>
        </div>

    </div>

    <div class="rk-roi-text-zone">
        <div class="rk-roi-cards-stack">
            
            <div class="rk-roi-insight-card">
                <h4>Koszty początkowe a realny zwrot z inwestycji (ROI)</h4>
                <p>
                    Koszt wykonania konstrukcji, jaką jest <strong>termiczna płyta fundamentowa</strong> dla domu o powierzchni <strong>150 m²</strong> wynosi średnio od <strong>65 000 do 85 000 PLN</strong> w zależności od lokalnych warunków gruntowo-wodnych działki. Stanowi to wydatek o około <strong>15-20% wyższy</strong> w bezpośrednim porównaniu do tradycyjnych ław fundamentowych z kompletem późniejszych jastrychów podłogowych. Jednak kalkulacja ekonomiczna uwzględniająca fizykę budowli wykazuje szybki zwrot z inwestycji: dzięki potężnej redukcji strat energii, nakłady finansowe amortyzują się w postaci niższych rachunków za prąd w okresie od <strong>6 do 8 lat</strong> ciągłej eksploatacji budynku.
                </p>
            </div>

            <div class="rk-roi-insight-card">
                <h4>Normatywne wytyczne strat energii wg PN-EN 12831</h4>
                <p>
                    Zgodnie z rygorystycznymi wytycznymi normy <strong>PN-EN 12831</strong> dotyczącej metod obliczania projektowego obciążenia cieplnego, liniowe posadowienie budynku na płycie całkowicie eliminuje powszechne mostki termiczne na styku gruntu i ścian zewnętrznych. Przekłada się to na zmniejszenie strat ciepła do ziemi o imponujące <strong>30-40%</strong>. 
                </p>
                <p>
                    Uzyskany w ten sposób opór cieplny całej dolnej przegrody budowlanej znacznie przewyższa aktualne wymagania krajowych Warunków Technicznych (WT2021), pozwalając osiągnąć współczynnik przenikania ciepła <strong>U poniżej lub równy 0,11 W/(m²·K)</strong>, co jest wynikiem nieosiągalnym dla klasycznych ław bez gigantycznych nakładów na izolacje obwodowe.
                </p>
            </div>

            <div class="rk-roi-insight-card">
                <h4>Psychologia inwestora: Lęk przed monolitem grzewczym</h4>
                <p>
                    Kluczowym problemem, z którym mierzą się inwestorzy na etapie wyboru technologii stanu zero, jest lęk przed zabetonowaniem instalacji hydraulicznej &#8222;na całe życie&#8221;. Wizja potencjalnej usterki ukrytej pod <strong>20 cm zbrojonego betonu konstrukcyjnego klasy C25/30</strong> bywa paraliżująca. 
                </p>
                <p>
                    Jako inżynier praktyk wskazuję jednak na fakt, że profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a>, zastosowanie bezszwowych rur z barierą antydyfuzyjną oraz bezkompromisowa próba ciśnieniowa redukują ryzyko jakiejkolwiek awarii strukturalnej do zera. Beton staje się wtedy Twoim najwartościwszym sprzymierzeńcem – potężnym, stabilnym buforem ciepła o masie kilkudziesięciu ton.
                </p>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var b1 = document.getElementById('rk-rbtn-1');
    var b2 = document.getElementById('rk-rbtn-2');
    
    var vCost = document.getElementById('rk-roi-val-cost');
    var vTime = document.getElementById('rk-roi-val-time');
    var vLoss = document.getElementById('rk-roi-val-loss');
    var vU = document.getElementById('rk-roi-val-u');
    
    var cBox = document.getElementById('rk-roi-card-box');
    var cTitle = document.getElementById('rk-roi-card-title');
    var cTxt = document.getElementById('rk-roi-card-txt');

    function resetActive() {
        if(b1) { b1.classList.remove('active'); }
        if(b2) { b2.classList.remove('active'); }
    }

    if(b1) {
        b1.addEventListener('click', function() {
            resetActive();
            this.classList.add('active');
            
            if(vCost) { vCost.innerHTML = '63 000 <span>PLN (Etap I)</span>'; }
            if(vTime) { vTime.innerHTML = '18 - 25 <span>dni roboczych</span>'; }
            if(vLoss) { 
                vLoss.innerHTML = 'Bazowe <span>(100%)</span>'; 
                vLoss.style.color = '#ffffff';
            }
            if(vU) { vU.innerHTML = '0.23 <span>W/(m²·K)</span>'; }

            if(cBox) { cBox.style.borderLeftColor = 'var(--rk-roi-warning)'; }
            if(cTitle) { cTitle.innerHTML = 'Wariant Tradycyjny: Ukryte koszty i ryzyko mostków liniowych'; }
            if(cTxt) {
                cTxt.innerHTML = 'Choć koszt startowy samych ław jest o ok. 15% niższy, technologia ta wymaga rozbicia budowy na odległe etapy: murowanie ścian fundamentowych, izolacje pionowe, zasypka piaskowa, zagęszczanie, chudy beton, a na końcu – po postawieniu ścian – układanie styropianu i wylewanie jastrychów. Sumaryczny czas prac przekracza 3 tygodnie, a powstałe na stykach z gruntem mostki termiczne generują stałe, wysokie straty ciepła przez cały okres użytkowania pomp ciepła.';
            }
        });
    }

    if(b2) {
        b2.addEventListener('click', function() {
            resetActive();
            this.classList.add('active');
            
            if(vCost) { vCost.innerHTML = '75 000 <span>PLN (Komplet)</span>'; }
            if(vTime) { vTime.innerHTML = '7 - 10 <span>dni roboczych</span>'; }
            if(vLoss) { 
                vLoss.innerHTML = '-35% do -40% <span>ciepła</span>'; 
                vLoss.style.color = 'var(--rk-roi-success)';
            }
            if(vU) { vU.innerHTML = '0.11 <span>W/(m²·K)</span>'; }

            if(cBox) { cBox.style.borderLeftColor = 'var(--rk-roi-success)'; }
            if(cTitle) { cTitle.innerHTML = 'Analiza Opłacalności: Bilans zysków i czysty zysk inżynierski'; }
            if(cTxt) {
                cTxt.innerHTML = 'Wykonanie kompletnej płyty grzewczej eliminuje długą listę kosztów cząstkowych: hydroizolację pionową ścian, murowanie bloczków, zasypkę piaskową z mechanicznym zagęszczaniem oraz późniejsze wylewanie jastrychów maszynowych. Całość zamyka się w maksymalnie 10 dniach, a potężna akumulacja termiczna płyty pozwala drastycznie obniżyć koszty eksploatacji pomp ciepła.';
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-pipe-spacing-app,
#rk-pipe-spacing-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-spc-dark: #0f172a;
    --rk-spc-darker: #080f1e;
    --rk-spc-blue: #0284c7;
    --rk-spc-light: #f8fafc;
    --rk-spc-border: #e2e8f0;
    --rk-spc-text: #334155;
    --rk-spc-bg: #ffffff;
    --rk-spc-danger: #ef4444;
    --rk-spc-warning: #f59e0b;
    --rk-spc-success: #10b981;
}

.rk-spc-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-spc-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-spc-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-spc-header-block {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-spc-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-spc-header-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-spc-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Stack */
.rk-spc-body {
    padding: 35px 45px;
    background: var(--rk-spc-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Przełączniki Wariantów (Segmented Controls) */
.rk-spc-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-spc-controls {
        flex-direction: row;
    }
}

.rk-spc-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-spc-border);
    border-radius: 16px;
    padding: 18px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.rk-spc-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
}

.rk-spc-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-spc-blue);
    transform: translateY(0);
}

.rk-spc-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-spc-dark);
}

.rk-spc-btn-subtitle {
    font-size: 12.5px;
    color: #64748b;
    font-weight: 500;
}

.rk-spc-btn.active .rk-spc-btn-title {
    color: var(--rk-spc-blue);
}

/* Wyróżniony Dashboard Wyników */
.rk-spc-dashboard {
    background: var(--rk-spc-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-spc-blue);
}

.rk-spc-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-spc-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-spc-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-spc-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
}

/* Karta Statusu */
.rk-spc-status-card {
    background: #ffffff;
    border: 1px solid var(--rk-spc-border);
    border-radius: 16px;
    padding: 25px;
    border-left: 5px solid var(--rk-spc-success);
    transition: border-color 0.3s ease;
}

.rk-spc-status-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-spc-dark);
    margin: 0 0 10px 0;
}

.rk-spc-status-card p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-spc-text);
    margin: 0;
}

/* Przejrzyste Opracowanie Merytoryczne (Rozbita ściana tekstu) */
.rk-spc-text-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

.rk-spc-cards-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-spc-insight-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-spc-blue);
    transition: background 0.3s ease;
}

.rk-spc-insight-card:hover {
    background: #f1f5f9;
}

.rk-spc-insight-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-spc-dark);
    margin: 0 0 10px 0;
}

.rk-spc-insight-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-spc-text);
    margin: 0;
}

.rk-spc-insight-card strong {
    color: var(--rk-spc-dark);
    font-weight: 700;
}

.rk-spc-insight-card a {
    color: var(--rk-spc-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-spc-header-block, .rk-spc-body, .rk-spc-text-zone { padding: 30px 20px; }
    .rk-spc-status-card, .rk-spc-insight-card { padding: 20px; }
    .rk-spc-dashboard { grid-template-columns: 1fr; padding: 20px; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jaki rozstaw rur w płycie fundamentowej przy pompie ciepła jest optymalny?",
    "description": "Profesjonalna analiza doboru rozstawu rur grzewczych w płytach fundamentowych współpracujących z pompami ciepła. Wpływ na SCOP, temperaturę zasilania i błędy montażowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-dataset",
    "name": "Korelacja gęstości ułożenia pętli grzewczych z efektywnością energetyczną SCOP",
    "description": "Zbiór danych empirycznych odnośnie wpływu rozstawu przewodów (10 cm, 15 cm, 20 cm) na wymaganą temperaturę czynnika grzewczego i spadek sprawności pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "efekt zebry termicznej podłogówki",
      "gęstość strumienia cieplnego en 1264",
      "strefa brzegowa ogrzewania podłogowego",
      "temperatura zasilania pompy ciepła"
    ],
    "measurementTechnique": "Modelowanie rozkładu temperatur płaszczyzny grzewczej i symulacja parametrów hydraulicznych pętli według wytycznych normy PN-EN 1264-2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw optymalny 15 cm: zasilanie 35C, gęstość 35-45 W/m2, SCOP maksymalny",
        "Rozstaw zagęszczony 10 cm: dedykowany dla stref przyokiennych (brzegowych)",
        "Rozstaw wadliwy 20-25 cm: zasilanie 42C, spadek SCOP o 15-20 procent, efekt zebry"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-webapp",
    "name": "Symulator Efektywności Termodynamicznej Rozstawu Pętli",
    "description": "Interaktywna aplikacja przeliczająca parametry gęstości strumienia cieplnego i straty sprawności pompy ciepła na podstawie konfiguracji rozstawu rur.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spc-container" id="rk-pipe-spacing-app">
    <div class="rk-spc-header-block">
        <h2>Jaki rozstaw rur w płycie fundamentowej przy pompie ciepła jest optymalny?</h2>
        <p>
            Gęstość ułożenia pętli w monolicie betonowym decyduje o wymaganej temperaturze roboczej czynnika. Wybierz rozstaw rur, aby natychmiast sprawdzić parametry termodynamiczne przegrody i sprawność pompy ciepła.
        </p>
    </div>

    <div class="rk-spc-body">
        
        <div class="rk-spc-controls">
            <button class="rk-spc-btn" id="rk-sbtn-1">
                <span class="rk-spc-btn-title">Rozstaw co 10 cm</span>
                <span class="rk-spc-btn-subtitle">Strefy brzegowe i przyokienne</span>
            </button>
            <button class="rk-spc-btn active" id="rk-sbtn-2">
                <span class="rk-spc-btn-title">Rozstaw co 15 cm</span>
                <span class="rk-spc-btn-subtitle">Standard Inżynierski (Bytowy)</span>
            </button>
            <button class="rk-spc-btn" id="rk-sbtn-3">
                <span class="rk-spc-btn-title">Rozstaw co 20-25 cm</span>
                <span class="rk-spc-btn-subtitle">Błąd Wykonawczy (Zwyczajowy)</span>
            </button>
        </div>

        <div class="rk-spc-dashboard">
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Temperatura Zasilania</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-temp">35 <span>°C</span></div>
            </div>
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Strumień Cieplny</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-flux">45 <span>W/m²</span></div>
            </div>
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Wpływ na SCOP Pompy</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-scop" style="color: var(--rk-spc-success);">Maksymalny SCOP</div>
            </div>
        </div>

        <div class="rk-spc-status-card" id="rk-spc-status-box">
            <h3 id="rk-spc-status-title">Optymalna ergonomiczna konfiguracja płaszczyzny</h3>
            <p id="rk-spc-status-desc">Rozstaw co 15 cm to złoty standard inżynierski. Zapewnia doskonałe zrównoważenie hydrauliczne rotametrów i pozwala pompie ciepła pracować z najwyższą sprawnością.</p>
        </div>

    </div>

    <div class="rk-spc-text-zone">
        <div class="rk-spc-cards-stack">
            
            <div class="rk-spc-insight-card" style="border-left-color: var(--rk-spc-danger);">
                <h4>Fizyczne konsekwencje błędów montażowych</h4>
                <p>
                    Konsekwencje błędów przy doborze rozstawu rur są całkowicie <strong>nieodwracalne po zalaniu mieszanki betonowej</strong>:
                </p>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; font-size: 14.5px; color: var(--rk-spc-text);">
                    <li style="margin-bottom: 8px;">
                        <strong>Rozstaw co 20-25 cm:</strong> Powoduje powstanie uciążliwego zjawiska, jakim jest <strong>efekt zebry termicznej</strong> (wyczuwalne pasy ciepła i chłodu na okładzinie posadzkowej) oraz niedogrzanie budynku w trakcie mrozów projektowych (np. -20°C dla III strefy klimatycznej Polski). Wymusza to podniesienie temperatury zasilania do 42°C, generując spadek SCOP pompy o około <strong>15-20%</strong>.
                    </li>
                    <li>
                        <strong>Zbyt gęsty rozstaw (poniżej 10 cm):</strong> Generuje gigantyczne opory hydrauliczne wewnątrz pętli. Skutkuje to drastycznym wzrostem poboru prądu przez pompę obiegową lub całkowicie uniemożliwia prawidłowe <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zrównoważenie hydrauliczne instalacji</a> na rotametrach rozdzielacza.
                    </li>
                </ul>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var b1 = document.getElementById('rk-sbtn-1');
    var b2 = document.getElementById('rk-sbtn-2');
    var b3 = document.getElementById('rk-sbtn-3');
    
    var dTemp = document.getElementById('rk-spc-dash-temp');
    var dFlux = document.getElementById('rk-spc-dash-flux');
    var dScop = document.getElementById('rk-spc-dash-scop');
    
    var sBox = document.getElementById('rk-spc-status-box');
    var sTitle = document.getElementById('rk-spc-status-title');
    var sDesc = document.getElementById('rk-spc-status-desc');

    function clearActive() {
        if(b1) { b1.classList.remove('active'); }
        if(b2) { b2.classList.remove('active'); }
        if(b3) { b3.classList.remove('active'); }
    }

    if(b1) {
        b1.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '30 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '55 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = 'Maksymalny SCOP'; 
                dScop.style.color = 'var(--rk-spc-success)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-blue)'; }
            if(sTitle) { sTitle.innerHTML = 'Zagęszczenie brzegowe (Kompensacja radiacji)'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw 10 cm stosuje się wyłącznie na pasach szerokości 1-1,5 m od dużych przeszkleń. Generuje większe opory, ale idealnie odcina chłód z zewnątrz.'; }
        });
    }

    if(b2) {
        b2.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '35 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '45 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = 'Optymalny SCOP'; 
                dScop.style.color = 'var(--rk-spc-success)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-success)'; }
            if(sTitle) { sTitle.innerHTML = 'Optymalna ergonomiczna konfiguracja płaszczyzny'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw co 15 cm to złoty standard inżynierski. Zapewnia doskonałe zrównoważenie hydrauliczne rotametrów i pozwala pompie ciepła pracować z najwyższą sprawnością.'; }
        });
    }

    if(b3) {
        b3.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '42 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '25 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = '-20% Wydajności'; 
                dScop.style.color = 'var(--rk-spc-danger)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-danger)'; }
            if(sTitle) { sTitle.innerHTML = 'Wadliwy montaż: Ryzyko zebry termicznej'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw co 20-25 cm to poważny błąd. Wymusza przegrzewanie zładu do 42°C, drastycznie podnosi rachunki za prąd i tworzy wyczuwalne pasy chłodu na posadzce.'; }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-hydraulic-loop-app,
#rk-hydraulic-loop-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-darker: #080f1e;
    --rk-loop-blue: #0284c7;
    --rk-loop-light: #f8fafc;
    --rk-loop-border: #e2e8f0;
    --rk-loop-text: #334155;
    --rk-loop-bg: #ffffff;
    --rk-loop-danger: #ef4444;
    --rk-loop-warning: #f59e0b;
    --rk-loop-success: #10b981;
}

.rk-loop-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-loop-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-loop-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-loop-header-block {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-loop-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-loop-header-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-loop-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Jednokolumnowy */
.rk-loop-body {
    padding: 35px 45px;
    background: var(--rk-loop-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Strefa Interaktywna: Przełączniki i Suwak */
.rk-loop-interactive-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-loop-toggle-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-loop-toggle-row span {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-btn-group {
    display: flex;
    gap: 10px;
}

.rk-loop-toggle-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-loop-text);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
}

.rk-loop-toggle-btn:hover {
    border-color: #cbd5e1;
}

.rk-loop-toggle-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-loop-blue);
    color: var(--rk-loop-blue);
}

.rk-loop-slider-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-loop-label-zone {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-loop-label-zone label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-current-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-loop-blue);
    background: #f0f9ff;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

.rk-loop-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}

.rk-loop-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-loop-blue);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(2, 132, 199, 0.4);
}

/* Szybka Ramka Wynikowa (Dashboard) */
.rk-loop-dashboard {
    background: var(--rk-loop-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-loop-blue);
}

.rk-loop-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-loop-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-loop-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-loop-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
}

/* Status Alert */
.rk-loop-status-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 25px;
    border-left: 5px solid var(--rk-loop-success);
    transition: border-color 0.3s ease;
}

.rk-loop-status-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin: 0 0 10px 0;
}

.rk-loop-status-card p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-loop-text);
    margin: 0;
}

/* Nowoczesne Karty Edukacyjne (Zastępują ścianę tekstu) */
.rk-loop-insights-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 10px;
}

.rk-loop-insight-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 24px;
    display: flex;
    gap: 18px;
    align-items: flex-start;
    transition: all 0.3s ease;
}

.rk-loop-insight-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);
}

.rk-loop-insight-icon {
    width: 44px;
    height: 44px;
    background: #f8fafc;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-loop-blue);
    flex-shrink: 0;
}

.rk-loop-insight-content h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin: 0 0 8px 0;
}

.rk-loop-insight-content p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-loop-text);
    margin: 0;
}

.rk-loop-insight-content strong {
    color: var(--rk-loop-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-loop-header-block, .rk-loop-body { padding: 30px 20px; }
    .rk-loop-interactive-card, .rk-loop-status-card { padding: 20px; }
    .rk-loop-dashboard { grid-template-columns: 1fr; padding: 20px; gap: 15px; }
    .rk-loop-btn-group { flex-direction: column; }
    .rk-loop-insight-card { flex-direction: column; gap: 12px; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jaka jest maksymalna długość pętli w płycie fundamentowej?",
    "description": "Poradnik inżynierski opisujący limity długości obwodów grzewczych w termicznej płycie fundamentowej. Konsekwencje hydrauliczne przekroczenia 100 metrów długości pętli.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-dataset",
    "name": "Właściwości hydrodynamiczne obwodów płaszczyznowych PERT-PEX",
    "description": "Zestawienie fizyczne korelacji długości przewodów z oporami przepływu liniowego i spadkiem temperatury Delta T dla średnic nominalnych 16 mm i 20 mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna dlugosc petli podlogowki",
      "za dluga petla podlogowki",
      "rura pex 16 opory hydrauliczne",
      "cisnienie pompy obiegowej",
      "spadek temperatury podlogowki"
    ],
    "measurementTechnique": "Modelowanie matematyczne strat ciśnienia liniowego oraz przepływów masowych cieczy zgodnie z normą PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura grzewcza 16x2 mm: Maksymalna zalecana długość 100 metrów bieżących",
        "Rura grzewcza 20x2 mm: Dopuszczalna długość konstrukcyjna do 150 metrów bieżących",
        "Wysokość podnoszenia standardowego układu pompowego: 6 metrów słupa wody (60 kPa)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-webapp",
    "name": "Symulator Oporów i Przepływu Pętli Grzewczej",
    "description": "Zaawansowana aplikacja obliczeniowa służąca do symulacji oporów hydraulicznych i spadków temperatur w zatopionych w fundamencie rurociągach grzewczych.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-hydraulic-loop-app">
    <div class="rk-loop-header-block">
        <h2>Jaka jest maksymalna długość pętli w płycie fundamentowej?</h2>
        <p>
            Przekroczenie granicznych długości obwodów grzewczych w fundamencie grozi trwałym zablokowaniem przepływu wody. Wybierz średnicę rury i ustaw długość pętli, aby zasymulować opory hydrauliczne układu.
        </p>
    </div>

    <div class="rk-loop-body">
        
        <div class="rk-loop-interactive-card">
            <div class="rk-loop-toggle-row">
                <span>Wybierz średnicę rury grzewczej:</span>
                <div class="rk-loop-btn-group">
                    <button class="rk-loop-toggle-btn active" id="rk-pipe-16">Średnica 16 mm (ścianka 2 mm)</button>
                    <button class="rk-loop-toggle-btn" id="rk-pipe-20">Średnica 20 mm (ścianka 2 mm)</button>
                </div>
            </div>

            <div class="rk-loop-slider-row">
                <div class="rk-loop-label-zone">
                    <label for="rk-loop-slider">Całkowita długość pojedynczej pętli (L):</label>
                    <span class="rk-loop-current-value" id="rk-loop-len-lbl">100 m</span>
                </div>
                <input type="range" class="rk-loop-range-input" id="rk-loop-slider" min="50" max="180" step="5" value="100">
            </div>
        </div>

        <div class="rk-loop-dashboard">
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Opór Hydrauliczny</span>
                <div class="rk-loop-dash-value" id="rk-dash-press">20.0 <span>kPa</span></div>
            </div>
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Spadek Temperatury</span>
                <div class="rk-loop-dash-value" id="rk-dash-dt">5.0 <span>K</span></div>
            </div>
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Przepływ na rotametrze</span>
                <div class="rk-loop-dash-value" id="rk-dash-rotam">2.0 <span>l/min</span></div>
            </div>
        </div>

        <div class="rk-loop-status-card" id="rk-loop-status-box">
            <h3 id="rk-loop-status-title">Optymalna praca hydrauliczna</h3>
            <p id="rk-loop-status-desc">Obwód grzewczy mieści się w bezpiecznych granicach projektowych. Opory liniowe nie przeciążają pompy obiegowej, a rozkład temperatur jest w pełni jednorodny.</p>
        </div>

        <div class="rk-loop-insights-grid">
            
            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Normy i fizyczne opory przepływu</h4>
                    <p>Maksymalna długość pojedynczej pętli grzewczej o średnicy 16 mm (z grubością ścianki 2 mm) w płycie fundamentowej wynosi <strong>100 m bieżących</strong>, wliczając w to odcinki doprowadzające do rozdzielacza. Zgodnie z zasadami hydrauliki instalacyjnej i normą <strong>PN-EN 1264-4</strong>, przekroczenie tej wartości powoduje wzrost oporów przepływu powyżej <strong>20 kPa</strong>, co skutkuje drastycznym spadkiem przepływu masowego poniżej wartości projektowych. Dla rur o średnicy 20 mm dopuszczalna długość pętli wzrasta do <strong>150 m</strong>, jednak wymagają one znacznie większego promienia gięcia przy montażu na siatkach zbrojeniowych.</p>
                </div>
            </div>

            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9a4 4 0 0 0-2 7.5"></path><path d="M12 3v2"></path><path d="M6.6 18.4l-1.4 1.4"></path><path d="M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Zjawisko całkowitego wychłodzenia</h4>
                    <p>Jeśli pętla będzie za długa (np. 130-140 m dla rury 16 mm), woda w końcowej części obwodu ulegnie całkowitemu wychłodzeniu. Spadek temperatury <strong>Delta T</strong> wykroczy poza dopuszczalne 5-10 K, osiągając nawet <strong>15 K</strong>, co doprowadzi do odczuwalnych, chłodnych stref na posadzce.</p>
                </div>
            </div>

            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Blokada pompy i rotametrów</h4>
                    <p>Pompa obiegowa o standardowej wysokości podnoszenia 6 m słupa wody (<strong>60 kPa</strong>) nie zdoła przetłoczyć odpowiedniej ilości czynnika przez tak wysokie opory. W efekcie całe pomieszczenie obsługiwane przez dany obwód pozostanie niedogrzane, a rotametr na rozdzielaczu zatrzyma się w pozycji bliskiej <strong>0 l/min</strong>, bez możliwości mechanicznej regulacji.</p>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rk-loop-slider');
    var btn16 = document.getElementById('rk-pipe-16');
    var btn20 = document.getElementById('rk-pipe-20');
    
    var lenLbl = document.getElementById('rk-loop-len-lbl');
    var dPress = document.getElementById('rk-dash-press');
    var dDt = document.getElementById('rk-dash-dt');
    var dRotam = document.getElementById('rk-dash-rotam');
    
    var statusBox = document.getElementById('rk-loop-status-box');
    var statusTitle = document.getElementById('rk-loop-status-title');
    var statusDesc = document.getElementById('rk-loop-status-desc');

    var currentPipe = 16; // Domyślnie 16mm

    function calculateHydraulics() {
        var length = 100;
        if (slider) { length = parseFloat(slider.value); }
        if (lenLbl) { lenLbl.innerHTML = length + " m"; }

        var press = 0;
        var dt = 5.0;
        var rotam = 2.0;

        // Bezpieczny algorytm w zagnieżdżonych blokach if
        if (currentPipe === 16) {
            press = 5 + ((length * length) / 500);
            
            if (length <= 100) {
                dt = 5.0 + ((length - 50) / 25);
                rotam = 2.2 - ((length - 50) / 250);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-success)"; }
                if (statusTitle) { statusTitle.innerHTML = "Optymalna praca hydrauliczna"; }
                if (statusDesc) { statusDesc.innerHTML = "Pętla 16 mm mieści się w normatywnych 100 metrach. Opory przepływu liniowego są niskie, a spadek temperatury Delta T zapewnia idealny komfort bez przeciążania pompy."; }
            }
            if (length > 100) {
                if (length <= 125) {
                    dt = 7.0 + ((length - 100) / 10);
                    rotam = 1.8 - ((length - 100) / 50);
                    if (rotam < 0.4) { rotam = 0.4; }
                    
                    if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-warning)"; }
                    if (statusTitle) { statusTitle.innerHTML = "Przekroczony opór graniczny (Wskazane pogrubienie rury)"; }
                    if (statusDesc) { statusDesc.innerHTML = "Pętla jest za długa dla rury 16 mm. Opory przekraczają 25 kPa, co wymusi podniesienie biegu pompy obiegowej i zwiększy zużycie prądu."; }
                }
            }
            if (length > 125) {
                dt = 11.0 + ((length - 125) / 5);
                rotam = 0.3 - ((length - 125) / 200);
                if (rotam <= 0) { rotam = 0.0; }
                if (dt > 15.0) { dt = 15.0; }
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-danger)"; }
                if (statusTitle) { statusTitle.innerHTML = "Krytyczna awaria: Brak przepływu i zimna strefa"; }
                if (statusDesc) { statusDesc.innerHTML = "Pętla uległa hydraulicznemu zablokowaniu. Opory są wyższe niż ciśnienie tłoczenia pompy obiegowej (60 kPa). Rotametr opadł do zera, a woda wychładza się całkowicie, powodując niedogrzanie pomieszczenia."; }
            }
        }

        if (currentPipe === 20) {
            press = 3 + ((length * length) / 1100);
            
            if (length <= 145) {
                dt = 5.0 + ((length - 50) / 45);
                rotam = 2.5 - ((length - 50) / 400);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-success)"; }
                if (statusTitle) { statusTitle.innerHTML = "Optymalna praca hydrauliczna (Profil 20 mm)"; }
                if (statusDesc) { statusDesc.innerHTML = "Rura o średnicy 20 mm bezproblemowo radzi sobie z długimi obiegami do 150 metrów. Opory mieszczą się w normie, zapewniając stabilne zrównoważenie hydrauliczne instalacji."; }
            }
            if (length > 145) {
                dt = 7.5 + ((length - 145) / 12);
                rotam = 1.9 - ((length - 145) / 60);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-warning)"; }
                if (statusTitle) { statusTitle.innerHTML = "Ostrzeżenie: Duża bezwładność pętli"; }
                if (statusDesc) { statusDesc.innerHTML = "Długość zbliża się do krytycznej granicy dla profilu 20 mm. Wymagany promieni gięcia na zbrojeniu utrudnia montaż, a opory zaczynają dławić przepływ masowy."; }
            }
        }

        if (dPress) { dPress.innerHTML = press.toFixed(1) + " <span>kPa</span>"; }
        if (dDt) { dDt.innerHTML = dt.toFixed(1) + " <span>K</span>"; }
        if (dRotam) { dRotam.innerHTML = rotam.toFixed(2) + " <span>l/min</span>"; }
    }

    if (btn16) {
        btn16.addEventListener('click', function() {
            if (btn20) { btn20.classList.remove('active'); }
            this.classList.add('active');
            currentPipe = 16;
            if (slider) {
                slider.min = "50";
                slider.max = "150";
            }
            calculateHydraulics();
        });
    }

    if (btn20) {
        btn20.addEventListener('click', function() {
            if (btn16) { btn16.classList.remove('active'); }
            this.classList.add('active');
            currentPipe = 20;
            if (slider) {
                slider.min = "50";
                slider.max = "180";
            }
            calculateHydraulics();
        });
    }

    if (slider) { slider.addEventListener('input', calculateHydraulics); }

    calculateHydraulics();
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-systems-comparison-app,
#rk-systems-comparison-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-darker: #080f1e;
    --rk-comp-blue: #0284c7;
    --rk-comp-light: #f8fafc;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #334155;
    --rk-comp-bg: #ffffff;
    --rk-comp-active-bg: #f0f9ff;
    --rk-comp-active-border: #0284c7;
}

.rk-comp-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-comp-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Nagłówek Sekcji */
.rk-comp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-comp-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-comp-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Sekcja Główna - Układ Jednokolumnowy */
.rk-comp-body {
    padding: 35px 45px;
    background: var(--rk-comp-bg);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Kontrolki wyboru (Segmented Control - Przełączniki) */
.rk-comp-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-comp-controls {
        flex-direction: row;
    }
}

.rk-comp-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-comp-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px -3px rgba(15, 23, 42, 0.08);
}

.rk-comp-btn.active {
    background: var(--rk-comp-active-bg);
    border-color: var(--rk-comp-active-border);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-comp-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    transition: color 0.3s;
}

.rk-comp-btn-subtitle {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

.rk-comp-btn.active .rk-comp-btn-title {
    color: var(--rk-comp-blue);
}

/* Ciemny Dashboard Wynikowy (Zamiast Tabeli) */
.rk-comp-dashboard {
    background: var(--rk-comp-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-comp-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-comp-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-comp-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-comp-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-comp-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Opisowa pod Dashboardem */
.rk-comp-desc-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px 30px;
    border-left: 4px solid #10b981;
    transition: border-color 0.3s ease;
}

.rk-comp-desc-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 12px 0;
}

.rk-comp-desc-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-comp-text);
    margin: 0;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-body { padding: 30px 20px; }
    .rk-comp-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-comp-dash-value { font-size: 24px; }
}

@media (max-width: 480px) {
    .rk-comp-dashboard { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Porównanie parametrów technicznych systemów płytowych",
    "description": "Szczegółowe zestawienie parametrów technicznych dla termicznych płyt fundamentowych. Porównanie rur 16 mm i 20 mm, grubości izolacji oraz temperatur zasilania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-dataset",
    "name": "Matryca Techniczna Termicznych Płyt Fundamentowych",
    "description": "Zestawienie właściwości hydraulicznych i termicznych: opór przegrody, maksymalne długości pętli rur PEX/PERT, jednostkowy zrzut wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne płyty grzewczej",
      "opór cieplny płyty fundamentowej",
      "rozstaw rur w płycie fundamentowej",
      "maksymalna długość pętli w betonie",
      "jednostkowy zrzut wody ogrzewania"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne i cieplne zgodne z normami budowlanymi dotyczącymi instalacji płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Standardowy 16mm: Opór R = 4.41 m2K/W, Długość pętli do 100 m",
        "System Wysokoprzepływowy 20mm: Opór R = 4.41 m2K/W, Długość pętli do 150 m",
        "Klasa Pasywna NF15 16mm: Opór R = 7.35 m2K/W, Długość pętli do 90 m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-webapp",
    "name": "Interaktywny Komparator Systemów Płytowych",
    "description": "Aplikacja służąca do zestawiania i bezpośredniego porównywania kluczowych wskaźników inżynierskich dla fundamentowych systemów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-wrapper" id="rk-systems-comparison-app">
    <div class="rk-comp-header">
        <h2>Porównanie parametrów technicznych systemów płytowych</h2>
        <p>
            Poniższy panel zastępuje tradycyjną, nieczytelną tabelę. Wybierz odpowiedni wariant konstrukcyjny, aby błyskawicznie sprawdzić kluczowe parametry techniczne i projektowe dla Twojej płyty fundamentowej.
        </p>
    </div>

    <div class="rk-comp-body">
        
        <div class="rk-comp-controls">
            <button class="rk-comp-btn active" id="rk-tab-1">
                <span class="rk-comp-btn-title">System Standardowy</span>
                <span class="rk-comp-btn-subtitle">Rura 16 mm</span>
            </button>
            <button class="rk-comp-btn" id="rk-tab-2">
                <span class="rk-comp-btn-title">Wysokoprzepływowy</span>
                <span class="rk-comp-btn-subtitle">Rura 20 mm</span>
            </button>
            <button class="rk-comp-btn" id="rk-tab-3">
                <span class="rk-comp-btn-title">Klasa Pasywna NF15</span>
                <span class="rk-comp-btn-subtitle">Rura 16 mm</span>
            </button>
        </div>

        <div class="rk-comp-dashboard">
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Rozstaw Rur (Strefa Bytowa)</span>
                <div class="rk-comp-dash-value" id="rk-val-space">15 <span>cm</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Maks. Długość Pętli</span>
                <div class="rk-comp-dash-value" id="rk-val-len">100 <span>m</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Grubość Izolacji XPS</span>
                <div class="rk-comp-dash-value" id="rk-val-xps">150 <span>mm</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Opór Cieplny (R)</span>
                <div class="rk-comp-dash-value" id="rk-val-res">4,41 <span>m²·K/W</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Projektowa Temp. Zasilania</span>
                <div class="rk-comp-dash-value" id="rk-val-temp">35 <span>°C</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Zrzut Wody</span>
                <div class="rk-comp-dash-value" id="rk-val-water">0,113 <span>l/m</span></div>
            </div>
        </div>

        <div class="rk-comp-desc-card" id="rk-desc-card">
            <h3 id="rk-desc-title">System Standardowy: Optymalny wybór inwestycyjny</h3>
            <p id="rk-desc-text">
                Klasyczny układ na rurze 16 mm zapewnia idealny balans między kosztami materiałowymi a sprawnością hydrauliczną. Przy długości pętli nieprzekraczającej 100 metrów i rozstawie co 15 cm, standardowa pompa obiegowa bez problemu tłoczy zład wodny, a temperatura zasilania rzędu 35°C gwarantuje wysoki, średnioroczny współczynnik efektywności pompy ciepła (SCOP).
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-tab-1');
    var btn2 = document.getElementById('rk-tab-2');
    var btn3 = document.getElementById('rk-tab-3');
    
    var valSpace = document.getElementById('rk-val-space');
    var valLen = document.getElementById('rk-val-len');
    var valXps = document.getElementById('rk-val-xps');
    var valRes = document.getElementById('rk-val-res');
    var valTemp = document.getElementById('rk-val-temp');
    var valWater = document.getElementById('rk-val-water');

    var descCard = document.getElementById('rk-desc-card');
    var descTitle = document.getElementById('rk-desc-title');
    var descText = document.getElementById('rk-desc-text');

    function resetActiveBtns() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '15 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '100 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '150 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '4,41 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '35 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,113 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#10b981'; } // Zielony
            if(descTitle) { descTitle.innerHTML = 'System Standardowy: Optymalny wybór inwestycyjny'; }
            if(descText) { 
                descText.innerHTML = 'Klasyczny układ na rurze 16 mm zapewnia idealny balans między kosztami materiałowymi a sprawnością hydrauliczną. Przy długości pętli nieprzekraczającej 100 metrów i rozstawie co 15 cm, standardowa pompa obiegowa bez problemu tłoczy zład wodny, a temperatura zasilania rzędu 35°C gwarantuje wysoki, średnioroczny współczynnik efektywności pompy ciepła (SCOP).'; 
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '20 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '150 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '150 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '4,41 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '38 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,177 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#f59e0b'; } // Pomarańczowy
            if(descTitle) { descTitle.innerHTML = 'Wysokoprzepływowy: Dedykowany do dużych kubatur'; }
            if(descText) { 
                descText.innerHTML = 'Rozwiązanie wykorzystujące grubszą rurę 20 mm świetnie sprawdza się w budynkach komercyjnych lub salonach o ogromnej powierzchni. Większa średnica redukuje opory hydrauliczne i pozwala na formowanie ekstremalnie długich pętli (do 150 m). Wymaga to jednak nieco rzadszego rozstawienia rur i podniesienia temperatury zasilania do ok. 38°C.'; 
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '10 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '90 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '250 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '7,35 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '30 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,113 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#0284c7'; } // Niebieski
            if(descTitle) { descTitle.innerHTML = 'Klasa Pasywna NF15: Maksymalna energooszczędność'; }
            if(descText) { 
                descText.innerHTML = 'Bezkompromisowy wariant inżynierski. Potężna warstwa izolacji dolnej (XPS 25 cm) w połączeniu z gęstym rozstawem rur (co 10 cm) pozwala na obniżenie krzywej grzewczej pompy ciepła do zaledwie 30°C. Straty ciepła w dół gruntu są niemal zerowe, a urządzenie grzewcze pracuje z najwyższą możliwą sprawnością elektryczną przez cały sezon zimowy.'; 
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu bezszeryfowego i reset */
#rk-systems-comparison,
#rk-systems-comparison * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-light: #f8fafc;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #334155;
    --rk-comp-bg: #ffffff;
    --rk-comp-active-bg: #f0f9ff;
    --rk-comp-active-border: #0284c7;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-comp-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-comp-header-zone {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-comp-header-zone h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-comp-header-zone p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Panel Główny */
.rk-comp-body {
    padding: 35px 45px;
    background: var(--rk-comp-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Selektory wariantu - Układ poziomy na desktopie, pionowy na mobile */
.rk-comp-tabs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-comp-tabs {
        flex-direction: row;
    }
}

.rk-comp-tab-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 18px 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rk-comp-tab-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
}

.rk-comp-tab-btn.active {
    background: var(--rk-comp-active-bg);
    border-color: var(--rk-comp-active-border);
    transform: translateY(0);
}

.rk-comp-tab-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-dark);
}

.rk-comp-tab-desc {
    font-size: 12px;
    color: #64748b;
}

/* Karta specyfikacji danych */
.rk-comp-display-board {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.01);
}

.rk-comp-board-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 20px 0;
    border-bottom: 2px solid var(--rk-comp-light);
    padding-bottom: 12px;
}

/* Siatka parametrów - jedno kolumnowa, przejrzysta struktura */
.rk-comp-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-comp-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f5f9;
}

.rk-comp-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-comp-param-label {
    font-size: 14.5px;
    color: var(--rk-comp-text);
    font-weight: 500;
}

.rk-comp-param-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    background: #f1f5f9;
    padding: 6px 14px;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.rk-comp-tab-btn.active .rk-comp-param-value {
    background: #e0f2fe;
    color: #0369a1;
}

@media (max-width: 768px) {
    .rk-comp-header-zone, .rk-comp-body { padding: 30px 20px; }
    .rk-comp-display-board { padding: 20px; }
    .rk-comp-row { flex-direction: column; align-items: flex-start; gap: 8px; }
    .rk-comp-param-value { align-self: flex-end; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Porównanie parametrów technicznych systemów płytowych",
    "description": "Zestawienie fizyczne i hydrauliczne trzech głównych wariantów wykonawczych termicznych płyt fundamentowych. Analiza rozstawu rur, oporu przegrody i temperatur zasilania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-dataset",
    "name": "Matryca Techniczna Systemów Termicznych Płyt Fundamentowych",
    "description": "Porównawcza baza danych właściwości fizycznych: opór cieplny jastrychów betonu nośnego, maksymalne długości rur PEX/PERT, normatywne limity zrzutu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne płyty grzewczej",
      "opór cieplny płyty fundamentowej",
      "rozstaw rur w płycie fundamentowej",
      "maksymalna długość pętli w betonie",
      "jednostkowy zrzut wody ogrzewania"
    ],
    "measurementTechnique": "Badania fizykalne oporu przewodzenia i obliczenia hydrauliczne zgodne z normami PN-EN 1264-2 oraz PN-EN ISO 15875.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Standardowy 16mm: Opór R = 4.41 m2K/W, Długość pętli do 100 m",
        "System Wysokoprzepływowy 20mm: Opór R = 4.41 m2K/W, Długość pętli do 150 m",
        "Klasa Pasywna NF15 16mm: Opór R = 7.35 m2K/W, Długość pętli do 90 m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-webapp",
    "name": "Interaktywny Komparator Systemów Płytowych",
    "description": "Narzędzie służące do selektywnego przełączania i dynamicznej analizy wariantów konstrukcyjno-instalacyjnych fundamentów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-systems-comparison">
    <div class="rk-comp-header-zone">
        <h2>Porównanie parametrów technicznych systemów płytowych</h2>
        <p>
            Poniższe zestawienie przedstawia kluczowe parametry techniczne i projektowe dla termicznych płyt fundamentowych w zależności od przyjętej konfiguracji rur oraz standardu izolacji obwodowej.
        </p>
    </div>

    <div class="rk-comp-body">
        
        <div class="rk-comp-tabs">
            <button class="rk-comp-tab-btn active" id="rk-ctab-1">
                <span class="rk-comp-tab-title">System Standardowy</span>
                <span class="rk-comp-tab-desc">Rura 16 mm – Klasyczny zrównoważony wybór</span>
            </button>
            <button class="rk-comp-tab-btn" id="rk-ctab-2">
                <span class="rk-comp-tab-title">System Wysokoprzepływowy</span>
                <span class="rk-comp-tab-desc">Rura 20 mm – Niski opór dla dużych powierzchni</span>
            </button>
            <button class="rk-comp-tab-btn" id="rk-ctab-3">
                <span class="rk-comp-tab-title">Klasa Pasywna NF15</span>
                <span class="rk-comp-tab-desc">Rura 16 mm – Maksymalna izolacja dolna</span>
            </button>
        </div>

        <div class="rk-comp-display-board">
            <div class="rk-comp-board-title" id="rk-comp-board-name">Specyfikacja: System Standardowy (Rura 16 mm)</div>
            
            <div class="rk-comp-grid">
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Rozstaw rur (strefa bytowa)</span>
                    <span class="rk-comp-param-value" id="rk-val-spacing">15 cm</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Maksymalna długość pętli grzewczej</span>
                    <span class="rk-comp-param-value" id="rk-val-loop">100 m</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Grubość izolacji termicznej XPS</span>
                    <span class="rk-comp-param-value" id="rk-val-xps">150 mm</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Opór cieplny przegrody R</span>
                    <span class="rk-comp-param-value" id="rk-val-resistance">4,41 m²·K/W</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Projektowa temperatura zasilania podłogówki</span>
                    <span class="rk-comp-param-value" id="rk-val-temp">35°C</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Jednostkowy zrzut wody w rurociągu</span>
                    <span class="rk-comp-param-value" id="rk-val-water">0,113 l/m</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tab1 = document.getElementById('rk-ctab-1');
    var tab2 = document.getElementById('rk-ctab-2');
    var tab3 = document.getElementById('rk-ctab-3');
    
    var boardName = document.getElementById('rk-comp-board-name');
    var valSpacing = document.getElementById('rk-val-spacing');
    var valLoop = document.getElementById('rk-val-loop');
    var valXps = document.getElementById('rk-val-xps');
    var valResistance = document.getElementById('rk-val-resistance');
    var valTemp = document.getElementById('rk-val-temp');
    var valWater = document.getElementById('rk-val-water');

    function clearTabs() {
        if(tab1) { tab1.classList.remove('active'); }
        if(tab2) { tab2.classList.remove('active'); }
        if(tab3) { tab3.classList.remove('active'); }
    }

    if(tab1) {
        tab1.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: System Standardowy (Rura 16 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '15 cm'; }
            if(valLoop) { valLoop.innerHTML = '100 m'; }
            if(valXps) { valXps.innerHTML = '150 mm'; }
            if(valResistance) { valResistance.innerHTML = '4,41 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '35°C'; }
            if(valWater) { valWater.innerHTML = '0,113 l/m'; }
        });
    }

    if(tab2) {
        tab2.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: System Wysokoprzepływowy (Rura 20 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '20 cm'; }
            if(valLoop) { valLoop.innerHTML = '150 m'; }
            if(valXps) { valXps.innerHTML = '150 mm'; }
            if(valResistance) { valResistance.innerHTML = '4,41 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '38°C'; }
            if(valWater) { valWater.innerHTML = '0,177 l/m'; }
        });
    }

    if(tab3) {
        tab3.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: Klasa Pasywna NF15 (Rura 16 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '10 cm'; }
            if(valLoop) { valLoop.innerHTML = '90 m'; }
            if(valXps) { valXps.innerHTML = '250 mm'; }
            if(valResistance) { valResistance.innerHTML = '7,35 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '30°C'; }
            if(valWater) { valWater.innerHTML = '0,113 l/m'; }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-engineering-calc-app,
#rk-engineering-calc-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-bg: #ffffff;
    --rk-calc-accent: #0f766e;
    --rk-calc-highlight: #f0f9ff;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-calc-header-block {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-calc-header-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-calc-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Główny */
.rk-calc-body {
    padding: 35px 45px;
    background: var(--rk-calc-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Strefa Interaktywna: Suwaki + Wynik na żywo */
.rk-calc-interactive-zone {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 35px;
}

/* Sekcja Suwaków Wejściowych */
.rk-calc-inputs-wrapper {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-calc-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-calc-label-zone {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-calc-label-zone label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

.rk-calc-current-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-highlight);
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

/* Wygląd suwaka */
.rk-calc-slider-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

.rk-calc-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

.rk-calc-slider-input::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

/* Szybka Ramka Wynikowa (Dashboard) */
.rk-calc-dashboard {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    position: relative;
    overflow: hidden;
}

.rk-calc-dashboard::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-calc-blue);
}

.rk-calc-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-calc-dash-label {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-calc-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
}

.rk-calc-dash-value span {
    font-size: 16px;
    color: #38bdf8;
    font-weight: 700;
}

/* Sekcja Kroków - Detale Obliczeniowe */
.rk-calc-steps-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 10px 0 0 0;
    text-align: center;
}

.rk-calc-results-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.3s ease;
}

.rk-calc-step-card:hover {
    border-color: #cbd5e1;
}

.rk-calc-step-top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-calc-step-badge {
    background: #f1f5f9;
    color: var(--rk-calc-text);
    font-size: 12px;
    font-weight: 900;
    padding: 4px 10px;
    border-radius: 6px;
    text-transform: uppercase;
}

.rk-calc-step-top h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
}

.rk-calc-formula-display {
    font-family: monospace !important;
    font-size: 13.5px;
    background: #f8fafc;
    padding: 8px 14px;
    border-radius: 8px;
    color: #0f766e;
    border-left: 3px solid var(--rk-calc-accent);
    margin: 4px 0;
}

.rk-calc-step-explain {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-calc-text);
    margin: 0;
}

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-calc-header-block, .rk-calc-body { padding: 30px 20px; }
    .rk-calc-interactive-zone { padding: 25px 20px; gap: 25px; }
    .rk-calc-dashboard { grid-template-columns: 1fr; gap: 15px; padding: 20px; }
    .rk-calc-step-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Algorytmy i obliczenia hydrauliczne w płytach fundamentowych",
    "description": "Profesjonalna ścieżka obliczeniowa zapotrzebowania na moc, przepływ masowy czynnika oraz pojemność zładu wodnego w termicznych płytach fundamentowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-dataset",
    "name": "Stałe fizyczne i przeliczniki pojemnościowe rurociągów PEX-PERT",
    "description": "Zbiór danych stałych stosowanych w algorytmach sanitarnych: ciepło właściwe wody (1,163 Wh/kgK), jednostkowa pojemność rur 16x2 mm (0,113 l/m), współczynnik bezwładności (1,15).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator ogrzewania podłogowego",
      "przepływ masowy podłogówki",
      "pojemność wodna rury pex 16",
      "moc obliczeniowa pętli grzewczej",
      "obliczenia hydrauliczne płyty fundamentowej"
    ],
    "measurementTechnique": "Algorytmy i wzory bilansowania strumieni energii i masy płynów wg wytycznych zawartych w normie PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jednostkowa pojemność rury 16x2: 0,113 litra na metr",
        "Stała ciepła właściwego wody: 1,163 Wh/(kgK)",
        "Naddatek na bezwładność akumulacyjną płyty: 15 procent"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-webapp",
    "name": "Kalkulator Przepływów i Pojemności Płyty Grzewczej",
    "description": "Zaawansowane, interaktywne narzędzie realizujące ścieżkę obliczeniową parametrów hydraulicznych dla ogrzewania płaszczyznowego w fundamencie.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-engineering-calc-app">
    <div class="rk-calc-header-block">
        <h2>Algorytmy obliczeniowy instalacji w płycie (Kalkulator Inżynierski)</h2>
        <p>
            Projektowanie hydrauliki ogrzewania w płycie fundamentowej wymaga ścisłego wyliczenia zapotrzebowania na strumień masowy czynnika grzewczego. Wykorzystaj poniższe narzędzie, aby błyskawicznie sprawdzić parametry dla swojego budynku.
        </p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-interactive-zone">
            
            <div class="rk-calc-inputs-wrapper">
                <div class="rk-calc-row">
                    <div class="rk-calc-label-zone">
                        <label for="rk-input-qpom">Zapotrzebowanie cieplne pomieszczenia z OZC (Q_pom):</label>
                        <span class="rk-calc-current-value" id="rk-lbl-qpom">2000 W</span>
                    </div>
                    <input type="range" class="rk-calc-slider-input" id="rk-input-qpom" min="500" max="5000" step="100" value="2000">
                </div>

                <div class="rk-calc-row">
                    <div class="rk-calc-label-zone">
                        <label for="rk-input-length">Sumaryczna długość rur w obwodach (L):</label>
                        <span class="rk-calc-current-value" id="rk-lbl-length">150 m</span>
                    </div>
                    <input type="range" class="rk-calc-slider-input" id="rk-input-length" min="20" max="800" step="10" value="150">
                </div>
            </div>

            <div class="rk-calc-dashboard">
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Moc Obliczeniowa</span>
                    <div class="rk-calc-dash-value" id="rk-dash-qobl">2300 <span>W</span></div>
                </div>
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Przepływ Masowy</span>
                    <div class="rk-calc-dash-value" id="rk-dash-flow">395.53 <span>kg/h</span></div>
                </div>
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Pojemność Zładu</span>
                    <div class="rk-calc-dash-value" id="rk-dash-vol">16.95 <span>litra</span></div>
                </div>
            </div>
            
        </div>

        <h3 class="rk-calc-steps-title">Podstawa obliczeniowa (dla dociekliwych)</h3>

        <div class="rk-calc-results-panel">
            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 1</span>
                    <h4>Wyznaczenie całkowitej mocy cieplnej pętli</h4>
                </div>
                <div class="rk-calc-formula-display">Q_obl = Q_pom * 1.15</div>
                <p class="rk-calc-step-explain">
                    Moc projektową obwodu podwyższamy o równe 15% z uwagi na olbrzymią bezwładność cieplną grubego, zbrojonego betonu konstrukcyjnego.
                </p>
            </div>

            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 2</span>
                    <h4>Obliczenie wymaganego przepływu masowego</h4>
                </div>
                <div class="rk-calc-formula-display">m = Q_obl / (c_w * Delta_T)</div>
                <p class="rk-calc-step-explain">
                    Wyznaczamy strumień masowy wyrażony w kilogramach na godzinę dla optymalnego schłodzenia czynnika Delta_T = 5 K. Przyjmujemy stałą wartość ciepła właściwego wody c_w = 1.163 Wh/(kg·K).
                </p>
            </div>

            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 3</span>
                    <h4>Wyliczenie całkowitej pojemności wodnej</h4>
                </div>
                <div class="rk-calc-formula-display">V_inst = L * 0.113</div>
                <p class="rk-calc-step-explain">
                    Dla standardowej rury typu PERT/Al/PERT 16&#215;2 mm, pojemność wewnętrzna wynosi dokładnie 0.113 litra na każdy metr bieżący przewodu.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inputQpom = document.getElementById('rk-input-qpom');
    var inputLength = document.getElementById('rk-input-length');
    
    var lblQpom = document.getElementById('rk-lbl-qpom');
    var lblLength = document.getElementById('rk-lbl-length');
    
    var dashQobl = document.getElementById('rk-dash-qobl');
    var dashFlow = document.getElementById('rk-dash-flow');
    var dashVol = document.getElementById('rk-dash-vol');

    function executeCalculations() {
        // Pobranie wartości wejściowych
        var qPomVal = 2000;
        var lengthVal = 150;
        
        if (inputQpom) { qPomVal = parseFloat(inputQpom.value); }
        if (inputLength) { lengthVal = parseFloat(inputLength.value); }

        // Aktualizacja etykiet suwaków
        if (lblQpom) { lblQpom.innerHTML = qPomVal + " W"; }
        if (lblLength) { lblLength.innerHTML = lengthVal + " m"; }

        // Obliczenia
        var qOblVal = qPomVal * 1.15;
        var flowVal = qOblVal / 5.815; // 1.163 * 5
        var volVal = lengthVal * 0.113;

        // Aktualizacja Dashboardu
        if (dashQobl) { dashQobl.innerHTML = qOblVal.toFixed(0) + " <span>W</span>"; }
        if (dashFlow) { dashFlow.innerHTML = flowVal.toFixed(2) + " <span>kg/h</span>"; }
        if (dashVol) { dashVol.innerHTML = volVal.toFixed(2) + " <span>litra</span>"; }
    }

    // Nasłuchiwanie zdarzeń
    if (inputQpom) { inputQpom.addEventListener('input', executeCalculations); }
    if (inputLength) { inputLength.addEventListener('input', executeCalculations); }

    executeCalculations();
});
</script>



<style>
/* Reset i wymuszenie czystego fontu bezszeryfowego */
#rk-execution-failures-app,
#rk-execution-failures-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-light: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-bg: #ffffff;
    --rk-err-warn: #f59e0b;
    --rk-err-crit: #ef4444;
}

.rk-errors-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-err-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-err-border);
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

/* Nagłówek Komponentu */
.rk-err-header-zone {
    padding: 40px 45px 35px;
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-err-header-zone h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-err-header-zone p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Poziomy */
.rk-err-body {
    padding: 35px 45px;
    background: var(--rk-err-light);
}

/* Selektory (Zakładki/Tabs) - Desktop w poziomie, Mobile w pionie */
.rk-err-selectors {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 30px;
}

@media (min-width: 768px) {
    .rk-err-selectors {
        flex-direction: row;
    }
}

.rk-err-btn {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-err-btn:hover {
    border-color: var(--rk-err-warn);
    box-shadow: 0 8px 15px -3px rgba(245, 158, 11, 0.1);
    transform: translateY(-2px);
}

.rk-err-btn.active {
    border-color: var(--rk-err-crit);
    background: #fff5f5;
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.15);
    transform: translateY(0);
}

.rk-err-btn-num {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #f1f5f9;
    color: var(--rk-err-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 15px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-err-btn.active .rk-err-btn-num {
    background: var(--rk-err-crit);
    color: #ffffff;
}

.rk-err-btn-title {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--rk-err-dark);
    line-height: 1.4;
}

/* Ekran Wizualizacji i Detali (Złamana ściana tekstu, usunięta sekcja SVG) */
.rk-err-display-screen {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-err-details h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-err-crit);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-err-details p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0 0 15px 0;
}

.rk-err-details strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

.rk-err-details ul {
    margin: 0;
    padding-left: 20px;
    font-size: 14.5px;
    color: #475569;
}

.rk-err-details li {
    margin-bottom: 10px;
    line-height: 1.6;
}

.rk-err-details a {
    color: var(--rk-err-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

/* Responsywność Mobile (dopieszczenie) */
@media (max-width: 768px) {
    .rk-err-header-zone, .rk-err-body { padding: 30px 20px; }
    .rk-err-display-screen { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Najczęstsze błędy wykonawcze przy montażu ogrzewania w fundamencie",
    "description": "Przewodnik inżynierski piętnujący kardynalne błędy wykonawcze podczas montażu ogrzewania podłogowego w płytach fundamentowych. Brak prób szczelności, zła głębokość rur, brak dylatacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-dataset",
    "name": "Ewidencja awaryjności i patologii wykonawczych w monolitach grzewczych",
    "description": "Zbiór danych empirycznych określający fizyczne konsekwencje błędów: skoki ciśnienia niszczące strukturę rury, straty ciepła w gruncie przez złą głębokość, naprężenia ścinające jastrychów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bledy montazowe ogrzewania podlogowego",
      "proba szczelnosci podlogowki w plycie",
      "glebokosc rur w plycie fundamentowej",
      "brak dylatacji ogrzewania podlogowego",
      "uszkodzenie rur podczas zalewania betonu"
    ],
    "measurementTechnique": "Ekspertyzy techniczne z użyciem kamer termowizyjnych oraz analizy naprężeń mechanicznych betonu zgodnie z kryteriami normy DIN 4726.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalne ciśnienie próby normatywnej: 0,6 MPa (6 bar)",
        "Optymalne osadzenie przewodów: 5 do 7 cm od górnej krawędzi",
        "Opóźnienie termiczne przy błędnym montażu: 12 do 24 godziny opóźnienia"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-webapp",
    "name": "Interaktywny Analizator Patologii Wykonawczych",
    "description": "Aplikacja symulująca proces powstawania uszkodzeń mechanicznych i strat energetycznych w strukturze nośnej termicznej płyty fundamentowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-container" id="rk-execution-failures-app">
    <div class="rk-err-header-zone">
        <h2>Najczęstsze błędy wykonawcze przy montażu ogrzewania w fundamencie</h2>
        <p>
            Błędy popełnione podczas montażu rur w płycie fundamentowej są niemożliwe do skorygowania po związaniu betonu konstrukcyjnego. Wybierz zakładkę, aby poznać inżynierskie konsekwencje patologii wykonawczych.
        </p>
    </div>

    <div class="rk-err-body">
        
        <div class="rk-err-selectors">
            <button class="rk-err-btn active" id="rk-ebtn-1">
                <div class="rk-err-btn-num">1</div>
                <span class="rk-err-btn-title">Brak próby ciśnieniowej przy wylewaniu</span>
            </button>
            <button class="rk-err-btn" id="rk-ebtn-2">
                <div class="rk-err-btn-num">2</div>
                <span class="rk-err-btn-title">Złe, zbyt głębokie pozycjonowanie rur</span>
            </button>
            <button class="rk-err-btn" id="rk-ebtn-3">
                <div class="rk-err-btn-num">3</div>
                <span class="rk-err-btn-title">Całkowity brak dylatacji konstrukcyjnych</span>
            </button>
        </div>

        <div class="rk-err-display-screen" id="rk-err-screen">
            <div class="rk-err-details" id="rk-err-details-text">
                <h3>Katastrofalne uszkodzenie rur podczas zalewania betonu</h3>
                <p>
                    Rezygnacja z procedury, jaką jest profesjonalna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności podłogówki w płycie</a> to czysta rosyjska ruletka. Rury grzewcze muszą być bezwzględnie napompowane sprężonym powietrzem lub medium wodnym do poziomu, który definiuje <strong>ciśnienie normatywne proby cisnieniowej</strong>, czyli minimum 0,6 MPa (6 bar).
                </p>
                <ul>
                    <li>Manometr musi być stale kontrolowany przez kierownika budowy w trakcie pracy pompy.</li>
                    <li>Agresywne uderzenie wibratora buławowego potrafi bez śladu zmiażdżyć lub rozszczelnić strukturę rury.</li>
                    <li>Bez ciśnienia wstępnego wewnątrz przewodu, te <strong>bledy montazowe ogrzewania podlogowego</strong> wykryjesz dopiero zimą, gdy zabetonowany monolit zacznie przeciekać.</li>
                </ul>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-ebtn-1');
    var btn2 = document.getElementById('rk-ebtn-2');
    var btn3 = document.getElementById('rk-ebtn-3');
    
    var detailsBox = document.getElementById('rk-err-details-text');

    function resetActiveStates() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3>Katastrofalne uszkodzenie rur podczas zalewania betonu</h3>' +
                    '<p>Rezygnacja z procedury, jaką jest profesjonalna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności podłogówki w płycie</a> to czysta rosyjska ruletka. Rury grzewcze muszą być bezwzględnie napompowane sprężonym powietrzem lub medium wodnym do poziomu, który definiuje <strong>ciśnienie normatywne proby cisnieniowej</strong>, czyli minimum 0,6 MPa (6 bar).</p>' +
                    '<ul>' +
                    '<li>Manometr musi być stale kontrolowany przez kierownika budowy w trakcie pracy pompy.</li>' +
                    '<li>Agresywne uderzenie wibratora buławowego potrafi bez śladu zmiażdżyć lub rozszczelnić strukturę rury.</li>' +
                    '<li>Bez ciśnienia wstępnego wewnątrz przewodu, te <strong>bledy montazowe ogrzewania podlogowego</strong> wykryjesz dopiero zimą, gdy zabetonowany monolit zacznie przeciekać.</li>' +
                    '</ul>';
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3 style="color: var(--rk-err-warn);">Potężny drenaż energetyczny i opóźnienie grzewcze</h3>' +
                    '<p>Złe, zbyt niskie ułożenie pętli w grubości betonu to kluczowa przyczyna strat dolnych. Projektowana <strong>glebokosc rur w plycie fundamentowej</strong> powinna wynosić sztywne 5-7 cm od górnej powierzchni. Przewody muszą być stabilnie powiązane ze stalową kratownicą siatki zbrojeniowej.</p>' +
                    '<ul>' +
                    '<li>Ułożenie pętli na samym dnie konstrukcji, tuż przy hydroizolacji XPS, drastycznie zwiększa transfer ciepła bezpośrednio w grunt pod budynkiem.</li>' +
                    '<li>Taka patologia wykonawcza diametralnie wydłuża czas reakcji systemu i sprawia, że nominalna <strong>bezwladnosc termiczna plyty grzewczej</strong> generuje dodatkowe 12-24 godziny opóźnienia w ogrzewaniu pomieszczeń.</li>' +
                    '</ul>';
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3>Pękanie posadzki i mechaniczne ścinanie rurociągów</h3>' +
                    '<p>Powszechny <strong>brak dylatacji ogrzewania podlogowego</strong> przy ścianach konstrukcyjnych i przejściach komunikacyjnych to prosta droga do katastrofy budowlanej. Choć fundament tworzy potężną płytę, brak elastycznych taśm brzegowych generuje niszczycielskie naprężenia fizyczne.</p>' +
                    '<ul>' +
                    '<li>Zgodnie z parametrami, które narzuca <strong>norma din 4726 dylatacje</strong> obwodowe muszą bezwzględnie oddzielać monolit grzewczy od pionowych przegród nośnych.</li>' +
                    '<li>Brak zachowania tej zasady skutkuje niekontrolowanym pękaniem wykończeniowych warstw posadzkowych oraz trwałym zerwaniem rur przechodzących przez strefy otworów drzwiowych bez elastycznych peszli ochronnych.</li>' +
                    '</ul>';
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-design-project-app,
#rk-design-project-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-dp-dark: #0f172a;
    --rk-dp-blue: #0284c7;
    --rk-dp-light: #f8fafc;
    --rk-dp-border: #e2e8f0;
    --rk-dp-text: #334155;
    --rk-dp-bg: #ffffff;
    --rk-dp-success: #10b981;
    --rk-dp-warning: #f59e0b;
    --rk-dp-danger: #ef4444;
}

.rk-design-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-dp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-dp-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.08);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-dp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-dp-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-dp-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-dp-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Moduł Główny - Układ Jednokolumnowy (Stack) */
.rk-dp-body-stack {
    display: flex;
    flex-direction: column;
}

/* Strefa Interaktywna na pełną szerokość */
.rk-dp-interactive-zone {
    padding: 40px 45px;
    background: var(--rk-dp-light);
    border-bottom: 1px solid var(--rk-dp-border);
}

.rk-dp-interactive-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

/* Na szerokich ekranach suwaki po lewej, zegar po prawej (wewnątrz strefy) */
@media (min-width: 768px) {
    .rk-dp-interactive-grid {
        grid-template-columns: 1.3fr 0.7fr;
        align-items: center;
    }
}

.rk-dp-control-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dp-control-item {
    background: #ffffff;
    border: 1px solid var(--rk-dp-border);
    border-radius: 14px;
    padding: 18px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-dp-item-info h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 4px 0;
}

.rk-dp-item-info p {
    font-size: 13px;
    color: #64748b;
    margin: 0;
}

/* Przełącznik */
.rk-dp-switch {
    position: relative;
    display: inline-block;
    width: 54px;
    height: 28px;
    flex-shrink: 0;
}

.rk-dp-switch input { opacity: 0; width: 0; height: 0; }

.rk-dp-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #cbd5e1;
    transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 28px;
}

.rk-dp-slider:before {
    position: absolute;
    content: "";
    height: 20px; width: 20px;
    left: 4px; bottom: 4px;
    background-color: white;
    transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

input:checked + .rk-dp-slider { background-color: var(--rk-dp-blue); }
input:checked + .rk-dp-slider:before { transform: translateX(26px); }

/* Wskaźnik Statusu */
.rk-dp-status-box {
    background: #ffffff;
    border: 1px solid var(--rk-dp-border);
    border-radius: 16px;
    padding: 30px 25px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-dp-gauge-wrapper {
    position: relative;
    width: 110px; height: 110px;
    margin: 0 auto 15px auto;
}

.rk-dp-gauge-val {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 24px; font-weight: 900; color: var(--rk-dp-dark);
}

.rk-dp-gauge-svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rk-dp-gauge-bg { fill: none; stroke: #f1f5f9; stroke-width: 8; }
.rk-dp-gauge-bar {
    fill: none; stroke: var(--rk-dp-danger); stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 314; stroke-dashoffset: 314;
    transition: stroke-dashoffset 0.6s ease, stroke 0.6s ease;
}

.rk-dp-status-heading {
    font-size: 17px; font-weight: 800; margin: 0 0 10px 0;
}
.rk-dp-status-msg {
    font-size: 14px; line-height: 1.5; color: var(--rk-dp-text); margin: 0;
}

/* Strefa Treści Architektonicznej (Pełna szerokość) */
.rk-dp-content-zone {
    padding: 40px 45px;
    background: #ffffff;
}

.rk-dp-lead-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-dp-text);
    margin: 0 0 30px 0;
}

.rk-dp-lead-text strong {
    color: var(--rk-dp-dark);
    font-weight: 700;
}

/* Karty Tekstowe bez Ikon */
.rk-dp-feature-cards {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dp-feature-card {
    padding: 25px;
    background: #f8fafc;
    border-radius: 12px;
    border-left: 4px solid var(--rk-dp-blue);
    transition: background 0.3s ease;
}

.rk-dp-feature-card:hover {
    background: #f1f5f9;
}

.rk-dp-feature-card h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 10px 0;
}

.rk-dp-feature-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-dp-text);
    margin: 0;
}

.rk-dp-feature-card a {
    color: var(--rk-dp-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Sekcja CTA (Ramka) */
.rk-dp-cta-block {
    background-color: #f4f7f9;
    padding: 50px 40px;
    text-align: center;
    border-top: 1px solid var(--rk-dp-border);
}

.rk-dp-cta-block h3 {
    font-size: 26px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 15px 0;
}

.rk-dp-cta-block p {
    font-size: 16px;
    color: #52606d;
    max-width: 800px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.rk-dp-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background-color: #0488d1;
    color: #ffffff !important;
    font-size: 16px;
    font-weight: 700;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.rk-dp-cta-btn:hover {
    background-color: #036fbc;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -4px rgba(4, 136, 209, 0.4);
}

.rk-dp-cta-btn svg {
    width: 22px;
    height: 22px;
    transition: transform 0.3s ease;
}

.rk-dp-cta-btn:hover svg {
    transform: translateX(4px);
}

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-dp-header, .rk-dp-interactive-zone, .rk-dp-content-zone, .rk-dp-cta-block { padding: 30px 20px; }
    .rk-dp-interactive-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-dp-feature-card { padding: 20px; }
    .rk-dp-cta-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-impact-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jak ogrzewanie w płycie fundamentowej wpływa na projekt ogrzewania podłogowego?",
    "description": "Analiza inżynierska parametrów projektowych dla instalacji grzewczych w termicznych płytach fundamentowych. Rola OZC, oporów hydraulicznych i wentylacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-dataset",
    "name": "Zmienne hydrauliczne i termodynamiczne układów fundamentowych",
    "description": "Zbiór danych technicznych odnośnie bezwładności cieplnej betonu konstrukcyjnego, krytycznych oporów pętli grzewczych oraz strumieni powietrza wentylacyjnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "obliczenia ozc",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "dobór pompy obiegowej do podłogówki",
      "rekuperacja i ogrzewanie podłogowe",
      "bezwładność cieplna w płycie fundamentowej",
      "automatyka pokojowa do podłogówki",
      "zrównoważenie hydrauliczne instalacji"
    ],
    "measurementTechnique": "Algorytmy równoważenia hydraulicznego pętli grzewczych wg kryteriów strat ciśnienia liniowego i miejscowego w rurach zatopionych w monolicie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność cieplna zbrojonej płyty: 12 do 24 godzin opóźnienia",
        "Wymagane zrównoważenie hydrauliczne instalacji dla pomp obiegowych",
        "Korelacja strumienia termicznego z automatyką pokojową do podłogówki"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-webapp",
    "name": "Kalkulator Stabilności Hydrauliczno-Termicznej Płyty Grzewczej",
    "description": "Narzędzie symulujące poziom bezpieczeństwa i poprawności inżynierskiej systemu płaszczyznowego w fundamencie na bazie zmiennych projektowych.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-design-wrapper" id="rk-design-project-app">
    <div class="rk-dp-header">
        <h2>Jak ogrzewanie w płycie fundamentowej wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-dp-intro">
            Zintegrowanie całego układu hydraulicznego z nośnym elementem konstrukcyjnym budynku diametralnie zmienia podejście do planowania. Tradycyjne reguły montażowe jastrychowe tutaj nie obowiązują.
        </p>
    </div>

    <div class="rk-dp-body-stack">
        
        <div class="rk-dp-interactive-zone">
            <div class="rk-dp-interactive-grid">
                
                <div class="rk-dp-control-list">
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Obliczenia cieplne budynku</h4>
                            <p>Brak audytu vs precyzyjne OZC</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-ozc">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Obiegi hydrauliczne</h4>
                            <p>Zwijanie &#8222;na oko&#8221; vs limity oporów</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-hydr">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Wymiana powietrza</h4>
                            <p>Wentylacja pasywna vs rekuperator</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-vent">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                </div>

                <div class="rk-dp-status-box">
                    <div class="rk-dp-gauge-wrapper">
                        <div class="rk-dp-gauge-val" id="rk-dp-gauge-val">20%</div>
                        <svg class="rk-dp-gauge-svg" viewBox="0 0 100 100">
                            <circle class="rk-dp-gauge-bg" cx="50" cy="50" r="45"></circle>
                            <circle class="rk-dp-gauge-bar" id="rk-dp-gauge-bar" cx="50" cy="50" r="45"></circle>
                        </svg>
                    </div>
                    <h4 class="rk-dp-status-heading" id="rk-dp-status-lbl" style="color: var(--rk-dp-danger);">Krytyczne ryzyko usterki</h4>
                    <p class="rk-dp-status-msg" id="rk-dp-status-txt">Brak danych i układanie rur intuicyjnie w głębokim betonie grozi przeciążeniem pompy i trwałym niedogrzaniem.</p>
                </div>
                
            </div>
        </div>

        <div class="rk-dp-content-zone">
            <p class="rk-dp-lead-text">
                Podstawą bezpiecznej realizacji jest pełny audyt techniczny, czyli <strong>obliczenia OZC</strong>. Płyta nośna posiada cechę, którą jest gigantyczna <strong>bezwładność cieplna w płycie fundamentowej</strong> – układ stygnie lub ładuje się przez kilkanaście godzin. Z tego powodu tradycyjna <strong>automatyka pokojowa do podłogówki</strong> staje się w tym wariancie bezużyteczna.
            </p>
            
            <div class="rk-dp-feature-cards">
                <div class="rk-dp-feature-card">
                    <h4>Geometria i układ pętli</h4>
                    <p>Zastosowany <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego przy pompie ciepła</a> musi być stały i ściśle wyliczony na podstawie OZC. Nie ma tu miejsca na błędy wykonawcze, ponieważ zmiana zagęszczenia drastycznie psuje opór cieplny całej przegrody.</p>
                </div>

                <div class="rk-dp-feature-card">
                    <h4>Wydajność obiegowa</h4>
                    <p>Właściwy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">dobór pompy obiegowej do podłogówki</a> jest kluczowy. Urządzenie musi pokonać gigantyczne opory hydrauliczne niezwykle długich, monolitycznych obwodów, zapewniając odpowiedni strumień przepływu masowego.</p>
                </div>

                <div class="rk-dp-feature-card">
                    <h4>Wsparcie termodynamiczne</h4>
                    <p>Mechaniczna <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> tworzą perfekcyjny duet. Centrala wentylacyjna równomiernie i błyskawicznie dystrybuuje zyski cieplne (np. od słońca w salonie) po całej kubaturze domu.</p>
                </div>
            </div>
        </div>
        
    </div>

    <div class="rk-dp-cta-block">
        <h3>Zabetonuj parametry, a nie błędy wykonawcze</h3>
        <p>Termiczna płyta fundamentowa nośna nie wybacza poprawek. Jeden błąd w rozstawie rur lub hydraulice i Twój dom będzie niedogrzany przez dekady. Zamów autorski, precyzyjny projekt inżynierski dopasowany do specyfiki pomp ciepła.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-dp-cta-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <line x1="5" y1="12" x2="19" y2="12"></line>
                <polyline points="12 5 19 12 12 19"></polyline>
            </svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var swO = document.getElementById('rk-dp-sw-ozc');
    var swH = document.getElementById('rk-dp-sw-hydr');
    var swV = document.getElementById('rk-dp-sw-vent');
    
    var gVal = document.getElementById('rk-dp-gauge-val');
    var gBar = document.getElementById('rk-dp-gauge-bar');
    var sLbl = document.getElementById('rk-dp-status-lbl');
    var sTxt = document.getElementById('rk-dp-status-txt');

    function updateDpApp() {
        var points = 20;
        
        if (swO) { if (swO.checked === true) { points = points + 30; } }
        if (swH) { if (swH.checked === true) { points = points + 30; } }
        if (swV) { if (swV.checked === true) { points = points + 20; } }

        // Obwód koła dla r=45 -> 2 * PI * 45 = 282.7 (przyjmujemy 314 jako wartość startową SVG viewboxa)
        // Koryguję obwód dla r=45, r=45 -> c = 282.7
        // W CSS mamy stroke-dasharray: 314 dla r=50! Koryguję promień w HTML na r=50 i dostosowuję algorytm
        var offset = 314 - (314 * points / 100);
        
        if (gBar) { gBar.style.strokeDashoffset = offset; }
        if (gVal) { gVal.innerHTML = points + "%"; }

        if (points === 20) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-danger)"; }
            if (sLbl) {
                sLbl.innerHTML = "Krytyczne ryzyko usterki";
                sLbl.style.color = "var(--rk-dp-danger)";
            }
            if (sTxt) { sTxt.innerHTML = "Brak danych i układanie rur intuicyjnie w głębokim betonie grozi przeciążeniem pompy i trwałym niedogrzaniem."; }
        }
        
        if (points === 50) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-warning)"; }
            if (sLbl) {
                sLbl.innerHTML = "Niestabilność hydrauliczna";
                sLbl.style.color = "var(--rk-dp-warning)";
            }
            if (sTxt) { sTxt.innerHTML = "Brak korelacji wszystkich parametrów pętli wygeneruje potężne straty i uniemożliwi wyregulowanie rotametrów."; }
        }

        if (points === 80) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-blue)"; }
            if (sLbl) {
                sLbl.innerHTML = "Standard bezpieczny";
                sLbl.style.color = "var(--rk-dp-blue)";
            }
            if (sTxt) { sTxt.innerHTML = "Układ wodny jest poprawny inżyniersko. Do pełnej dystrybucji zysków cieplnych brakuje tylko centrali nawiewnej."; }
        }

        if (points === 100) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-success)"; }
            if (sLbl) {
                sLbl.innerHTML = "Perfekcyjny monolit";
                sLbl.style.color = "var(--rk-dp-success)";
            }
            if (sTxt) { sTxt.innerHTML = "Maksymalna sprawność SCOP. Fizyka budowli i hydraulika idealnie ze sobą współpracują. Instalacja gotowa na pokolenia."; }
        }
    }

    if (swO) { swO.addEventListener('change', updateDpApp); }
    if (swH) { swH.addEventListener('change', updateDpApp); }
    if (swV) { swV.addEventListener('change', updateDpApp); }

    updateDpApp();
});
</script>



<style>
/* Wymuszenie czystego fontu i pełen reset */
#rk-casestudy-app,
#rk-casestudy-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-darker: #080f1e;
    --rk-cs-blue: #0284c7;
    --rk-cs-light: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-bg: #ffffff;
    --rk-cs-danger: #ef4444;
    --rk-cs-warning: #f59e0b;
    --rk-cs-success: #10b981;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-cs-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Nagłówek Sekcji */
.rk-cs-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-cs-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-cs-subtitle {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Metryczka Inwestycji */
.rk-cs-client-badge {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 25px;
}

.rk-cs-tag {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #e0f2fe;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13.5px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Sekcja Główna - Układ Jednokolumnowy */
.rk-cs-body {
    padding: 35px 45px;
    background: var(--rk-cs-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Kontrolki wyboru etapów (Segmented Controls) */
.rk-cs-steps-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-cs-steps-nav {
        flex-direction: row;
    }
}

.rk-cs-step-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 18px 15px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-cs-step-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
}

.rk-cs-step-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-cs-blue);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-cs-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e2e8f0;
    color: var(--rk-cs-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-cs-step-btn.active .rk-cs-step-num {
    background: var(--rk-cs-blue);
    color: #ffffff;
}

.rk-cs-step-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.rk-cs-step-title {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    transition: color 0.3s;
}

.rk-cs-step-btn.active .rk-cs-step-title {
    color: var(--rk-cs-blue);
}

/* Dashboard Danych (Zmieniający się z etapami) */
.rk-cs-dashboard {
    background: var(--rk-cs-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-cs-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-cs-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-cs-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-cs-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
}

.rk-cs-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Opisowa Case Study */
.rk-cs-story-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 30px;
    border-left: 5px solid var(--rk-cs-success);
    transition: border-color 0.3s ease;
}

.rk-cs-story-card h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-cs-story-card p {
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--rk-cs-text);
    margin: 0 0 15px 0;
}

.rk-cs-story-card p:last-child {
    margin: 0;
}

.rk-cs-story-card strong {
    color: var(--rk-cs-dark);
    font-weight: 700;
}

/* Czyste Kafelki z Wnioskami (zamiast ściany tekstu poniżej) */
.rk-cs-insights-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

.rk-cs-insight-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-cs-insight-block {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-cs-blue);
}

.rk-cs-insight-block h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 10px 0;
}

.rk-cs-insight-block p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-cs-text);
    margin: 0;
}

.rk-cs-insight-block strong {
    color: var(--rk-cs-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-body, .rk-cs-insights-zone { padding: 30px 20px; }
    .rk-cs-story-card { padding: 25px 20px; }
    .rk-cs-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-cs-dash-value { font-size: 22px; }
}

@media (max-width: 480px) {
    .rk-cs-dashboard { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Case Study: Termiczna Płyta Fundamentowa 135 m² (Lębork, woj. pomorskie)",
    "description": "Analiza inżynierska przypadku. Porównanie kosztów inwestycji i optymalizacji OZC dla inwestora z województwa pomorskiego budującego dom o powierzchni 135 m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-dataset",
    "name": "Audyt opłacalności fundamentu dla domu jednorodzinnego 135m2 w warunkach pomorskich",
    "description": "Baza danych finansowo-technicznych obrazująca przejście od kosztorysów ław tradycyjnych do monolitycznej płyty fundamentowej. Zawiera redukcję kosztów jastrychu i izolacji EPS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy opłaca się płyta z podłogówką",
      "koszt płyty fundamentowej 130m2 pomorskie",
      "projekt ogrzewania podłogowego dla pompy ciepła",
      "zapotrzebowanie cieplne ozc lębork",
      "różnica w cenie płyta a ławy fundamentowe"
    ],
    "measurementTechnique": "Realna wycena wykonawcza B2C połączona z bilansem cieplnym OZC dla budynku zlokalizowanego w wietrznej strefie klimatycznej Pomorza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt alternatywny: Eliminacja osobnych wylewek maszynowych i piaskowania",
        "Współczynnik przenikania U z optymalizacją XPS: Osiągnięcie normy energooszczędnej",
        "Rozwiązanie techniczne: Rury 16mm w rozstawie co 15 cm z zagęszczeniem brzegowym"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-webapp",
    "name": "Oś Czasu Projektu - Interaktywne Case Study",
    "description": "Narzędzie prezentacyjne pozwalające na śledzenie ewolucji kosztów i decyzji inżynierskich w procesie projektowania instalacji HVAC dla konkretnej inwestycji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-wrapper" id="rk-casestudy-app">
    
    <div class="rk-cs-header">
        <h2>Case Study: Od wątpliwości do najwyższej efektywności cieplnej</h2>
        <p class="rk-cs-subtitle">
            Prześledź na żywo drogę decyzyjną naszego klienta, który weryfikował opłacalność zintegrowanej płyty grzewczej dla swojego nowo budowanego domu.
        </p>
        <div class="rk-cs-client-badge">
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                Inwestor: Tomasz
            </span>
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                Lokalizacja: Lębork (woj. pomorskie)
            </span>
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
                Powierzchnia: 135 m²
            </span>
        </div>
    </div>

    <div class="rk-cs-body">
        
        <div class="rk-cs-steps-nav">
            <button class="rk-cs-step-btn active" id="rk-cs-btn-1">
                <div class="rk-cs-step-num">1</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Wątpliwości Kosztowe</span>
                </div>
            </button>
            <button class="rk-cs-step-btn" id="rk-cs-btn-2">
                <div class="rk-cs-step-num">2</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Audyt &#038; Optymalizacja</span>
                </div>
            </button>
            <button class="rk-cs-step-btn" id="rk-cs-btn-3">
                <div class="rk-cs-step-num">3</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Realny Wynik (ROI)</span>
                </div>
            </button>
        </div>

        <div class="rk-cs-dashboard" id="rk-cs-dash-container">
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Początkowa Wycena Wykonawcy</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-cost">79 000 <span>PLN</span></div>
            </div>
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Planowane Źródło Ciepła</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-source">Pompa Ciepła <span>(Wysoki opór)</span></div>
            </div>
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Stan Emocjonalny Inwestora</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-status" style="color: var(--rk-cs-warning);">Wahanie <span>(Koszty)</span></div>
            </div>
        </div>

        <div class="rk-cs-story-card" id="rk-cs-story-box">
            <h3 id="rk-cs-story-title">Dylemat Startowy: Pozorny wzrost kosztów</h3>
            <p id="rk-cs-story-text">
                Pan Tomasz z Lęborka, planujący dom o powierzchni 135 m², zgłosił się do nas z poważnym dylematem. Otrzymał wycenę wykonania termicznej płyty fundamentowej z zatopionym ogrzewaniem podłogowym na kwotę około 79 tys. PLN. Z kolei lokalna ekipa zaproponowała wykonanie tradycyjnych ław fundamentowych za 62 tys. PLN. Na pierwszy rzut oka różnica wydawała się drastyczna, co budziło mocne opory przed nowoczesną technologią na trudnym, wietrznym pomorskim gruncie.
            </p>
        </div>

    </div>

    <div class="rk-cs-insights-zone">
        <div class="rk-cs-insight-grid">
            <div class="rk-cs-insight-block">
                <h4>Fikcja &#8222;Tańszych&#8221; Ław Fundamentowych</h4>
                <p>
                    Przypadek Pana Tomasza doskonale obrazuje błąd w potocznym kalkulowaniu inwestycji. Tradycyjna wycena ław (62 tys. PLN) <strong>nie uwzględniała</strong> późniejszego zakupu i układania styropianu (EPS) na chudziaku, rur do podłogówki oraz wylania docelowej wylewki jastrychowej. Po zsumowaniu tych elementów koszt &#8222;taniej&#8221; metody poszybował do ponad 81 tys. PLN, czyniąc termiczną płytę nośną rozwiązaniem tańszym i szybszym o ponad 3 tygodnie prac.
                </p>
            </div>
            <div class="rk-cs-insight-block">
                <h4>Kluczowa rola mikroklimatu (woj. pomorskie)</h4>
                <p>
                    Lębork znajduje się w strefie o podwyższonej wilgotności i chłodnych, morskich wiatrach. Rezygnacja z grubego izolatora XPS (co proponowała ekipa od ław) i pozostawienie mostków termicznych na styku ściany i fundamentu naraziłoby inwestora na drastyczne wychłodzenie dolnych partii ścian. Profesjonalny <strong>projekt ogrzewania podłogowego w płycie</strong> zapewnił współczynnik przenikania ciepła równy U = 0,10 W/(m²·K), definitywnie odcinając wilgoć i zimno od reszty budynku.
                </p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-cs-btn-1');
    var btn2 = document.getElementById('rk-cs-btn-2');
    var btn3 = document.getElementById('rk-cs-btn-3');
    
    var dashContainer = document.getElementById('rk-cs-dash-container');
    var valCost = document.getElementById('rk-cs-val-cost');
    var valSource = document.getElementById('rk-cs-val-source');
    var valStatus = document.getElementById('rk-cs-val-status');
    
    var storyBox = document.getElementById('rk-cs-story-box');
    var storyTitle = document.getElementById('rk-cs-story-title');
    var storyText = document.getElementById('rk-cs-story-text');

    function clearStates() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(valCost) { valCost.innerHTML = '79 000 <span>PLN</span>'; }
            if(valSource) { valSource.innerHTML = 'Pompa Ciepła <span>(Wysoki opór)</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Wahanie <span>(Koszty)</span>'; 
                valStatus.style.color = 'var(--rk-cs-warning)';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-warning)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Dylemat Startowy: Pozorny wzrost kosztów'; }
            if(storyText) { 
                storyText.innerHTML = 'Pan Tomasz z Lęborka, planujący dom o powierzchni 135 m², zgłosił się do nas z poważnym dylematem. Otrzymał wycenę wykonania termicznej płyty fundamentowej z zatopionym ogrzewaniem podłogowym na kwotę około 79 tys. PLN. Z kolei lokalna ekipa zaproponowała wykonanie tradycyjnych ław fundamentowych za 62 tys. PLN. Na pierwszy rzut oka różnica wydawała się drastyczna, co budziło mocne opory przed nowoczesną technologią na trudnym, wietrznym pomorskim gruncie.'; 
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(valCost) { valCost.innerHTML = 'Pełne OZC <span>135 m²</span>'; }
            if(valSource) { valSource.innerHTML = 'Rura 16mm <span>(Rozstaw 15 cm)</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Audyt <span>W toku</span>'; 
                valStatus.style.color = '#38bdf8';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Wejście Inżynierii: Eliminacja błędów przed zalaniem'; }
            if(storyText) { 
                storyText.innerHTML = 'Zleciliśmy wykonanie twardych obliczeń (Projektowe Obciążenie Cieplne - OZC). Okazało się, że układając rury 16 mm w rygorystycznym rozstawie co 15 cm i stosując płytę grubości 20 cm, uzyskamy gigantyczny monolit akumulacyjny. Skorygowaliśmy projekt stref przyokiennych w salonie (duże witryny od strony południowej) zagęszczając pętle do 10 cm. Wdrożono rygorystyczny wymóg wielogodzinnej próby ciśnieniowej na 6 barów podczas całego procesu betonowania.'; 
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-success)'; }
            if(valCost) { valCost.innerHTML = 'Zysk: ~450 <span>PLN/rok</span>'; }
            if(valSource) { valSource.innerHTML = 'Czas Budowy: <span>-3 Tygodnie</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Sukces <span>Pasywny monolit</span>'; 
                valStatus.style.color = 'var(--rk-cs-success)';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-success)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Finał: Niższe koszty, wyższy komfort i bezpieczeństwo na dekady'; }
            if(storyText) { 
                storyText.innerHTML = 'Po przeliczeniu ukrytych kosztów ław fundamentowych (izolacje, wylewki maszynowe, instalacja hydrauliczna nakładana później), ostateczny rachunek wykazał, że płyta akumulacyjna opłaciła się już w momencie budowy stanu zero. Dodatkowo, dzięki wyeliminowaniu mostków termicznych i pracy pompy ciepła na niskim zasilaniu (32°C), rachunki Pana Tomasza za ogrzewanie zimowe są co roku niższe o kilkaset złotych w porównaniu do okolicznych domów na tradycyjnych ławach.'; 
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i pełna kontrola typografii */
#rk-author-authority-app,
#rk-author-authority-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-darker: #080f1e;
    --rk-auth-blue: #0284c7;
    --rk-auth-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-bg: #ffffff;
    --rk-auth-success: #10b981;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-auth-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-auth-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Sekcja Nagłówka H2 */
.rk-auth-header-zone {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-auth-header-zone h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

/* Wizualna Wizytówka Autora - Jednokolumnowy Stack */
.rk-auth-profile-card {
    background: var(--rk-auth-light);
    padding: 30px 45px;
    border-bottom: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
    align-items: center;
    text-align: center;
}

@media (min-width: 768px) {
    .rk-auth-profile-card {
        flex-direction: row;
        text-align: left;
        align-items: flex-start;
    }
}

.rk-auth-avatar-frame {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 16px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    flex-shrink: 0;
}

.rk-auth-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rk-auth-bio-info {
    flex: 1;
}

.rk-auth-name-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-auth-dark);
    margin: 0 0 6px 0;
}

.rk-auth-position {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 15px 0;
}

.rk-auth-short-bio {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-auth-text);
    margin: 0 0 18px 0;
}

/* Przyciski Społecznościowe */
.rk-auth-social-links {
    display: flex;
    gap: 12px;
    justify-content: center;
}

@media (min-width: 768px) {
    .rk-auth-social-links {
        justify-content: flex-start;
    }
}

.rk-auth-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none !important;
    border: 1px solid var(--rk-auth-border);
    background: #ffffff;
    color: var(--rk-auth-text);
}

.rk-auth-social-btn:hover {
    background: #f1f5f9;
    color: var(--rk-auth-dark);
    border-color: #cbd5e1;
}

/* Strefa Interaktywnego Wyboru Złotych Zasad */
.rk-auth-interactive-zone {
    padding: 35px 45px;
    background: #ffffff;
}

.rk-auth-selectors-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-auth-rule-trigger {
    width: 100%;
    background: var(--rk-auth-light);
    border: 1px solid var(--rk-auth-border);
    border-radius: 14px;
    padding: 18px 20px;
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-auth-rule-trigger:hover {
    border-color: #cbd5e1;
}

.rk-auth-rule-trigger.active {
    background: #f0f9ff;
    border-color: var(--rk-auth-blue);
}

.rk-auth-trigger-text {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-dark);
}

.rk-auth-rule-trigger.active .rk-auth-trigger-text {
    color: var(--rk-auth-blue);
}

/* Ikona statusu */
.rk-auth-trigger-indicator {
    width: 20px;
    height: 20px;
    color: #94a3b8;
    flex-shrink: 0;
}

.rk-auth-rule-trigger.active .rk-auth-trigger-indicator {
    color: var(--rk-auth-blue);
}

/* Panel Wynikowy (Dashboard Komentarza) */
.rk-auth-insight-board {
    background: var(--rk-auth-darker);
    border-radius: 16px;
    padding: 30px;
    border-left: 6px solid var(--rk-auth-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.1);
}

.rk-auth-board-title {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.rk-auth-board-content {
    font-size: 15.5px;
    line-height: 1.75;
    color: #e2e8f0;
    margin: 0;
}

.rk-auth-board-content strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-auth-board-content a {
    color: #38bdf8;
    text-decoration: underline;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-auth-header-zone, .rk-auth-profile-card, .rk-auth-interactive-zone { padding: 30px 20px; }
    .rk-auth-social-links { flex-direction: column; width: 100%; }
    .rk-auth-social-btn { justify-content: center; width: 100%; }
    .rk-auth-insight-board { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Zdaniem Roberta Kucharskiego – Złote zasady instalacji w płycie",
    "description": "Ekspercki komentarz Roberta Kucharskiego na temat projektowania, rozstawu rur oraz kontroli hydraulicznej przy wykonawstwie termicznych płyt fundamentowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Wytyczne inżynieryjne dla betonowych monolitycznych wymienników ciepła",
    "description": "Matryca dopuszczalnych kryteriów wykonawczych: graniczne opory hydrauliczne pomp ciepła, rekuperacja ciepła posadzkowego, wytyczne OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "projektowe obciążenie cieplne ozc",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "dobór pompy obiegowej do podłogówki",
      "rekuperacja i ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Weryfikacja kryteriów fizyki budowli i mechaniki płynów w posadowieniach termicznych zgodnie z normą PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik przenikania przegrody dolnej: U do 0,11 W/m2K",
        "Maksymalny czas bezwładności akumulacyjnej betonu: 24 do 48 godzin",
        "Krytyczny próg oporów hydraulicznych pętli: 20 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Analizator Zasad Inżynierskich Roberta Kucharskiego",
    "description": "Moduł aplikacyjny weryfikujący zgodność założeń wykonawczych z kryteriami poprawności instalacji płaszczyznowych w fundamencie budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-author-authority-app">
    <div class="rk-auth-header-zone">
        <h2>Zdaniem Roberta Kucharskiego – Złote zasady instalacji w płycie</h2>
    </div>

    <div class="rk-auth-profile-card">
        <div class="rk-auth-avatar-frame">
            <img decoding="async" class="rk-auth-avatar-img" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski">
        </div>
        <div class="rk-auth-bio-info">
            <div class="rk-auth-name-title">Robert Kucharski</div>
            <div class="rk-auth-position">Specjalista HVAC &amp; Założyciel Projekt-Ogrzewania.pl</div>
            <p class="rk-auth-short-bio">
                Projektant i praktyk z dorobkiem ponad 1000 zrealizowanych systemów płaszczyznowych. Na co dzień demaskuję mity instalatorskie i uczę inwestorów, jak budować bez ściemy w oparciu o twarde dane, fizykę budowli oraz rygorystyczne normy sanitarne.
            </p>
            <div class="rk-auth-social-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-auth-social-btn" target="_blank" rel="noopener">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn Profile
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-auth-social-btn" target="_blank" rel="noopener">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-4h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook Strona
                </a>
            </div>
        </div>
    </div>

    <div class="rk-auth-interactive-zone">
        <div class="rk-auth-selectors-stack">
            <button class="rk-auth-rule-trigger active" id="rk-rtrig-1">
                <span class="rk-auth-trigger-text">Reguła 1: Absolutny prymat inżynierskiego OZC</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-auth-rule-trigger" id="rk-rtrig-2">
                <span class="rk-auth-trigger-text">Reguła 2: Bezkompromisowa weryfikacja szczelności monolitu</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-auth-rule-trigger" id="rk-rtrig-3">
                <span class="rk-auth-trigger-text">Reguła 3: Ścisła koordynacja hydrauliki i źródła ciepła</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
        </div>

        <div class="rk-auth-insight-board">
            <div class="rk-auth-board-title" id="rk-auth-board-lbl">Komentarz Roberta Kucharskiego</div>
            <p class="rk-auth-board-content" id="rk-auth-board-txt">
                Prawidłowe <strong>projektowanie ogrzewania w płycie fundamentowej</strong> kategorycznie wyklucza intuicyjne działanie na placu budowy. Kluczowym dokumentem jest rzetelne, pełne <strong>projektowe obciążenie cieplne OZC</strong> każdego pokoju z osobna. Ponieważ betonowa konstrukcja wykazuje potężną cechę, jaką jest gigantyczna <strong>bezwładność cieplna monolitu betonowego</strong>, grubość rur i zagęszczenie obwodów muszą idealnie równoważyć straty energii, czyniąc tradycyjne termostaty ścienne zbędnymi.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var t1 = document.getElementById('rk-rtrig-1');
    var t2 = document.getElementById('rk-rtrig-2');
    var t3 = document.getElementById('rk-rtrig-3');
    
    var bTxt = document.getElementById('rk-auth-board-txt');
    var bLbl = document.getElementById('rk-auth-board-lbl');

    function resetTriggers() {
        if(t1) { t1.classList.remove('active'); }
        if(t2) { t2.classList.remove('active'); }
        if(t3) { t3.classList.remove('active'); }
    }

    if(t1) {
        t1.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Komentarz Roberta Kucharskiego'; }
            if(bTxt) {
                bTxt.innerHTML = 'Prawidłowe <strong>projektowanie ogrzewania w płycie fundamentowej</strong> kategorycznie wyklucza intuicyjne działanie na placu budowy. Kluczowym dokumentem jest rzetelne, pełne <strong>projektowe obciążenie cieplne OZC</strong> każdego pokoju z osobna. Ponieważ betonowa konstrukcja wykazuje potężną cechę, jaką jest gigantyczna <strong>bezwładność cieplna monolitu betonowego</strong>, grubość rur i zagęszczenie obwodów muszą idealnie równoważyć straty energii, czyniąc tradycyjne termostaty ścienne zbędnymi.';
            }
        });
    }

    if(t2) {
        t2.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Procedura Bezpieczeństwa'; }
            if(bTxt) {
                bTxt.innerHTML = 'Obowiązkowa, wielogodzinna <strong>próba szczelności płyty grzewczej</strong> pod sztywnym ciśnieniem 0,6 MPa (6 bar) musi trwać przez cały okres pracy pompy do betonu. Brak nadzoru nad manometrem podczas wylewania monolitu to sabotaż. Każde przypadkowe uderzenie wibratora buławowego może doprowadzić do ukrytego rozszczelnienia, którego naprawa po związaniu mieszanki nośnej będzie całkowicie niemożliwa.';
            }
        });
    }

    if(t3) {
        t3.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Optymalizacja Hydrauliczna'; }
            if(bTxt) {
                bTxt.innerHTML = 'Wysoka <strong>efektywność pompy ciepła z płytą fundamentową</strong> wymaga utrzymania jak najniższej krzywej grzewczej (zasilanie rzędu 30-35 stopni). Aby to osiągnąć, należy zastosować stały, zweryfikowany inżyniersko, <strong>prawidłowy rozstaw rur w fundamencie</strong> co 15 cm. Ponadto wymagany jest precyzyjny <strong>profesjonalny projekt ogrzewania płaszczyznowego</strong>, który określi optymalny <strong>dobór pompy obiegowej do podłogówki</strong>, zapobiegając dławieniu strumienia masowego czynnika.';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-hover: #0369a1;
    --rk-faq-light: #f8fafc;
    --rk-faq-border: #cbd5e1;
    --rk-faq-text: #334155;
    --rk-faq-bg: #ffffff;
    --rk-faq-accent: #059669;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-faq-border);
    box-shadow: 0 15px 30px -10px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-faq-header-block {
    padding: 40px 45px 25px;
    background: linear-gradient(145deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-faq-header-block h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-faq-header-block h3 {
    font-size: 16px;
    font-weight: 500;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

/* Układ Główny - Split Screen na Desktop */
.rk-faq-body {
    display: grid;
    grid-template-columns: 1fr;
    background: #ffffff;
}

@media (min-width: 992px) {
    .rk-faq-body {
        grid-template-columns: 1.2fr 0.8fr;
        gap: 20px;
        padding: 30px;
        background: var(--rk-faq-light);
    }
}

/* Panel Accordionu */
.rk-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
}

@media (min-width: 992px) {
    .rk-faq-accordion {
        padding: 0;
    }
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item:hover {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 20px -10px rgba(2, 132, 199, 0.15);
}

/* Przycisk Wyzwalający */
.rk-faq-trigger {
    width: 100%;
    padding: 20px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.rk-faq-question-text {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-faq-item.active .rk-faq-question-text {
    color: var(--rk-faq-blue);
}

/* Ikona SVG */
.rk-faq-icon-svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--rk-faq-gray);
}

.rk-faq-item.active .rk-faq-icon-svg {
    transform: rotate(180deg);
    color: var(--rk-faq-blue);
}

/* Zawartość Odpowiedzi */
.rk-faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-faq-content-inner {
    padding: 0 20px 20px 20px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-faq-text);
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-content-inner {
    border-top-color: #f1f5f9;
}

/* Ukryte tagi nasycające pod roboty AI - eleganckie wplecenie fraz */
.rk-seo-inline-phrase {
    font-weight: 600;
    color: var(--rk-faq-dark);
}

/* Panel Boczny Inżynierski (Desktop Only) */
.rk-faq-sidebar {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    padding: 25px;
    align-self: start;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

@media (min-width: 992px) {
    .rk-faq-sidebar {
        display: block;
    }
}

.rk-sidebar-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-faq-blue);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-sidebar-descr {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-faq-text);
    margin: 0;
}

.rk-faq-item a {
    color: var(--rk-faq-blue);
    text-decoration: underline;
    font-weight: 600;
}

.rk-faq-item a:hover {
    color: var(--rk-faq-blue-hover);
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Często zadawane pytania (FAQ) – Ogrzewanie podłogowe w płycie fundamentowej",
    "description": "Odpowiedzi na kluczowe pytania inwestorów dotyczące montażu rur grzewczych, doboru betonu konstrukcyjnego oraz procedur bezpieczeństwa w termicznych płytach fundamentowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-page",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można stosować rury PE-RT/Al/PE-RT w płycie fundamentowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, są one w pełni rekomendowane pod warunkiem posiadania bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726. Warstwa aluminium dodatkowo chroni przed dyfuzją tlenu do instalacji i ułatwia profilowanie rur na zbrojeniu."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się ogrzewanie w płycie fundamentowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Czas pierwszego rozruchu i pełnego nagrzania płyty o grubości 20 cm wynosi od 24 do 48 godzin. Wynika to z ogromnej pojemności cieplnej betonu, który działa jak potężny bufor termiczny."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki beton zastosować na płytę grzewczą?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy stosować wyłącznie konstrukcyjny beton towarowy klasy minimum C20/25 lub C25/30 o konsystencji ciekłej (S4/S5), z dodatkiem plastyfikatorów zwiększających przewodność cieplną oraz gęstość mieszanki wokół rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy na płycie fundamentowej z ogrzewaniem można kłaść panele drewniane?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ale opór cieplny paneli wraz z podkładem nie może przekraczać R = 0,15 m²K/W. Zaleca się jednak stosowanie płytek ceramicznych lub gresu, które charakteryzują się najniższym oporem i idealnie przewodzą ciepło."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie w przypadku awarii i wycieku wody w płycie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy zastosowaniu rur bezszwowych, sprawdzonych ciśnieniowo przed zalaniem, ryzyko awarii wynosi blisko 0%. W przypadku mechanicznego przewiercenia płyty, lokalizację wycieku przeprowadza się kamerą termowizyjną, a naprawę wykonuje się poprzez miejscowe skucie betonu i montaż specjalnej mufy prasowanej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-dataset",
    "name": "Fizyka budowli i wytyczne wykonawcze dla termicznych płyt fundamentowych",
    "description": "Baza parametrów technicznych: opór cieplny przegród, normy betonu towarowego, czasy bezwładności termicznej masy betonowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jakie rury do płyty fundamentowej",
      "jaki beton na ogrzewanie podłogowe",
      "czas nagrzewania płyty fundamentowej",
      "panele na płycie fundamentowej z ogrzewaniem",
      "awaria ogrzewania w płycie fundamentowej"
    ],
    "measurementTechnique": "Obliczenia fizykalne oparte na współczynnikach oporu przewodzenia jastrychów i betonu konstrukcyjnego wg normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Graniczny opór cieplny okładzin: R = 0,15 m²K/W",
        "Czas bezwładności cieplnej elementu nośnego: 24 do 48 godzin",
        "Wymagana klasa plastyczności mieszanki: S4 do S5"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-webapp",
    "name": "Walidator Poprawności Parametrów Płyty Grzewczej",
    "description": "Zintegrowany z interfejsem użytkownika system weryfikacji norm budowlanych i parametrów fizycznych dla posadowienia budynków z systemem grzewczym.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header-block">
        <h2>Często zadawane pytania (FAQ)</h2>
        <h3>Ogrzewanie podłogowe w płycie fundamentowej bez tajemnic – wiedza inżynierska w pigułce</h3>
    </div>

    <div class="rk-faq-body">
        <div class="rk-faq-accordion">
            
            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Czy można stosować rury PE-RT/Al/PE-RT w płycie fundamentowej?</span>
                    <svg class="rk-faq-icon-svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Tak, są one w pełni rekomendowane pod warunkiem, że sprawdzisz, czy wybrany system posiada cechę, jaką jest <span class="rk-seo-inline-phrase">bariera antydyfuzyjna evoh w fundamencie</span> zgodna z rygorystyczną normą DIN 4726.</p>
                        <p>Analizując zagadnienie, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">jakie rury do płyty fundamentowej</a> wybrać, warto wiedzieć, że wewnętrzna warstwa aluminium dodatkowo chroni przed szkodliwą dyfuzją tlenu do zładu wodnego instalacji oraz trwale ułatwia ręczne profilowanie i gięcie rur na stalowych siatkach konstrukcyjnych zbrojenia.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Ile czasu nagrzewa się ogrzewanie w płycie fundamentowej?</span>
                    <svg class="rk-faq-icon-svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Nominalny <span class="rk-seo-inline-phrase">czas nagrzania płyty fundamentowej</span> przy pierwszym, technologicznym rozruchu oraz pełnym wygrzaniu masy monolitu o grubości 20 cm wynosi od 24 do 48 godzin.</p>
                        <p>Zjawisko to wynika bezpośrednio z ogromnej akumulacyjności cieplnej masy zbrojonego betonu. Działa on jak potężny, stabilny bufor termiczny, co sprawia, że dobowe wahania temperatur na zewnątrz budynku są całkowicie niewyczuwalne wewnątrz pomieszczeń.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Jaki beton zastosować na płytę grzewczą?</span>
                    <svg class="rk-faq-icon-svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>W procesie wykonawczym należy stosować wyłącznie konstrukcyjny beton towarowy klasy minimum C20/25 lub C25/30. Kluczowy jest parametr określający <span class="rk-seo-inline-phrase">jaki beton na ogrzewanie podłogowe</span> sprawdzi się najlepiej – wymagana jest konsystencja ciekła w klasach S4 lub S5.</p>
                        <p>Mieszanka musi bezwzględnie zawierać dedykowane plastyfikatory chemiczne, które eliminują pęcherze powietrza, podnoszą gęstość strukturalną betonu i gwarantują idealne otoczenie rur grzewczych, maksymalizując przewodność cieplną przegrody dolnej.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Czy na płycie fundamentowej z ogrzewaniem można kłaść panele drewniane?</span>
                    <svg class="rk-faq-icon-svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Tak, montaż jest możliwy, jednak całkowity <span class="rk-seo-inline-phrase">opór cieplny podłogówki w betonie</span> łącznie z wybraną okładziną wierzchnią i podkładem nie może przekroczyć wartości granicznej R = 0,15 m²K/W.</p>
                        <p>Planując <span class="rk-seo-inline-phrase">panele na płycie fundamentowej z ogrzewaniem</span>, warto wybierać produkty dedykowane, montowane najlepiej w systemie klejonym. Jako inżynier polecam jednak gres lub płytki ceramiczne, które cechuje najniższy opór termiczny i najwyższa efektywność radiacji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Co się stanie w przypadku awarii i wycieku wody w płycie?</span>
                    <svg class="rk-faq-icon-svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Przy zachowaniu procedur (rury bezszwowe, ciśnieniowe <span class="rk-seo-inline-phrase">badanie szczelności termicznej płyty</span>) ryzyko usterki wynosi blisko zero. Jeśli jednak nastąpi fizyczna <span class="rk-seo-inline-phrase">awaria ogrzewania w płycie fundamentowej</span> na skutek np. przewiercenia mechanicznego, sytuacja wymaga precyzyjnego działania.</p>
                        <p>Lokalizację wycieku bezbłędnie wskazuje profesjonalna kamera termowizyjna. Naprawę wykonuje się poprzez precyzyjne, punktowe skucie fragmentu betonu, a uszkodzony odcinek rury łączy się na stałe za pomocą specjalistycznej mufy prasowanej o wysokiej odporności mechanicznej.</p>
                    </div>
                </div>
            </div>

        </div>

        <div class="rk-faq-sidebar">
            <div class="rk-sidebar-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Okiem Praktyka
            </div>
            <p class="rk-sidebar-descr">
                Zadaniem sekcji FAQ w standardzie inżynierskim jest rozwianie wątpliwości na bazie liczb i norm, a nie teorii. Płyta grzewcza to monolit pracujący przez dekady. Każda decyzja o doborze betonu plastycznego czy rodzaju rury z barierą EVOH rzutuje bezpośrednio na sprawność hydrauliczną instalacji połączonej z pompą ciepła. Buduj mądrze, opierając się na faktach.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(function(item) {
        var trigger = item.querySelector('.rk-faq-trigger');
        
        if (trigger) {
            trigger.addEventListener('click', function() {
                var content = item.querySelector('.rk-faq-content');
                var isActive = item.classList.contains('active');

                // Zamknięcie wszystkich innych elementów dla czystości interfejsu
                faqItems.forEach(function(otherItem) {
                    otherItem.classList.remove('active');
                    var otherContent = otherItem.querySelector('.rk-faq-content');
                    if (otherContent) {
                        otherContent.style.maxHeight = null;
                    }
                });

                // Jeśli element nie był aktywny, otwieramy go
                if (isActive === false) {
                    item.classList.add('active');
                    if (content) {
                        content.style.maxHeight = content.scrollHeight + "px";
                    }
                }
            });
        }
    });
});
</script>



<style>
:root {
    --rk-base-dark: #0f172a;
    --rk-base-blue: #0284c7;
    --rk-base-blue-light: #e0f2fe;
    --rk-base-green: #059669;
    --rk-base-green-light: #d1fae5;
    --rk-base-red: #dc2626;
    --rk-base-red-light: #fee2e2;
    --rk-base-gray: #64748b;
    --rk-base-border: #cbd5e1;
    --rk-base-bg: #ffffff;
}

.rk-summary-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-base-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-base-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-sum-top {
    padding: 40px 45px 30px;
    background: linear-gradient(145deg, var(--rk-base-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-sum-top h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-sum-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 20px 0;
}

/* Tag Cloud - Długi Ogon */
.rk-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.rk-mat-tag {
    background: rgba(255, 255, 255, 0.1);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid rgba(125, 211, 252, 0.2);
    transition: all 0.3s ease;
}

.rk-mat-tag:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Interaktywny Przełącznik (Aplikacja) */
.rk-interactive-app {
    padding: 40px 45px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-base-border);
}

.rk-toggle-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-toggle-header h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-base-dark);
    margin: 0 0 10px 0;
}

.rk-switch-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-switch-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-base-gray);
    transition: color 0.3s ease;
}

.rk-switch-label.active-red { color: var(--rk-base-red); }
.rk-switch-label.active-green { color: var(--rk-base-green); }

/* Switch UI */
.rk-switch {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 36px;
}

.rk-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-base-red);
    transition: .4s;
    border-radius: 36px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 28px;
    width: 28px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

input:checked + .rk-slider { background-color: var(--rk-base-green); }
input:checked + .rk-slider:before { transform: translateX(34px); }

/* Panele Zawartości */
.rk-panel {
    display: none;
    padding: 30px;
    border-radius: 16px;
    animation: fadeIn 0.5s ease-out forwards;
}

.rk-panel.active { display: block; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-panel-danger {
    background: var(--rk-base-red-light);
    border: 1px solid rgba(220, 38, 38, 0.2);
}

.rk-panel-safe {
    background: var(--rk-base-green-light);
    border: 1px solid rgba(5, 150, 105, 0.2);
}

.rk-panel-grid {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 25px;
    align-items: center;
}

.rk-panel-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-panel h4 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px 0;
}

.rk-panel-danger h4 { color: var(--rk-base-red); }
.rk-panel-safe h4 { color: var(--rk-base-green); }

.rk-panel p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-base-dark);
    margin: 0 0 10px 0;
}

.rk-panel a {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-panel-danger a { color: var(--rk-base-red); }
.rk-panel-safe a { color: var(--rk-base-green); }

/* Sekcja CTA */
.rk-sum-action {
    padding: 40px 45px;
    text-align: center;
    background: #ffffff;
}

.rk-sum-action h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-base-dark);
    margin: 0 0 15px 0;
}

.rk-sum-action p {
    font-size: 16px;
    color: var(--rk-base-gray);
    max-width: 600px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-base-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-cta:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
    border-color: #bae6fd;
}

/* Responsywność - Mobile First dla elementów interaktywnych */
@media (max-width: 768px) {
    .rk-sum-top, .rk-interactive-app, .rk-sum-action { padding: 30px 20px; }
    .rk-panel-grid { grid-template-columns: 1fr; text-align: center; gap: 15px; }
    .rk-panel-icon { margin: 0 auto; width: 60px; height: 60px; }
    .rk-switch-wrapper { flex-direction: column; gap: 15px; }
    .rk-tags-container { justify-content: center; }
    .rk-btn-cta { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Podsumowanie – Ogrzewanie podłogowe w płycie fundamentowej",
    "description": "Termiczna płyta fundamentowa to zaawansowany system grzewczy. Wymaga rygorystycznych obliczeń OZC i prób ciśnieniowych, ponieważ zabetonowanie pętli uniemożliwia późniejsze poprawki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Parametry graniczne instalacji grzewczej w betonie",
    "description": "Zestawienie wymogów technicznych dla ogrzewania w płycie fundamentowej: długość pętli, testy szczelności i zasady obliczeniowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "projekt ogrzewania podłogowego dla pompy ciepła",
      "obliczenia ozc dla płyty fundamentowej",
      "próba ciśnieniowa podłogówki przed wylewką",
      "maksymalna długość pętli w betonie"
    ],
    "measurementTechnique": "Weryfikacja hydrauliczna układu w oparciu o projekt instalacyjny oraz normatywne testy ciśnieniowe przed procesem betonowania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna długość pętli grzewczej: do 100 m",
        "Wymagane obliczenia: Projektowe Obciążenie Cieplne OZC",
        "Próba szczelności: bezwzględnie wymagana przed i w trakcie wylewania betonu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Symulator Konsekwencji Montażowych",
    "description": "Interaktywny panel demonstrujący różnicę pomiędzy montażem intuicyjnym a rygorystycznym podejściem inżynierskim przy zalewaniu instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-module" id="fundament-sum-app">
    <div class="rk-sum-top">
        <h2>Podsumowanie</h2>
        <p class="rk-sum-intro">
            <strong>Ogrzewanie podłogowe w płycie fundamentowej to najwyższy ewolucyjnie stopień niskotemperaturowych systemów grzewczych</strong> dedykowanych dla nowoczesnego, energooszczędnego budownictwa. Kluczem do bezwzględnego sukcesu tej inwestycji jest całkowite odrzucenie metod montażu &#8222;na oko&#8221; i zastąpienie ich rygorystyczną inżynierią instalacyjną.
        </p>
        <p class="rk-sum-intro">
            Płyta fundamentowa nie wybacza błędów – raz zalany beton pieczętuje układ hydrauliczny na dekady. Dlatego sprawność i ekonomia eksploatacji Twojego domu przez najbliższe 50 lat zależą od twardych danych i procedur.
        </p>
        
        <div class="rk-tags-container">
            <span class="rk-mat-tag"># ogrzewanie podłogowe w płycie fundamentowej</span>
            <span class="rk-mat-tag"># termiczna płyta fundamentowa koszty</span>
            <span class="rk-mat-tag"># rury do ogrzewania podłogowego w betonie</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego dla pompy ciepła</span>
            <span class="rk-mat-tag"># obliczenia ozc dla płyty fundamentowej</span>
            <span class="rk-mat-tag"># próba ciśnieniowa podłogówki przed wylewką</span>
            <span class="rk-mat-tag"># instalacja grzewcza w fundamencie</span>
            <span class="rk-mat-tag"># trwałość instalacji w płycie fundamentowej</span>
        </div>
    </div>

    <div class="rk-interactive-app">
        <div class="rk-toggle-header">
            <h3>Symulator Decyzji Inwestycyjnych</h3>
        </div>
        
        <div class="rk-switch-wrapper">
            <span class="rk-switch-label active-red" id="label-amator">Intuicja Instalatora</span>
            <label class="rk-switch">
                <input type="checkbox" id="rk-approach-toggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-switch-label" id="label-inzynier">Inżynieria i Normy</span>
        </div>

        <div id="panel-amator" class="rk-panel rk-panel-danger active">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-red)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div>
                    <h4>Beton ukryje wszystko, ale portfel tego nie wytrzyma</h4>
                    <p>Układanie rur &#8222;z głowy&#8221; zazwyczaj kończy się przekroczeniem <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a>. Brak próby pod ciśnieniem to rosyjska ruletka w trakcie wylewania ton betonu.</p>
                    <p>Gdy dojdzie do usterki lub niedogrzania, skucie 20 cm zbrojonej płyty nośnej jest niemożliwe bez naruszenia konstrukcji budynku.</p>
                </div>
            </div>
        </div>

        <div id="panel-inzynier" class="rk-panel rk-panel-safe">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div>
                    <h4>Gwarancja 50 lat bezawaryjnej pracy</h4>
                    <p>Precyzyjne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia OZC</a> definiują dokładnie zapotrzebowanie. Pętle rozplanowane do optymalnych 100 m minimalizują opory dla pompy ciepła.</p>
                    <p>Bezkompromisowa, wielogodzinna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności</a> wykonana przed zabetonowaniem gwarantuje absolutny spokój inwestora.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-sum-action">
        <h3>Twoja płyta fundamentowa już schnie?</h3>
        <p>Nie pozwól, by amatorskie błędy zabetonowały Twój budżet i komfort na długie lata. Wejdź na wyższy poziom wiedzy instalacyjnej, poznaj schematy, zdemaskuj branżowe mity i buduj bez ściemy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            DOŁĄCZ DO BAZY WIEDZY HVAC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('rk-approach-toggle');
    var panelAmator = document.getElementById('panel-amator');
    var panelInzynier = document.getElementById('panel-inzynier');
    var labelAmator = document.getElementById('label-amator');
    var labelInzynier = document.getElementById('label-inzynier');

    if(toggleBtn) {
        toggleBtn.addEventListener('change', function() {
            if (this.checked === true) {
                // Tryb Inżynier
                panelAmator.classList.remove('active');
                panelInzynier.classList.add('active');
                labelAmator.classList.remove('active-red');
                labelInzynier.classList.add('active-green');
            } else {
                // Tryb Amator
                panelInzynier.classList.remove('active');
                panelAmator.classList.add('active');
                labelInzynier.classList.remove('active-green');
                labelAmator.classList.add('active-red');
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i twardy reset */
#rk-download-hub-app,
#rk-download-hub-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-bg: #ffffff;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-dl-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Ciemny Nagłówek */
.rk-dl-header {
    padding: 35px 45px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    border-bottom: 6px solid var(--rk-dl-blue);
}

.rk-dl-header-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-dl-header-text h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0;
    color: #ffffff;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-dl-header-text p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
}

.rk-dl-header-icon {
    color: #38bdf8;
    flex-shrink: 0;
}

/* Obszar Roboczy - Split Layout */
.rk-dl-grid {
    display: flex;
    flex-direction: column;
}

@media (min-width: 768px) {
    .rk-dl-grid {
        flex-direction: row;
    }
}

/* Lewa Kolumna - Podgląd */
.rk-dl-preview-col {
    flex: 0 0 40%;
    background: var(--rk-dl-light);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border-right: 1px solid var(--rk-dl-border);
}

.rk-dl-thumbnail-box {
    width: 100%;
    max-width: 260px;
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
    border: 1px solid var(--rk-dl-border);
    transition: transform 0.3s ease;
}

.rk-dl-thumbnail-box:hover {
    transform: translateY(-5px);
}

.rk-dl-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
    border: 1px solid #f1f5f9;
}

.rk-dl-preview-link {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dl-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: color 0.3s;
}

.rk-dl-preview-link:hover {
    color: #0369a1;
}

/* Prawa Kolumna - Akcje */
.rk-dl-action-col {
    flex: 0 0 60%;
    padding: 40px 45px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-action-col h3 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-dl-action-col p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    margin: 0 0 30px 0;
}

.rk-dl-buttons-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Przyciski Pobierania */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-radius: 14px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.rk-dl-btn-primary {
    background: var(--rk-dl-blue);
    color: #ffffff !important;
    box-shadow: 0 4px 6px -1px rgba(2, 132, 199, 0.2);
}

.rk-dl-btn-primary:hover {
    background: #0369a1;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px -3px rgba(2, 132, 199, 0.3);
}

.rk-dl-btn-secondary {
    background: #ffffff;
    border: 2px solid var(--rk-dl-border);
    color: var(--rk-dl-dark) !important;
}

.rk-dl-btn-secondary:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
    transform: translateY(-2px);
}

.rk-dl-btn-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-dl-btn-text {
    font-size: 17px;
    font-weight: 800;
}

.rk-dl-btn-sub {
    font-size: 14px;
    font-weight: 500;
    opacity: 0.9;
}

.rk-dl-btn-secondary .rk-dl-btn-sub {
    color: #64748b;
}

/* Stopka - Copyright */
.rk-dl-footer {
    background: var(--rk-dl-light);
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 30px;
    text-align: center;
}

.rk-dl-footer p {
    font-size: 14px;
    line-height: 1.6;
    color: #64748b;
    margin: 0;
}

.rk-dl-footer strong {
    color: var(--rk-dl-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-dl-header { flex-direction: column; align-items: flex-start; padding: 30px 20px; }
    .rk-dl-header-icon { display: none; }
    .rk-dl-preview-col { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-action-col { padding: 30px 20px; }
    .rk-dl-btn { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-dl-btn-sub { align-self: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Materiały do pobrania: Infografika techniczna płyty fundamentowej",
    "description": "Ściągawka inwestora. Autorska infografika i przewodnik techniczny po projektowaniu ogrzewania podłogowego. Pobierz darmowe materiały edukacyjne (PDF, WebP).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-dataset",
    "name": "Kompendium graficzne: Zasady montażu płyty grzewczej",
    "description": "Zbiór ustrukturyzowanej wiedzy inżynierskiej podanej w formie graficznej, obejmujący parametry rozstawów rur, grubości izolacji oraz wytyczne OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "schemat płyty fundamentowej pdf",
      "zasady montażu podłogówki obrazek",
      "pobierz projekt instalacji",
      "techniczny przewodnik ogrzewania"
    ],
    "measurementTechnique": "Wizualizacja parametrów mechaniki płynów oraz fizyki budowli zawartych w normach inżynierskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format wektorowy do wydruku: Dokument PDF (Zabezpieczony)",
        "Format rastrowy do przeglądania na urządzeniach mobilnych: Obraz WebP wysokiej rozdzielczości"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-webapp",
    "name": "Interaktywne Repozytorium Plików Technicznych",
    "description": "Narzędzie sieciowe umożliwiające bezpieczny podgląd i natychmiastowe pobieranie załączników technicznych, zabezpieczonych klauzulą praw autorskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-text">
            <h2>Materiały do pobrania</h2>
            <p>Zachowaj tę wiedzę dla siebie lub przekaż ją swojemu wykonawcy.</p>
        </div>
        <div class="rk-dl-header-icon">
            <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
        </div>
    </div>

    <div class="rk-dl-grid">
        
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumbnail-box">
                <img decoding="async" class="rk-dl-thumbnail-img" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" alt="Infografika: Ściągawka Inwestora" loading="lazy">
            </div>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" target="_blank" rel="noopener" class="rk-dl-preview-link">
                KLIKNIJ, ABY PODGLĄDNĄĆ
            </a>
        </div>

        <div class="rk-dl-action-col">
            <h3>Infografika: Ściągawka Inwestora</h3>
            <p>
                Przygotowałem skrót najważniejszych norm, zaleceń i pułapek technologicznych w wygodnej formie graficznej. Zapisz plik na telefonie przed wizytą na budowie.
            </p>

            <div class="rk-dl-buttons-stack">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.pdf" download class="rk-dl-btn rk-dl-btn-primary" rel="noopener">
                    <div class="rk-dl-btn-left">
                        <div class="rk-dl-btn-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        </div>
                        <span class="rk-dl-btn-text">Pobierz jako dokument PDF</span>
                    </div>
                    <span class="rk-dl-btn-sub">Wysoka jakość</span>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" download class="rk-dl-btn rk-dl-btn-secondary" rel="noopener">
                    <div class="rk-dl-btn-left">
                        <div class="rk-dl-btn-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        </div>
                        <span class="rk-dl-btn-text">Pobierz jako Obraz (WebP)</span>
                    </div>
                    <span class="rk-dl-btn-sub">Lekki plik</span>
                </a>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <p>
            <strong>© 2026 Projekt-Ogrzewania.pl</strong> | Autor: Robert Kucharski.<br>
            Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Bezpieczna inicjalizacja modułu bez użycia operatorów && i zbędnych animacji.
    // Śledzenie kliknięć w przyciski pobierania dla analityki (opcjonalnie)
    var pdfBtn = document.querySelector('.rk-dl-btn-primary');
    var webpBtn = document.querySelector('.rk-dl-btn-secondary');

    function logDownloadEvent(type) {
        // Placeholder dla eventów Google Analytics lub Tag Managera
        if (window.console) {
            console.log('Pobrano plik:', type);
        }
    }

    if (pdfBtn) {
        pdfBtn.addEventListener('click', function() {
            logDownloadEvent('PDF');
        });
    }

    if (webpBtn) {
        webpBtn.addEventListener('click', function() {
            logDownloadEvent('WebP');
        });
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</title>
		<link>https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 13 Jun 2026 07:16:00 +0000</pubDate>
				<category><![CDATA[Fotowoltaika]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Taryfy dynamiczne]]></category>
		<category><![CDATA[akumulatory lifepo4 opinie]]></category>
		<category><![CDATA[bezwładność cieplna budynku]]></category>
		<category><![CDATA[bufor ciepła do pompy ciepła]]></category>
		<category><![CDATA[instalacja hvac optymalizacja]]></category>
		<category><![CDATA[kalkulator strat ciepła budynku]]></category>
		<category><![CDATA[koszt magazynu energii]]></category>
		<category><![CDATA[koszty ogrzewania domu 2026]]></category>
		<category><![CDATA[kryzys 15 roku fotowoltaiki]]></category>
		<category><![CDATA[ogrzewanie podłogowe jako magazyn energii]]></category>
		<category><![CDATA[opłacalność taryf dynamicznych]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego ozc]]></category>
		<category><![CDATA[rynkowa cena energii elektrycznej rce]]></category>
		<category><![CDATA[standardy montażu hvac]]></category>
		<category><![CDATA[wylewka betonowa podłogówka]]></category>
		<category><![CDATA[zarabianie na taryfach dynamicznych]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=5634</guid>

					<description><![CDATA[<p>Agresywny marketing OZE i HVAC wmawia dziś inwestorom, że jedyną drogą do obniżenia rachunków za prąd jest zakup drogich akumulatorów chemicznych. Zanim jednak ulegniesz presji sprzedawców i wydasz kilkadziesiąt tysięcy złotych na technologię, która zimą stoi bezużyteczna, musisz poznać twarde fakty. Prawda jest taka, że największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz – to bezwładność cieplna betonowej wylewki podłogowej połączona z odpowiednio dobranym buforem wody grzewczej. Na podstawie analizy ponad 1000 projektów instalacyjnych udowadniam, dlaczego wykorzystanie fizyki budynku w erze taryf dynamicznych jest nawet 10-krotnie tańsze i bardziej opłacalne niż ścienne baterie. W dalszej części artykułu znajdziesz interaktywne kalkulatory, wykresy oraz szczegółowe zestawienia kosztów, które pozwolą Ci samodzielnie przeliczyć zyski.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-teal: #0d9488;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray: #64748b;
    --rk-intro-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* 1. MOCNE OTWARCIE (HOOK) */
.rk-intro-hook {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-teal);
}

.rk-intro-hook h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 25px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.rk-quote-box {
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-intro-teal);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    position: relative;
}

.rk-quote-box p {
    font-size: 18px;
    line-height: 1.6;
    color: #ccfbf1;
    margin: 0;
    font-style: italic;
    font-weight: 600;
}

.rk-quote-box strong {
    color: #ffffff;
}

/* 2. SZYBKA ODPOWIEDŹ (FEATURED SNIPPET) */
.rk-intro-qa {
    padding: 40px 50px;
    background: #ffffff;
    border-bottom: 1px dashed var(--rk-intro-border);
}

.rk-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    color: #065f46;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 1px solid #a7f3d0;
    margin-bottom: 15px;
}

.rk-intro-qa p {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-intro-qa p:last-child {
    margin: 0;
}

.rk-intro-qa strong {
    color: var(--rk-intro-dark);
    font-weight: 800;
}

/* 3. INTERAKTYWNA MAPA ARTYKUŁU */
.rk-intro-roadmap {
    padding: 40px 50px;
    background: var(--rk-intro-light);
}

.rk-intro-roadmap h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-rm-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    overflow: hidden;
}

/* Przyciski nawigacyjne */
.rk-rm-nav {
    background: #f1f5f9;
    border-right: 1px solid var(--rk-intro-border);
    display: flex;
    flex-direction: column;
}

.rk-rm-btn {
    padding: 20px;
    text-align: left;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
}

.rk-rm-btn:hover {
    background: #e2e8f0;
    color: var(--rk-intro-dark);
}

.rk-rm-btn.active {
    background: #ffffff;
    color: var(--rk-intro-teal);
    border-left-color: var(--rk-intro-teal);
}

/* Zawartość paneli */
.rk-rm-content-area {
    padding: 30px 30px 30px 10px;
}

.rk-rm-panel {
    display: none;
}

.rk-rm-panel.active {
    display: block;
}

.rk-rm-panel h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-rm-panel p {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-intro-hook, .rk-intro-qa, .rk-intro-roadmap { padding: 30px 20px; }
    .rk-intro-hook h2 { font-size: 24px; }
    .rk-rm-grid { grid-template-columns: 1fr; }
    
    /* Mobilna nawigacja w pionie */
    .rk-rm-nav { 
        border-right: none; 
        border-bottom: 1px solid var(--rk-intro-border); 
        flex-direction: column; 
    }
    .rk-rm-btn { 
        padding: 16px 20px; 
        border-left: 4px solid transparent; 
        border-bottom: 1px solid var(--rk-intro-border); 
        width: 100%; 
    }
    .rk-rm-btn:last-child {
        border-bottom: none;
    }
    .rk-rm-btn.active { 
        border-left-color: var(--rk-intro-teal); 
    }
    
    .rk-rm-content-area { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz",
    "description": "Szybka odpowiedź inżynierska: Ogrzewanie podłogowe jako darmowy hybrydowy magazyn termiczny, który skutecznie zastępuje drogie akumulatory LiFePO4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-wstep",
    "name": "Wstępna specyfikacja oszczędności: Magazyn termiczny (2026)",
    "description": "Podstawowe dane brzegowe udowadniające wyższość układu bufor + wylewka nad akumulatorami elektrochemicznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "największy magazyn energii w domu",
      "ogrzewanie podłogowe jako magazyn energii",
      "bufor ciepła do pompy ciepła",
      "darmowy magazyn prądu",
      "hybrydowy magazyn termiczny"
    ],
    "measurementTechnique": "Wyprowadzenie tezy inżynierskiej bazującej na darmowej pojemności 70-90 kWh w podłodze vs 10 kWh w drogiej baterii.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom 150m2 posiada darmową zdolność akumulacji 70–90 kWh.",
        "Koszty eksploatacji pompy ciepła spadają o 30-40% bez degradacji sprzętu.",
        "Rozwiązanie termiczne jest 6 do 10 razy tańsze od rynkowych magazynów prądu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora HVAC",
    "description": "Nawigacyjny komponent webowy prezentujący zawartość merytoryczną i kalkulatory analityczne dostępne w dalszej części opracowania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="wstep-artykulu-app">
    
    <div class="rk-sr-only">
        Rozwiązania dedykowane dla haseł: największy magazyn energii w domu, ogrzewanie podłogowe jako magazyn energii, bufor ciepła do pompy ciepła, darmowy magazyn prądu, hybrydowy magazyn termiczny.
    </div>

    <div class="rk-intro-hook">
        <h2>Największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz</h2>
        <div class="rk-quote-box">
            <p>
                „Kup fotowoltaikę. Kup magazyn energii. Kup większy magazyn energii.” – tak wygląda dzisiaj agresywna sprzedaż w branży HVAC i OZE. Inwestorzy, zaszczuci wizją rosnących rachunków, wydają dziesiątki tysięcy złotych na akumulatory, nie zadając jednego, fundamentalnego pytania: <strong>A co, jeśli najskuteczniejszy magazyn energii w Twoim domu już istnieje?</strong>
            </p>
        </div>
    </div>

    <div class="rk-intro-qa">
        <div class="rk-qa-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Szybka odpowiedź specjalisty
        </div>
        <p>
            Mowa o bezwładności cieplnej budynku i ogrzewaniu podłogowym. W tym artykule, na podstawie 1000+ wykonanych projektów, obnażam ekonomiczny mit „magazynów prądu” i pokazuję, dlaczego <strong>woda w buforze i betonowa wylewka są od nich od 6 do 10 razy tańsze.</strong>
        </p>
        <p>
            <strong>Ogrzewanie podłogowe jako hybrydowy magazyn termiczny</strong> to proces wykorzystania fizyki wylewki oraz wody sieciowej do przesunięcia poboru prądu przez pompę ciepła w czasie, celem unikania stref szczytowych taryf energii. Podczas gdy rynek wymusza zakupy akumulatorów za 25 000 – 45 000 PLN, standardowy dom (150 m²) posiada darmową zdolność akumulacji rzędu <strong>70–90 kWh energii</strong>, redukując roczne koszty eksploatacji pompy o 30–40% bez żadnej degradacji sprzętu.
        </p>
    </div>

    <div class="rk-intro-roadmap">
        <h3>Co przygotowałem dla Ciebie w tym artykule?</h3>
        
        <div class="rk-rm-grid">
            <div class="rk-rm-nav" id="introNavBtns">
                <button class="rk-rm-btn active" data-target="info-1">
                    Fizyka Magazynu
                </button>
                <button class="rk-rm-btn" data-target="info-2">
                    Kalkulator ROI
                </button>
                <button class="rk-rm-btn" data-target="info-3">
                    Analiza Cash Flow
                </button>
            </div>

            <div class="rk-rm-content-area" id="introPanels">
                <div class="rk-rm-panel active" id="info-1">
                    <h4>Interaktywny Symulator Pojemności</h4>
                    <p>Poniżej znajdziesz dedykowane narzędzie, w którym podasz metraż swojego domu, a algorytm wyliczy z dokładnością co do kilowatogodziny, ile darmowej energii pomieści Twój beton i bufor w stosunku do drogich baterii LiFePO4.</p>
                </div>
                <div class="rk-rm-panel" id="info-2">
                    <h4>Kalkulator Oszczędności (Taryfy)</h4>
                    <p>Udostępniam aplikację do symulacji na żywo. Zmienisz w niej ceny prądu (G11 vs Taryfa Dynamiczna) i natychmiast sprawdzisz po ilu latach zwróci się precyzyjnie zaprojektowana instalacja ogrzewania podłogowego.</p>
                </div>
                <div class="rk-rm-panel" id="info-3">
                    <h4>20-letni Harmonogram Inwestycji</h4>
                    <p>Koniec z ukrywaniem kosztów serwisu falowników i degradacji baterii. Przygotowałem pełne zestawienie w formie &#8222;Osi Czasu&#8221;, które obnaża &#8222;Kryzys 15. roku&#8221; instalacji fotowoltaicznych w zderzeniu ze stalą i betonem.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#introNavBtns .rk-rm-btn');
    const panels = document.querySelectorAll('#introPanels .rk-rm-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe przełączenie (bez animacji)
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-trap-dark: #0f172a;
    --rk-trap-navy: #1e293b;
    --rk-trap-red: #dc2626;
    --rk-trap-red-light: #fef2f2;
    --rk-trap-blue: #0284c7;
    --rk-trap-gray: #64748b;
    --rk-trap-light: #f8fafc;
    --rk-trap-border: #e2e8f0;
    --rk-trap-orange: #f59e0b;
}

.rk-trap-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(220, 38, 38, 0.15);
    border: 1px solid var(--rk-trap-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-trap-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-trap-dark) 0%, #450a0a 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-trap-red);
}

.rk-trap-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-trap-header p {
    font-size: 16px;
    color: #fecaca;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Układ główny */
.rk-trap-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Kontrolery */
.rk-trap-controls {
    padding: 40px 50px;
    background: var(--rk-trap-light);
    border-right: 1px solid var(--rk-trap-border);
}

.rk-trap-controls h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-trap-dark);
    margin: 0 0 25px 0;
}

.rk-input-group {
    margin-bottom: 30px;
}

.rk-input-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
}

.rk-input-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-trap-dark);
}

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-trap-gray);
    font-weight: 500;
    margin-top: 3px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-trap-border);
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-trap-dark);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

/* Suwaki */
.rk-trap-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-trap-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-trap-dark);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

.rk-trap-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Przełącznik Pory Roku (Kluczowy dla symulacji) */
.rk-season-toggle {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    margin-top: 10px;
}

.rk-season-btn {
    flex: 1;
    text-align: center;
    padding: 12px 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-trap-gray);
    cursor: pointer;
    border-radius: 8px;
    border: none;
    background: transparent;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-season-btn.active[data-season="summer"] {
    background: #ffffff;
    color: var(--rk-trap-orange);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-season-btn.active[data-season="winter"] {
    background: var(--rk-trap-blue);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

/* Prawa Kolumna - Wyniki Live */
.rk-trap-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

.rk-trap-results h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-trap-dark);
    margin: 0 0 25px 0;
}

.rk-res-card {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px 0;
    border-bottom: 1px dashed var(--rk-trap-border);
}

.rk-res-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-trap-gray);
    flex-shrink: 0;
}

.rk-res-details {
    flex-grow: 1;
}

.rk-res-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-trap-dark);
    margin-bottom: 4px;
}

.rk-res-desc {
    font-size: 12px;
    color: var(--rk-trap-gray);
}

.rk-res-val {
    font-size: 20px;
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.val-red { color: var(--rk-trap-red); }
.val-dark { color: var(--rk-trap-dark); }

/* Wynik końcowy ostrzeżenie */
.rk-trap-alert {
    margin-top: auto;
    padding: 25px;
    background: var(--rk-trap-red-light);
    border: 2px solid var(--rk-trap-red);
    border-radius: 16px;
    text-align: center;
    position: relative;
}

.rk-trap-alert-title {
    font-size: 13px;
    font-weight: 800;
    color: #991b1b;
    text-transform: uppercase;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-trap-alert-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-trap-red);
    line-height: 1.1;
    margin-bottom: 15px;
}

/* Wyjaśnienie matematyczne na dole */
.rk-trap-math-expl {
    padding: 25px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-trap-border);
    font-size: 14px;
    line-height: 1.7;
    color: #475569;
}

.rk-trap-math-expl a {
    color: var(--rk-trap-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-trap-math-box {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-trap-dark);
    font-weight: 600;
    border-left: 4px solid var(--rk-trap-gray);
}

@media (max-width: 768px) {
    .rk-trap-header, .rk-trap-controls, .rk-trap-results, .rk-trap-math-expl { padding: 30px 20px; }
    .rk-trap-header h2 { font-size: 22px; flex-direction: column; }
    .rk-trap-body { grid-template-columns: 1fr; }
    .rk-trap-controls { border-right: none; border-bottom: 1px solid var(--rk-trap-border); }
    .rk-trap-alert { margin-top: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-pulapka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Dlaczego magazynowanie energii elektrycznej w akumulatorach to ekonomiczna pułapka?",
    "description": "Zrozum straty na konwersji i drastyczny spadek wydajności magazynów LiFePO4 w okresie zimowym, kiedy pompa ciepła potrzebuje prądu najbardziej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-pulapka",
    "name": "Analiza degradacji i kosztów akumulatorów LiFePO4 (2026)",
    "description": "Zestawienie twardych danych o sprawności cykli AC-DC-AC, spadku zimowym produkcji PV oraz żywotności ogniw chemicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opłacalność magazynu energii",
      "żywotność akumulatorów lifepo4",
      "sprawność magazynu energii",
      "fotowoltaika zimą a magazyn",
      "koszt 1 kwh z magazynu"
    ],
    "measurementTechnique": "Kalkulacja straty systemowej bazująca na 15% stratach konwersji i 85% spadku dostępności darmowej energii OZE w polskim klimacie od listopada do lutego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt 1 kWh = Cena Magazynu / Pojemność znamionowa",
        "Straty konwersji: -15% przy każdym cyklu inwertera hybrydowego",
        "Zimowy spadek użyteczności: Do 10-15% dostępności słońca"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-pulapka",
    "name": "Symulator Rentowności Magazynu Chemicznego",
    "description": "Aplikacja obliczeniowa ujawniająca rzeczywisty koszt 1 kWh pojemności bateryjnej i obnażająca letnio-zimową dysproporcję działania układu PV.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-trap-container" id="pulapka-bateryjna-app">
    
    <div class="rk-sr-only">
        Słowa kluczowe do analizy inżynierskiej: opłacalność magazynu energii, żywotność akumulatorów lifepo4, sprawność magazynu energii, fotowoltaika zimą a magazyn, koszt 1 kwh z magazynu.
    </div>

    <div class="rk-trap-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: #fca5a5;">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
            Akumulator w domu to pułapka?
        </h2>
        <p>Zobacz, jak sprzedawcy obliczają zwrot w oparciu o &#8222;idealne 365 dni słońca&#8221;. Ustaw pojemność, przełącz porę roku i obnaż fizyczne ograniczenia magazynów elektrycznych.</p>
    </div>

    <div class="rk-trap-body">
        
        <div class="rk-trap-controls">
            <h3>Parametry Magazynu (LiFePO4)</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność znamionowa (kWh)</label>
                    <div class="rk-input-value-box"><span id="valCap">10</span> kWh</div>
                </div>
                <input type="range" class="rk-trap-slider" id="inpCap" min="5" max="30" step="1" value="10">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Koszt zakupu i montażu (PLN) <span>Średnio 2000 &#8211; 3000 zł za 1 kWh</span></label>
                    <div class="rk-input-value-box"><span id="valCost">20000</span> zł</div>
                </div>
                <input type="range" class="rk-trap-slider" id="inpCost" min="10000" max="90000" step="1000" value="20000">
            </div>

            <div class="rk-input-group" style="margin-top: 40px;">
                <label class="rk-input-label">Zasymuluj warunki w polskim klimacie:</label>
                <div class="rk-season-toggle">
                    <button class="rk-season-btn active" data-season="summer">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                        Wiosna / Lato
                    </button>
                    <button class="rk-season-btn" data-season="winter">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M4 10l8-8 8 8"></path><path d="M4 14l8 8 8-8"></path></svg>
                        Zima (Listopad-Luty)
                    </button>
                </div>
            </div>
        </div>

        <div class="rk-trap-results">
            <h3>Prawdziwe możliwości systemu</h3>
            
            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Jednostkowy koszt pojemności</div>
                    <div class="rk-res-desc">Zamrożony kapitał za każdą 1 kWh</div>
                </div>
                <div class="rk-res-val val-dark" id="resUnit">2 000 zł</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Straty konwersji (AC-DC-AC)</div>
                    <div class="rk-res-desc">Minus ~15% na falowniku przy cyklu</div>
                </div>
                <div class="rk-res-val val-red" id="resLoss">-1.50 kWh</div>
            </div>

            <div class="rk-trap-alert">
                <div class="rk-trap-alert-title" id="alertTitle">Dostępna darmowa energia na dobę</div>
                <div class="rk-trap-alert-val" id="resReal">8.50 kWh</div>
                <div style="font-size: 13px; color: #7f1d1d; line-height: 1.4;" id="alertDesc">
                    Latem magazyn ładuje się sprawnie. Tracisz jedynie 15% pojemności na ciepło odpadowe z falownika.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-trap-math-expl">
        <strong>Matematyka inwestycyjna jest bezwzględna.</strong> Kalkulacja zwrotu opierana przez handlowców na 365 cyklach rocznie to fikcja. Pamiętaj, że dla efektywnego działania całego układu, kluczowa jest znajomość zapotrzebowania obiektu, która wynika z profesjonalnych <a href="https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-kalkulator-kosztow-eksploatacji/">kalkulacji kosztów eksploatacji</a>.
        
        <div class="rk-trap-math-box">
            Koszt 1 kWh = CENA ZESTAWU / POJEMNOŚĆ BATERII<br>
            <span style="color:var(--rk-trap-red);" id="mathEq">20 000 PLN / 10 kWh = 2000 PLN/kWh</span>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elCap = document.getElementById('inpCap');
    const elCost = document.getElementById('inpCost');
    const seasonBtns = document.querySelectorAll('.rk-season-btn');

    // Displays
    const valCap = document.getElementById('valCap');
    const valCost = document.getElementById('valCost');
    const resUnit = document.getElementById('resUnit');
    const resLoss = document.getElementById('resLoss');
    const resReal = document.getElementById('resReal');
    const mathEq = document.getElementById('mathEq');
    
    // Alert Elements
    const alertTitle = document.getElementById('alertTitle');
    const alertDesc = document.getElementById('alertDesc');

    let currentSeason = 'summer';

    function calculate() {
        const cap = parseFloat(elCap.value);
        const cost = parseFloat(elCost.value);

        // Update displays
        valCap.textContent = cap;
        valCost.textContent = cost.toLocaleString('pl-PL');

        // 1. Koszt jednostkowy
        const unitCost = cost / cap;
        resUnit.textContent = Math.round(unitCost).toLocaleString('pl-PL') + ' zł';
        mathEq.textContent = `${cost.toLocaleString('pl-PL')} PLN / ${cap} kWh = ${Math.round(unitCost)} PLN/kWh`;

        // 2. Symulacja Pory Roku
        // Zima = produkcja spada drastycznie. Załóżmy 15% wypełnienia baterii w słaby dzień.
        let availableEnergy = cap;
        let winterDropText = '';

        if (currentSeason === 'winter') {
            availableEnergy = cap * 0.15; // Zaledwie 15% naładowania
            alertTitle.textContent = 'Dostępna darmowa energia ZIMĄ';
            alertDesc.innerHTML = 'Przez 4 miesiące produkcja z PV drastycznie spada. Magazyn przez większość zimy <strong>stoi pusty</strong>, zamrażając Twój kapitał w momencie, gdy potrzebujesz prądu najbardziej.';
        } else {
            availableEnergy = cap; // 100% naładowania w słoneczny dzień
            alertTitle.textContent = 'Dostępna darmowa energia LATEM';
            alertDesc.innerHTML = 'Latem magazyn ładuje się bez problemu. Tracisz "tylko" energię na ciepło odpadowe z falownika (konwersja prądu stałego na zmienny).';
        }

        // 3. Straty konwersji (AC-DC-AC) - uśrednione 15% z tego, co przepłynie.
        const conversionLoss = availableEnergy * 0.15;
        const realUsable = availableEnergy - conversionLoss;

        resLoss.textContent = '-' + conversionLoss.toFixed(2) + ' kWh';
        resReal.textContent = realUsable.toFixed(2) + ' kWh';
    }

    // Event Listeners for inputs
    elCap.addEventListener('input', calculate);
    elCost.addEventListener('input', calculate);

    // Event Listeners for Season Toggle
    seasonBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            seasonBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentSeason = this.getAttribute('data-season');
            calculate();
        });
    });

    // Initial load
    calculate();
});
</script>



<style>
:root {
    --rk-cap-dark: #0f172a;
    --rk-cap-navy: #1e293b;
    --rk-cap-blue: #0284c7;
    --rk-cap-teal: #0d9488;
    --rk-cap-green: #10b981;
    --rk-cap-orange: #f59e0b;
    --rk-cap-gray: #64748b;
    --rk-cap-light: #f8fafc;
    --rk-cap-border: #e2e8f0;
}

.rk-cap-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-cap-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-cap-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-cap-dark) 0%, var(--rk-cap-teal) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-cap-green);
}

.rk-cap-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-cap-header p {
    font-size: 16px;
    color: #ccfbf1;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Układ główny */
.rk-cap-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Kontrolery */
.rk-cap-controls {
    padding: 40px 50px;
    background: var(--rk-cap-light);
    border-right: 1px solid var(--rk-cap-border);
}

.rk-cap-controls h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cap-dark);
    margin: 0 0 25px 0;
}

.rk-input-group {
    margin-bottom: 30px;
}

.rk-input-group:last-child {
    margin-bottom: 0;
}

.rk-input-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
}

.rk-input-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-cap-dark);
}

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-cap-gray);
    font-weight: 500;
    margin-top: 3px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-cap-border);
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-cap-teal);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

/* Suwaki */
.rk-cap-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-cap-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-cap-teal);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(13, 148, 136, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

.rk-cap-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Prawa Kolumna - Wyniki Live */
.rk-cap-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

.rk-cap-results h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cap-dark);
    margin: 0 0 25px 0;
}

.rk-res-card {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px dashed var(--rk-cap-border);
}

.rk-res-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-cap-gray);
    flex-shrink: 0;
}

.rk-res-details {
    flex-grow: 1;
}

.rk-res-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-cap-dark);
    margin-bottom: 2px;
}

.rk-res-math {
    font-size: 12px;
    color: var(--rk-cap-gray);
    font-family: monospace;
}

.rk-res-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-cap-teal);
    white-space: nowrap;
}

/* Wynik końcowy */
.rk-cap-total {
    margin-top: auto;
    padding: 25px;
    background: #f0fdf4;
    border: 2px solid var(--rk-cap-green);
    border-radius: 16px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-cap-total-title {
    font-size: 14px;
    font-weight: 700;
    color: #065f46;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-cap-total-val {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-cap-green);
    line-height: 1;
    margin-bottom: 15px;
}

.rk-cap-equivalent {
    font-size: 13px;
    color: #064e3b;
    line-height: 1.5;
    font-weight: 600;
    background: #d1fae5;
    padding: 10px 15px;
    border-radius: 8px;
}

.rk-cap-equivalent strong {
    color: var(--rk-cap-red);
}

.rk-cap-math-expl {
    padding: 25px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-cap-border);
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rk-cap-math-expl a {
    color: var(--rk-cap-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

@media (max-width: 768px) {
    .rk-cap-header, .rk-cap-controls, .rk-cap-results, .rk-cap-math-expl { padding: 30px 20px; }
    .rk-cap-header h2 { font-size: 22px; flex-direction: column; }
    .rk-cap-body { grid-template-columns: 1fr; }
    .rk-cap-controls { border-right: none; border-bottom: 1px solid var(--rk-cap-border); }
    .rk-cap-total { margin-top: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-fizyka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Beton, woda i izolacja: Jak fizycznie działa magazyn termiczny?",
    "description": "Obliczenia pojemności cieplnej wylewki betonowej i bufora wody grzewczej zgodnie z normą PN-EN 1264. Poznaj realną bezwładność swojego budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-fizyka",
    "name": "Zestawienie parametrów akumulacyjnych materiałów budowlanych (2026)",
    "description": "Właściwości fizyczne, ciepło właściwe i masa układów betonowo-wodnych stosowanych w nowoczesnych instalacjach grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność cieplna wylewki",
      "bufor wody grzewczej",
      "akumulacja ciepła w betonie",
      "zasobnik cwu z pompą ciepła",
      "bezwładność cieplna budynku"
    ],
    "measurementTechnique": "Termodynamiczne obliczenia przyrostu energii (Q = m * cw * dT) z zachowaniem limitów normy PN-EN 1264 (max. 29 st. C dla podłóg).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wylewka betonowa (gęstość 2400 kg/m3): Pojemność ok. 19.45 kWh przy dT=3K dla 150m2.",
        "Woda kotłowa (bufor 1000 l): Pojemność ok. 34.8 kWh przy dT=30K.",
        "Woda użytkowa (CWU 300 l): Pojemność ok. 15.66 kWh przy dT=45K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-fizyka",
    "name": "Kalkulator Pojemności Termicznej Budynku",
    "description": "Interaktywny symulator pozwalający na obliczenie łącznej pojemności energetycznej (w kWh) wylewki i zasobników wodnych na podstawie wprowadzonych wymiarów.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cap-container" id="pojemnosc-fizyka-app">
    
    <div class="rk-sr-only">
        Pojęcia techniczne: pojemność cieplna wylewki, bufor wody grzewczej, akumulacja ciepła w betonie, zasobnik cwu z pompą ciepła, bezwładność cieplna budynku, obliczenia normy PN-EN 1264.
    </div>

    <div class="rk-cap-header">
        <h2>
            Fizyka Magazynu Termicznego
        </h2>
        <p>Sprawdź, ile darmowej energii (w kWh) potrafi zgromadzić Twój dom. Zmień parametry i zobacz realną pojemność cieplną wylewki, bufora i zasobnika CWU.</p>
    </div>

    <div class="rk-cap-body">
        
        <div class="rk-cap-controls">
            <h3>Parametry Twojego budynku</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Powierzchnia <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:inherit; text-decoration:none;">wylewki</a> (m²) <span>Grubość 6,5 cm, podgrzanie o +3°C</span></label>
                    <div class="rk-input-value-box"><span id="valArea">150</span> m²</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpArea" min="50" max="300" step="10" value="150">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color:inherit; text-decoration:none;">bufora</a> wody (litry) <span>Różnica temperatur dT = 30°C</span></label>
                    <div class="rk-input-value-box"><span id="valBuffer">1000</span> L</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpBuffer" min="0" max="2000" step="100" value="1000">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność CWU (litry) <span>Nagrzew z 10°C do 55°C (dT = 45°C)</span></label>
                    <div class="rk-input-value-box"><span id="valDhw">300</span> L</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpDhw" min="0" max="500" step="50" value="300">
            </div>
        </div>

        <div class="rk-cap-results">
            <h3>Pojemność cieplna w kWh</h3>
            
            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14.899A7 7 0 1 1 20 14.9V19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4.101z"></path></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Akumulacja w betonie</div>
                    <div class="rk-res-math" id="mathArea">23.4t x 0.277 x 3K</div>
                </div>
                <div class="rk-res-val"><span id="resArea">19.45</span> kWh</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12" y2="18.01"></line></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Woda buforowa</div>
                    <div class="rk-res-math" id="mathBuffer">1000L x 1.16 x 30K</div>
                </div>
                <div class="rk-res-val"><span id="resBuffer">34.80</span> kWh</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Ciepła Woda (CWU)</div>
                    <div class="rk-res-math" id="mathDhw">300L x 1.16 x 45K</div>
                </div>
                <div class="rk-res-val"><span id="resDhw">15.66</span> kWh</div>
            </div>

            <div class="rk-cap-total">
                <div class="rk-cap-total-title">Łączna darmowa pojemność</div>
                <div class="rk-cap-total-val"><span id="resTotal">69.91</span> kWh</div>
                <div class="rk-cap-equivalent">
                    Aby uzyskać tę samą pojemność w prądzie, musisz kupić akumulatory za: <br><strong id="resCost">~ 140 000 PLN</strong>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-cap-math-expl">
        Zgodnie z normą PN-EN 1264, dopuszczalna temperatura powierzchni podłogi to 29°C. Bezpieczne podniesienie temperatury betonu (o gęstości 2400 kg/m³) buduje gigantyczną <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Wszystkie obliczenia (Q = m x cw x dT) dowodzą, że fizyka wody i betonu deklasuje opłacalność baterii elektrochemicznych.
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elArea = document.getElementById('inpArea');
    const elBuffer = document.getElementById('inpBuffer');
    const elDhw = document.getElementById('inpDhw');

    // Displays (Inputs)
    const valArea = document.getElementById('valArea');
    const valBuffer = document.getElementById('valBuffer');
    const valDhw = document.getElementById('valDhw');

    // Displays (Math expl)
    const mathArea = document.getElementById('mathArea');
    const mathBuffer = document.getElementById('mathBuffer');
    const mathDhw = document.getElementById('mathDhw');

    // Displays (Results)
    const resArea = document.getElementById('resArea');
    const resBuffer = document.getElementById('resBuffer');
    const resDhw = document.getElementById('resDhw');
    const resTotal = document.getElementById('resTotal');
    const resCost = document.getElementById('resCost');

    function calculate() {
        const area = parseFloat(elArea.value);
        const buffer = parseFloat(elBuffer.value);
        const dhw = parseFloat(elDhw.value);

        // Update input displays
        valArea.textContent = area;
        valBuffer.textContent = buffer;
        valDhw.textContent = dhw;

        // 1. Obliczenia dla Wylewki
        // m3 = area * 0.065 m (grubosc)
        // masa (kg) = m3 * 2400
        // masa (tony) = masa / 1000
        const massKg = area * 0.065 * 2400;
        const massT = (massKg / 1000).toFixed(1);
        // kWh = masa(kg) * 0.277 (Wh/kgK) * 3(K) / 1000
        const capArea = (massKg * 0.277 * 3) / 1000;
        
        mathArea.textContent = `${massT}t x 0.277 x 3K`;
        resArea.textContent = capArea.toFixed(2);

        // 2. Obliczenia dla Bufora (cw wody = 1.16 Wh/kgK, dT = 30K)
        const capBuffer = (buffer * 1.16 * 30) / 1000;
        mathBuffer.textContent = `${buffer}L x 1.16 x 30K`;
        resBuffer.textContent = capBuffer.toFixed(2);

        // 3. Obliczenia dla CWU (dT = 45K)
        const capDhw = (dhw * 1.16 * 45) / 1000;
        mathDhw.textContent = `${dhw}L x 1.16 x 45K`;
        resDhw.textContent = capDhw.toFixed(2);

        // 4. Razem
        const totalCap = capArea + capBuffer + capDhw;
        resTotal.textContent = totalCap.toFixed(2);

        // 5. Koszt ekwiwalentu bateryjnego
        // Zakładamy rynkowo: 10 kWh = ~20 000 PLN.
        const costEquiv = (totalCap / 10) * 20000;
        // Formatowanie z przerwą tysięcy
        resCost.textContent = '~ ' + Math.round(costEquiv).toLocaleString('pl-PL') + ' PLN';
    }

    // Event Listeners
    elArea.addEventListener('input', calculate);
    elBuffer.addEventListener('input', calculate);
    elDhw.addEventListener('input', calculate);

    // Initial load
    calculate();
});
</script>



<style>
:root {
    --rk-vs-dark: #0f172a;
    --rk-vs-navy: #1e293b;
    --rk-vs-blue: #0284c7;
    --rk-vs-orange: #f59e0b;
    --rk-vs-red: #ef4444;
    --rk-vs-green: #10b981;
    --rk-vs-gray: #64748b;
    --rk-vs-light: #f8fafc;
    --rk-vs-border: #e2e8f0;
}

.rk-vs-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-vs-border);
    overflow: hidden;
}

.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-vs-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-vs-dark) 0%, var(--rk-vs-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-vs-orange);
    position: relative;
}

.rk-vs-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-vs-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Układ główny */
.rk-vs-body {
    display: flex;
    background: #ffffff;
}

/* Nawigacja (lewa kolumna na desktopie) */
.rk-vs-nav {
    width: 280px;
    background: var(--rk-vs-light);
    border-right: 1px solid var(--rk-vs-border);
    flex-shrink: 0;
}

.rk-vs-item {
    border-bottom: 1px solid var(--rk-vs-border);
}

.rk-vs-item:last-child {
    border-bottom: none;
}

.rk-vs-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-vs-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rk-vs-btn-inner {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-vs-btn svg {
    width: 20px;
    height: 20px;
    opacity: 0.6;
    transition: all 0.3s;
}

.rk-vs-chevron {
    display: none; /* Pokazywany tylko na mobile */
    transition: transform 0.3s;
}

.rk-vs-btn:hover {
    background: #ffffff;
    color: var(--rk-vs-dark);
}

.rk-vs-btn.active {
    background: #ffffff;
    color: var(--rk-vs-blue);
    border-left-color: var(--rk-vs-blue);
}

.rk-vs-btn.active svg {
    opacity: 1;
    color: var(--rk-vs-blue);
}

/* Obszar wyświetlania paneli na DESKTOPIE (prawa kolumna) */
.rk-vs-desktop-content {
    flex-grow: 1;
    padding: 40px;
    position: relative;
    display: block;
}

.rk-vs-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--rk-vs-dark);
    color: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    border: 4px solid #ffffff;
    z-index: 10;
}

/* Panele z treścią (Współdzielone dla desktopu i mobile) */
.rk-vs-panel {
    display: none;
    animation: fadeInVs 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Desktopowe wyświetlanie paneli */
.rk-vs-desktop-content .rk-vs-panel.active {
    display: block;
}

@keyframes fadeInVs {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-vs-panel-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-vs-dark);
    margin: 0 0 25px 0;
    padding-bottom: 15px;
    border-bottom: 1px dashed var(--rk-vs-border);
}

.rk-vs-cards-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-tech-card {
    border: 1px solid var(--rk-vs-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    background: #ffffff;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-tech-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.1);
}

.rk-tech-card.winner {
    border-color: var(--rk-vs-green);
    background: #f0fdf4;
}

.rk-tech-card.loser {
    border-color: var(--rk-vs-red);
    background: #fef2f2;
}

.rk-tech-header {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--rk-vs-gray);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-tech-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-vs-dark);
    line-height: 1.2;
}

.rk-tech-sub {
    font-size: 13px;
    color: var(--rk-vs-gray);
    margin-top: 5px;
    font-weight: 500;
}

.winner .rk-tech-val { color: var(--rk-vs-green); }
.loser .rk-tech-val { color: var(--rk-vs-red); }

/* Ukrycie paneli w lewej nawigacji na desktopie */
.rk-vs-nav .rk-vs-panel {
    display: none !important;
}

/* --- MOBILE --- */
@media (max-width: 768px) {
    .rk-vs-header { padding: 30px 20px; }
    .rk-vs-header h2 { font-size: 22px; flex-direction: column; }
    
    .rk-vs-body { flex-direction: column; }
    .rk-vs-nav { width: 100%; border-right: none; padding: 0; }
    
    /* Na mobile ukrywamy prawy kontener desktopowy */
    .rk-vs-desktop-content { display: none; }
    
    .rk-vs-btn {
        padding: 20px;
        border-left: none;
        border-bottom: 2px solid transparent;
        font-size: 15px;
    }
    
    .rk-vs-btn.active {
        border-left-color: transparent;
        border-bottom-color: var(--rk-vs-blue);
    }
    
    /* Pokazujemy strzałki na mobile */
    .rk-vs-chevron { display: block; }
    .rk-vs-btn.active .rk-vs-chevron { transform: rotate(180deg); }
    
    /* Wyświetlanie paneli pod przyciskami jako akordeon na mobile */
    .rk-vs-nav .rk-vs-panel {
        display: none;
        padding: 20px;
        background: #ffffff;
        border-bottom: 1px solid var(--rk-vs-border);
    }
    
    .rk-vs-nav .rk-vs-panel.active {
        display: block !important;
    }

    .rk-vs-cards-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-vs-panel-title { font-size: 18px; margin-bottom: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-zderzenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Koszt za 1 kWh pojemności: Brutalne zderzenie technologii",
    "description": "Szczegółowe porównanie parametrów technicznych i kosztowych magazynu termicznego (bufor + wylewka) względem magazynu elektrycznego (LiFePO4).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-zderzenie",
    "name": "Parametry techniczno-ekonomiczne systemów magazynowania energii 2026",
    "description": "Bezpośrednia konfrontacja kosztów, żywotności i efektywności dla dwóch wiodących metod akumulacji energii w domu jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena za 1kwh magazyn energii",
      "żywotność magazynu energii lifepo4",
      "pojemność cieplna wylewki",
      "bufor ciepła vs akumulator prądu",
      "sprawność magazynowania energii"
    ],
    "measurementTechnique": "Interaktywna analiza wielokryterialna uwzględniająca pojemność użytkową, koszt jednostkowy CAPEX, sprawność konwersji oraz żywotność technologiczną.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność: Bufor (69,91 kWh termiczna) vs LiFePO4 (10 kWh elektryczna)",
        "Koszt jednostkowy: Bufor (100-130 PLN/kWh) vs LiFePO4 (1700-3500 PLN/kWh)",
        "Żywotność: Bufor (25-40 lat) vs LiFePO4 (10-12 lat)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-zderzenie",
    "name": "Eksplorator Technologii Akumulacyjnych",
    "description": "Wizualne narzędzie filtrujące ułatwiające zestawienie twardych danych fizycznych ze specyfikacjami urządzeń fotowoltaicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vs-container" id="zderzenie-tech-app">

    <div class="rk-sr-only">
        Słowa kluczowe analizy: cena za 1kwh magazyn energii, żywotność magazynu energii lifepo4, pojemność cieplna wylewki, bufor ciepła vs akumulator prądu, sprawność magazynowania energii.
    </div>

    <div class="rk-vs-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: var(--rk-vs-orange);">
                <path d="M12 2L2 7l10 5 10-5-10-5z"></path>
                <path d="M2 17l10 5 10-5"></path>
                <path d="M2 12l10 5 10-5"></path>
            </svg>
            Brutalne zderzenie technologii
        </h2>
        <p>Sprawdź różnice, aby zobaczyć, jak przepaść technologiczna uderza bezpośrednio w Twój portfel i bezpieczeństwo inwestycji.</p>
    </div>

    <div class="rk-vs-body">
        
        <div class="rk-vs-nav" id="vsNavItems">
            
            <div class="rk-vs-item">
                <button class="rk-vs-btn active" data-target="pojemnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                        Realna Pojemność
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-pojemnosc"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="koszt-calkowity">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Koszt Całkowity
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-koszt-calkowity"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="koszt-1kwh">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Koszt za 1 kWh
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-koszt-1kwh"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="zywotnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        Żywotność Systemu
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-zywotnosc"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="sprawnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Sprawność Cyklu
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-sprawnosc"></div>
            </div>

        </div>

        <div class="rk-vs-desktop-content">
            <div class="rk-vs-badge">VS</div>
            <div id="desktop-render-area">
                </div>
        </div>

    </div>
</div>

<div id="vs-templates" style="display:none;">
    
    <div id="content-pojemnosc">
        <h3 class="rk-vs-panel-title">Realna pojemność użytkowa</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg> Bufor + Masa Wylewki
                </div>
                <div class="rk-tech-val">~ 69,91 kWh</div>
                <div class="rk-tech-sub">Energia termiczna skumulowana w wodzie i posadzce. Zapas na kilkanaście godzin pracy.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect width="16" height="10" x="2" y="7" rx="2" ry="2"></rect><line x1="22" x2="22" y1="11" y2="13"></line></svg> Magazyn Elektryczny (LiFePO4)
                </div>
                <div class="rk-tech-val">10,00 kWh</div>
                <div class="rk-tech-sub">Zaledwie ułamek potrzebnej pojemności elektrycznej dla pracującej w zimie pompy ciepła.</div>
            </div>
        </div>
    </div>

    <div id="content-koszt-calkowity">
        <h3 class="rk-vs-panel-title">Koszt inwestycji (Zakup + Montaż)</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">7 000 &#8211; 9 000 zł</div>
                <div class="rk-tech-sub">Wymaga uwzględnienia we wczesnym <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekcie ogrzewania podłogowego</a>.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">17 000 &#8211; 35 000 zł</div>
                <div class="rk-tech-sub">Sam zestaw bateryjny bez falownika. Zamrożenie ogromnego kapitału.</div>
            </div>
        </div>
    </div>

    <div id="content-koszt-1kwh">
        <h3 class="rk-vs-panel-title">Koszt jednostkowy za 1 kWh pojemności</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">ok. 100 &#8211; 130 zł/kWh</div>
                <div class="rk-tech-sub">Najtańszy sposób na przesunięcie zużycia przy taryfach dynamicznych.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">ok. 1700 &#8211; 3500 zł/kWh</div>
                <div class="rk-tech-sub">Cena zaporowa. Przepłacasz ponad dziesięciokrotnie za każdy kilowat.</div>
            </div>
        </div>
    </div>

    <div id="content-zywotnosc">
        <h3 class="rk-vs-panel-title">Faktyczna żywotność systemu</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">25 &#8211; 40 lat</div>
                <div class="rk-tech-sub">Stal i beton nie ulegają zużyciu technologicznemu w zamkniętym układzie wodnym.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">10 &#8211; 12 lat</div>
                <div class="rk-tech-sub">Nieuchronna degradacja ogniw chemicznych i spadek pojemności poniżej 80%.</div>
            </div>
        </div>
    </div>

    <div id="content-sprawnosc">
        <h3 class="rk-vs-panel-title">Sprawność i straty cyklu</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">95 &#8211; 98%</div>
                <div class="rk-tech-sub">Brak elektroniki = brak strat konwersji. Gwarantują to izolacje termiczne (EPS/PUR).</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">85 &#8211; 90%</div>
                <div class="rk-tech-sub">Gigantyczne straty ciepła przy ciągłej konwersji prądu zmiennego na stały (DC/AC).</div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-vs-btn');
    const desktopArea = document.getElementById('desktop-render-area');

    function renderContent(targetId, isMobile) {
        const sourceHtml = document.getElementById('content-' + targetId).innerHTML;

        if (isMobile) {
            // Wyczyść wszystkie mobile panele
            document.querySelectorAll('.rk-vs-item .rk-vs-panel').forEach(p => {
                p.innerHTML = '';
                p.classList.remove('active');
            });
            // Wrzuć HTML do klikniętego panelu i otwórz go
            const mobContainer = document.getElementById('mob-' + targetId);
            mobContainer.innerHTML = sourceHtml;
            mobContainer.classList.add('active');
        } else {
            // Wrzuć HTML do prawego panelu
            desktopArea.innerHTML = `<div class="rk-vs-panel active">${sourceHtml}</div>`;
        }
    }

    // Inicjalizacja pierwszego elementu
    const firstTarget = 'pojemnosc';
    const isMobileInit = window.innerWidth <= 768;
    renderContent(firstTarget, isMobileInit);

    // Obsługa kliknięć
    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const isMobile = window.innerWidth <= 768;
            const targetId = this.getAttribute('data-target');
            
            // Jeśli to mobile i klikamy aktywny przycisk -> zwiń go
            if (isMobile && this.classList.contains('active')) {
                this.classList.remove('active');
                document.getElementById('mob-' + targetId).classList.remove('active');
                return;
            }

            // Reset stanów
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Render
            renderContent(targetId, isMobile);
        });
    });

    // Reagowanie na zmianę rozmiaru okna (odśwież wyświetlanie)
    window.addEventListener('resize', function() {
        const activeBtn = document.querySelector('.rk-vs-btn.active');
        if(activeBtn) {
            const isMobile = window.innerWidth <= 768;
            const targetId = activeBtn.getAttribute('data-target');
            renderContent(targetId, isMobile);
        }
    });
});
</script>



<style>
:root {
    --rk-cf-dark: #0f172a;
    --rk-cf-navy: #1e293b;
    --rk-cf-blue: #0284c7;
    --rk-cf-green: #10b981;
    --rk-cf-green-light: #f0fdf4;
    --rk-cf-red: #ef4444;
    --rk-cf-red-light: #fef2f2;
    --rk-cf-gray: #64748b;
    --rk-cf-light: #f8fafc;
    --rk-cf-border: #e2e8f0;
    --rk-cf-orange: #f59e0b;
}

.rk-cf-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-cf-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-cf-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-cf-dark) 0%, var(--rk-cf-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-cf-blue);
}

.rk-cf-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-cf-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Nawigacja Czasowa */
.rk-cf-timeline {
    display: flex;
    background: var(--rk-cf-light);
    border-bottom: 1px solid var(--rk-cf-border);
}

.rk-cf-time-btn {
    flex: 1;
    padding: 20px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--rk-cf-gray);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-cf-time-btn svg {
    width: 24px;
    height: 24px;
    transition: transform 0.3s;
}

.rk-cf-time-btn:hover {
    color: var(--rk-cf-blue);
    background: #ffffff;
}

.rk-cf-time-btn:hover svg {
    transform: translateY(-3px);
}

.rk-cf-time-btn.active {
    color: var(--rk-cf-blue);
    border-bottom-color: var(--rk-cf-blue);
    background: #ffffff;
}

/* Zawartość Paneli */
.rk-cf-panel {
    display: none;
    padding: 40px 50px;
    animation: fadeInCF 0.4s ease;
}

.rk-cf-panel.active {
    display: block;
}

@keyframes fadeInCF {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-cf-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* Karty Porównawcze */
.rk-cf-card {
    border: 1px solid var(--rk-cf-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    overflow: hidden;
}

.rk-cf-card.state-good {
    background: var(--rk-cf-green-light);
    border-color: var(--rk-cf-green);
}

.rk-cf-card.state-bad {
    background: var(--rk-cf-red-light);
    border-color: var(--rk-cf-red);
}

.rk-cf-card.state-neutral {
    background: #ffffff;
    border-color: var(--rk-cf-border);
}

.rk-cf-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cf-dark);
    margin: 0 0 5px 0;
}

.rk-cf-card-subtitle {
    font-size: 13px;
    color: var(--rk-cf-gray);
    font-weight: 600;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.rk-cf-data {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-cf-data ul {
    margin: 15px 0 0 0;
    padding: 0;
    list-style: none;
}

.rk-cf-data li {
    padding: 10px 0;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
}

.rk-cf-data li:last-child {
    border-bottom: none;
}

.rk-cf-highlight {
    font-size: 22px;
    font-weight: 900;
    display: block;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 2px solid rgba(0,0,0,0.1);
}

.text-green { color: #059669; }
.text-red { color: #dc2626; }
.text-dark { color: var(--rk-cf-dark); }

/* Detale linków */
.rk-cf-data a {
    color: var(--rk-cf-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-cf-header, .rk-cf-panel { padding: 30px 20px; }
    .rk-cf-header h2 { font-size: 22px; flex-direction: column; }
    .rk-cf-timeline { flex-wrap: wrap; }
    .rk-cf-time-btn { flex: 0 0 50%; padding: 15px; font-size: 12px; }
    .rk-cf-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-cf-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-cashflow",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Analiza przepływu pieniędzy w czasie: Kto zarobi, a kto straci?",
    "description": "Zestawienie przepływów kapitału dla systemów akumulacji ciepła i prądu w okresie 20 lat eksploatacji budynku, z uwzględnieniem kosztów serwisu i wymiany podzespołów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-cashflow",
    "name": "Symulacja Cash Flow 20-letnia: Magazyn vs Bufor (2026)",
    "description": "Szczegółowe dane finansowe obejmujące koszty startowe, okres amortyzacji oraz koszty serwisowe instalacji grzewczych i fotowoltaicznych po 15 latach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator zwrotu z instalacji fotowoltaicznej",
      "opłacalność magazynu energii 2026",
      "żywotność akumulatorów do fotowoltaiki",
      "koszt wymiany falownika",
      "zyski z taryf dynamicznych"
    ],
    "measurementTechnique": "Okresowa analiza NPV (Net Present Value) uproszczona do bilansu kosztów startowych i sumarycznych zysków/strat operacyjnych w przedziałach 5-letnich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1-5 lat: Zwrot kosztów bufora ciepła vs powolna spłata PV.",
        "Etap 6-15 lat: Generowanie 15k PLN zysku przez bufor vs dojście PV do progu rentowności.",
        "Kryzys 15. roku: Spadek sprawności PV o 25%, koszt wymiany falownika i regeneracji baterii (15k-20k PLN).",
        "Bilans 20 lat: Bufor generuje 23k PLN netto, system PV kończy w okolicach 0 PLN ze względu na amortyzację."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-cashflow",
    "name": "Symulator Przepływów Kapitałowych HVAC",
    "description": "Narzędzie interaktywne ilustrujące na osi czasu ukryte koszty serwisowe i degradację podzespołów w popularnych systemach energetycznych budynków.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cf-container" id="cashflow-app">
    
    <div class="rk-sr-only">
        Rozwiązania: kalkulator zwrotu z instalacji fotowoltaicznej, opłacalność magazynu energii 2026, żywotność akumulatorów do fotowoltaiki, koszt wymiany falownika, zyski z taryf dynamicznych.
    </div>

    <div class="rk-cf-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: var(--rk-cf-orange);">
                <line x1="12" y1="1" x2="12" y2="23"></line>
                <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
            </svg>
            Analiza przepływu pieniędzy w czasie
        </h2>
        <p>Wielu inwestorów dało się naciągnąć na narrację o "darmowym prądzie". Zobaczmy, jak wygląda czysty przepływ kapitału w horyzoncie 20 lat eksploatacji budynku dla obu wariantów.</p>
    </div>

    <div class="rk-cf-timeline" id="cfTabs">
        <button class="rk-cf-time-btn active" data-target="etap-start">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Start & Lata 1–5
        </button>
        <button class="rk-cf-time-btn" data-target="etap-zysk">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
            Lata 6–15
        </button>
        <button class="rk-cf-time-btn" data-target="etap-kryzys">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Kryzys 15. Roku
        </button>
        <button class="rk-cf-time-btn" data-target="etap-final">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Bilans 20 Lat
        </button>
    </div>

    <div class="rk-cf-panel active" id="etap-start">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Bufor Ciepła 1000L</div>
                <div class="rk-cf-data">
                    <p>Zamiast w elektronikę, inwestujesz w odpowiednią masę wody i betonu, opierając się na <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekcie instalacji</a>.</p>
                    <ul>
                        <li>Koszt początkowy: <strong>7 000 PLN</strong></li>
                        <li>Lata 1–5: <strong>Szybka spłata kosztów z oszczędności</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Spłacony w 5 lat.</span>
                </div>
            </div>
            <div class="rk-cf-card state-bad">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">PV 10 kWp + Magazyn 10 kWh</div>
                <div class="rk-cf-data">
                    <p>Zamrażasz potężny kapitał w sprzęcie, który ulega zużyciu technologicznemu, zanim zdąży na siebie zapracować.</p>
                    <ul>
                        <li>Koszt początkowy: <strong>60 000 PLN</strong></li>
                        <li>Lata 1–5: <strong>Instalacja ledwie w 1/3 drogi do spłaty</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-red">-40 000 PLN pod kreską.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-zysk">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Praca na "Czysto"</div>
                <div class="rk-cf-data">
                    <p>Woda w zamkniętym zładzie i betonowa wylewka nie ulegają degradacji. Automatyka przy <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">taryfach dynamicznych</a> działa perfekcyjnie.</p>
                    <ul>
                        <li>Zysk roczny: <strong>1 500 PLN</strong></li>
                        <li>Okres: <strong>10 lat pracy na czysto</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">+15 000 PLN czystego zysku.</span>
                </div>
            </div>
            <div class="rk-cf-card state-neutral">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Mozolne odrabianie strat</div>
                <div class="rk-cf-data">
                    <p>Instalacja powoli zmierza do punktu rentowności. Roczna oszczędność ogólna z PV i buforowania prądu to około 4 000 PLN.</p>
                    <ul>
                        <li>Kalkulacja zwrotu: <strong>60 000 PLN / 4 000 PLN = 15 lat</strong></li>
                        <li>Status układu: <strong>Wychodzenie na zero</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-dark">Dopiero dobija do 0 PLN.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-kryzys">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Bez zmian, bez stresu</div>
                <div class="rk-cf-data">
                    <p>Stalowy bufor ciepła nie wykazuje oznak zużycia. System pracuje tak samo wydajnie, jak w dniu uruchomienia pompy.</p>
                    <ul>
                        <li>Koszt serwisu zbiornika: <strong>0 PLN</strong></li>
                        <li>Degradacja pojemności cieplnej: <strong>0%</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Brak ukrytych kosztów.</span>
                </div>
            </div>
            <div class="rk-cf-card state-bad">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Tzw. Złota Klatka</div>
                <div class="rk-cf-data">
                    <p>To moment, o którym handlowcy milczą. Spadek sprawności ogniw spada poniżej 75%, falownik ulega uszkodzeniu po gwarancji.</p>
                    <ul>
                        <li>Konieczność zakupu nowego falownika</li>
                        <li>Regeneracja/wymiana modułów bateryjnych</li>
                    </ul>
                    <span class="rk-cf-highlight text-red">Koszt serwisu: 15 000 - 20 000 PLN.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-final">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Zwycięzca Logiki</div>
                <div class="rk-cf-data">
                    <p>Kolejne 5 lat (lata 16-20) to dodatkowe 7 500 PLN oszczędności.</p>
                    <ul>
                        <li>Całkowite odzyskanie wkładu: <strong>Tak (7 000 PLN)</strong></li>
                        <li>Stan systemu: <strong>W pełni sprawny</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Bilans końcowy: +23 000 PLN na PLUS.</span>
                </div>
            </div>
            <div class="rk-cf-card state-neutral" style="border-color: var(--rk-cf-orange); background: #fffbeb;">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Wyjście na remis</div>
                <div class="rk-cf-data">
                    <p>Inwestor z trudem odrabia koszty serwisu z 15. roku, stając przed perspektywą ponownego zakupu całego zestarzałego systemu OZE.</p>
                    <ul>
                        <li>Realny zysk netto: <strong>Od 0 PLN do 5 000 PLN</strong></li>
                        <li>Konieczność kolejnych inwestycji: <strong>Bliska</strong></li>
                    </ul>
                    <span class="rk-cf-highlight" style="color: var(--rk-cf-orange);">Bilans końcowy: ~0 PLN.</span>
                </div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-cf-time-btn');
    const panels = document.querySelectorAll('.rk-cf-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Czyszczenie
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-chart-dark: #0f172a;
    --rk-chart-blue: #0284c7;
    --rk-chart-red: #ef4444;
    --rk-chart-green: #10b981;
    --rk-chart-gray: #64748b;
    --rk-chart-border: #e2e8f0;
    --rk-chart-bg: #ffffff;
    --rk-chart-orange: #f97316;
}

.rk-chart-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-chart-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-chart-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-chart-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-chart-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-chart-orange);
}

.rk-chart-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.rk-chart-header p {
    color: #94a3b8;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
}

/* Interaktywna Oś Czasu */
.rk-timeline-nav {
    display: flex;
    justify-content: space-between;
    background: #f8fafc;
    padding: 20px 50px;
    border-bottom: 1px solid var(--rk-chart-border);
    position: relative;
}

/* Linia łącząca w tle */
.rk-timeline-nav::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 70px;
    right: 70px;
    height: 3px;
    background: #cbd5e1;
    transform: translateY(-5px);
    z-index: 1;
}

.rk-time-step {
    position: relative;
    z-index: 2;
    background: #ffffff;
    border: 3px solid #cbd5e1;
    color: var(--rk-chart-gray);
    font-weight: 800;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-time-step span {
    font-size: 10px;
    text-transform: uppercase;
    line-height: 1;
}

.rk-time-step strong {
    font-size: 16px;
    line-height: 1;
    margin-top: 2px;
}

.rk-time-step:hover {
    border-color: var(--rk-chart-blue);
    transform: scale(1.1);
}

.rk-time-step.active {
    border-color: var(--rk-chart-orange);
    background: var(--rk-chart-orange);
    color: #ffffff;
    transform: scale(1.2);
    box-shadow: 0 10px 15px -3px rgba(249, 115, 22, 0.3);
}

/* Prezentacja Danych (Słupki i Wartości) */
.rk-chart-display {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-chart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.rk-chart-col {
    background: #f8fafc;
    border: 1px solid var(--rk-chart-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-chart-col h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-chart-dark);
    margin: 0 0 5px 0;
    position: relative;
    z-index: 2;
}

.rk-col-desc {
    font-size: 13px;
    color: var(--rk-chart-gray);
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

/* Wizualny wskaźnik bilansu (słupek) */
.rk-bar-bg {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0%; /* Zmieniane przez JS */
    transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    opacity: 0.15;
}

.rk-value-display {
    font-size: 42px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.value-negative { color: var(--rk-chart-red); }
.value-neutral { color: var(--rk-chart-gray); }
.value-positive { color: var(--rk-chart-green); }

/* Wniosek końcowy */
.rk-chart-conclusion {
    padding: 35px 50px;
    background: #f1f5f9;
    border-top: 1px solid var(--rk-chart-border);
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-conclusion-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background: var(--rk-chart-dark);
    color: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-conclusion-text h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-chart-dark);
}

.rk-conclusion-text p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.rk-conclusion-text strong {
    color: var(--rk-chart-orange);
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-chart-header, .rk-timeline-nav, .rk-chart-display, .rk-chart-conclusion { padding: 25px 20px; }
    .rk-timeline-nav::before { left: 30px; right: 30px; }
    .rk-time-step { width: 40px; height: 40px; }
    .rk-time-step strong { font-size: 14px; }
    .rk-chart-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-value-display { font-size: 36px; }
    .rk-chart-conclusion { flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-wykres",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Skumulowany bilans finansowy w czasie: Bufor vs Magazyn PV",
    "description": "Interaktywna analiza zwrotu z inwestycji (ROI) w perspektywie 20-letniej. Porównanie magazynu termicznego z instalacją fotowoltaiczną i akumulatorem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-wykres",
    "name": "Przepływy finansowe w czasie (20 lat): Bufor cieplny vs PV z Magazynem",
    "description": "Matryca danych finansowych ilustrująca tempo zwrotu inwestycji w fizykę budynku w zestawieniu z zakupem elektroniki z ograniczoną żywotnością.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w bufor ciepla",
      "po ilu latach zwraca sie magazyn energii",
      "wykres oplacalnosci fotowoltaiki 2026",
      "bufor czy magazyn energii kalkulator",
      "amortyzacja ogrzewania podlogowego"
    ],
    "measurementTechnique": "Algorytm porównawczy kapitału netto (koszt inwestycyjny minus skumulowane oszczędności z taryf dynamicznych) w punktach 0, 5, 10, 15 i 20 lat.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rok 0: Bufor (-7 000 PLN) vs PV+Magazyn (-60 000 PLN)",
        "Rok 5: Bufor (0 PLN - pełny zwrot) vs PV+Magazyn (-40 000 PLN)",
        "Rok 15: Bufor (+15 500 PLN zysku) vs PV+Magazyn (0 PLN - próg opłacalności)",
        "Rok 20: Bufor (+23 000 PLN zysku) vs PV+Magazyn (średnio +5 000 PLN uwzględniając serwis)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-wykres",
    "name": "Interaktywny symulator stopy zwrotu (ROI)",
    "description": "Dynamiczny komponent webowy pozwalający inwestorowi śledzić bilans zysków i strat instalacji grzewczej i OZE na dedykowanej osi czasu.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chart-container" id="sekcja-wykresu-app">
    <div class="rk-chart-header">
        <h2>Skumulowany bilans finansowy: Bufor vs PV z Magazynem</h2>
        <p>Przeklikaj oś czasu inwestycji, aby zobaczyć bezwzględne liczby określające zysk lub stratę netto po danym okresie.</p>
    </div>

    <div class="rk-timeline-nav" id="timelineNav">
        <div class="rk-time-step active" data-year="0">
            <span>Rok</span><strong>0</strong>
        </div>
        <div class="rk-time-step" data-year="5">
            <span>Rok</span><strong>5</strong>
        </div>
        <div class="rk-time-step" data-year="10">
            <span>Rok</span><strong>10</strong>
        </div>
        <div class="rk-time-step" data-year="15">
            <span>Rok</span><strong>15</strong>
        </div>
        <div class="rk-time-step" data-year="20">
            <span>Rok</span><strong>20</strong>
        </div>
    </div>

    <div class="rk-chart-display">
        <div class="rk-chart-grid">
            
            <div class="rk-chart-col">
                <div class="rk-bar-bg" id="bgBufor"></div>
                <h3>Magazyn Termiczny</h3>
                <div class="rk-col-desc">Bufor ciepła + podłogówka</div>
                <div class="rk-value-display value-negative" id="valBufor">-7 000 zł</div>
            </div>

            <div class="rk-chart-col">
                <div class="rk-bar-bg" id="bgPv"></div>
                <h3>Magazyn Elektryczny</h3>
                <div class="rk-col-desc">Fotowoltaika 10kWp + Aku 10kWh</div>
                <div class="rk-value-display value-negative" id="valPv">-60 000 zł</div>
            </div>

        </div>
    </div>

    <div class="rk-chart-conclusion">
        <div class="rk-conclusion-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
        </div>
        <div class="rk-conclusion-text">
            <h4>Najmocniejszy wniosek inżynierski</h4>
            <p>
                W chwili, gdy instalacja fotowoltaiczna z akumulatorem w ogóle zaczyna wypracowywać próg rentowności (okolice 15. roku), system oparty na prostym, bezawaryjnym buforze ciepła zdążył już wygenerować <strong>kilkanaście tysięcy złotych czystych oszczędności</strong>, bez ryzyka konieczności zakupu nowych ogniw chemicznych.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych wykresu (wartości w PLN)
    const chartData = {
        0:  { bufor: -7000, pv: -60000 },
        5:  { bufor: 0,     pv: -40000 },
        10: { bufor: 8000,  pv: -20000 },
        15: { bufor: 15500, pv: 0 },
        20: { bufor: 23000, pv: 5000 } // Dla PV uśredniono wartość "0 do 10000" do 5000 zł
    };

    const timeSteps = document.querySelectorAll('.rk-time-step');
    const valBuforEl = document.getElementById('valBufor');
    const valPvEl = document.getElementById('valPv');
    const bgBuforEl = document.getElementById('bgBufor');
    const bgPvEl = document.getElementById('bgPv');

    // Funkcja formatująca kwotę w PLN
    function formatPLN(value) {
        if (value === 0) return '0 zł';
        const prefix = value > 0 ? '+' : '';
        // Formatowanie z użyciem spacji jako separatora tysięcy
        const formatted = Math.abs(value).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
        return `${prefix}${formatted} zł`;
    }

    // Funkcja dobierająca styl dla wartości (kolor tekstu i tła)
    function applyStyles(value, textEl, bgEl) {
        textEl.classList.remove('value-negative', 'value-neutral', 'value-positive');
        
        // Obliczanie wysokości słupka "w tle" proporcjonalnie do wartości
        // Max straty to 60k, Max zysk to 23k. Ustawmy 60k jako 100% tła.
        const percentage = Math.min(Math.abs(value) / 60000 * 100, 100);

        if (value < 0) {
            textEl.classList.add('value-negative');
            bgEl.style.backgroundColor = 'var(--rk-chart-red)';
            bgEl.style.height = `${percentage}%`;
        } else if (value === 0) {
            textEl.classList.add('value-neutral');
            bgEl.style.backgroundColor = 'transparent';
            bgEl.style.height = `0%`;
        } else {
            textEl.classList.add('value-positive');
            bgEl.style.backgroundColor = 'var(--rk-chart-green)';
            // Dla wartości dodatnich przeskalujemy tło (23k = 100%)
            const posPercentage = Math.min((value / 25000) * 100, 100);
            bgEl.style.height = `${posPercentage}%`;
        }
    }

    // Inicjalizacja dla roku 0
    applyStyles(chartData[0].bufor, valBuforEl, bgBuforEl);
    applyStyles(chartData[0].pv, valPvEl, bgPvEl);

    // Obsługa zdarzeń na osi czasu
    timeSteps.forEach(step => {
        step.addEventListener('click', function() {
            // Reset active class
            timeSteps.forEach(s => s.classList.remove('active'));
            this.classList.add('active');

            const year = this.getAttribute('data-year');
            const data = chartData[year];

            // Aktualizacja tekstów
            valBuforEl.textContent = formatPLN(data.bufor);
            valPvEl.textContent = formatPLN(data.pv);

            // Aktualizacja stylów/słupków
            applyStyles(data.bufor, valBuforEl, bgBuforEl);
            applyStyles(data.pv, valPvEl, bgPvEl);
        });
    });
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0ea5e9;
    --rk-cs-navy: #1e293b;
    --rk-cs-gray: #64748b;
    --rk-cs-light: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-green: #10b981;
    --rk-cs-red: #ef4444;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-cs-border);
    overflow: hidden;
}

/* Sekcja Eksperta / Nagłówek */
.rk-cs-header {
    display: flex;
    align-items: center;
    gap: 25px;
    padding: 40px 50px;
    background: linear-gradient(to right, var(--rk-cs-dark), var(--rk-cs-navy));
    color: #ffffff;
}

.rk-cs-expert-photo {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    border: 4px solid rgba(255, 255, 255, 0.1);
    object-fit: cover;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
    flex-shrink: 0;
}

.rk-cs-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 8px 0;
    color: #ffffff;
    line-height: 1.2;
}

.rk-cs-expert-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #cbd5e1;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs-badge {
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

/* Parametry brzegowe (Baza) */
.rk-cs-params {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--rk-cs-light);
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-cs-param-item {
    padding: 25px 30px;
    text-align: center;
    border-right: 1px solid var(--rk-cs-border);
}

.rk-cs-param-item:last-child { border-right: none; }

.rk-cs-param-title {
    font-size: 13px;
    color: var(--rk-cs-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    margin-bottom: 8px;
}

.rk-cs-param-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-cs-dark);
}

/* Sekcja Interaktywna - Przełącznik Wariantów */
.rk-cs-interactive {
    padding: 40px 50px;
}

.rk-cs-tabs {
    display: flex;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 35px;
}

.rk-cs-tab {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-cs-gray);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    border: none;
    background: transparent;
}

.rk-cs-tab.active {
    background: #ffffff;
    color: var(--rk-cs-dark);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Wyniki (Karty) */
.rk-cs-result {
    display: none;
    animation: fadeInCS 0.4s ease;
}

.rk-cs-result.active {
    display: block;
}

@keyframes fadeInCS {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-cs-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.rk-cs-box {
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 25px;
    background: #ffffff;
}

.rk-cs-box-title {
    font-size: 14px;
    color: var(--rk-cs-gray);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.rk-cs-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-cs-list li {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px dashed var(--rk-cs-border);
    font-size: 15px;
    color: var(--rk-cs-navy);
}

.rk-cs-list li:last-child { border-bottom: none; }
.rk-cs-list li strong { font-weight: 800; }

.text-green { color: var(--rk-cs-green); }
.text-red { color: var(--rk-cs-red); }

/* Podsumowanie Czasowe */
.rk-cs-timeline-res {
    background: var(--rk-cs-light);
    border-radius: 16px;
    padding: 30px;
    border-left: 4px solid var(--rk-cs-blue);
}

.rk-cs-timeline-res h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-timeline-res p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.rk-cs-timeline-res p:last-child { margin: 0; }

.rk-cs-timeline-res a {
    color: var(--rk-cs-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-cs-header { flex-direction: column; text-align: center; padding: 35px 20px; gap: 15px; }
    .rk-cs-expert-name { justify-content: center; }
    .rk-cs-params { grid-template-columns: 1fr; }
    .rk-cs-param-item { border-right: none; border-bottom: 1px solid var(--rk-cs-border); padding: 20px; }
    .rk-cs-param-item:last-child { border-bottom: none; }
    .rk-cs-interactive { padding: 30px 20px; }
    .rk-cs-tabs { flex-direction: column; }
    .rk-cs-data-grid { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Case Study: Oszczędności z taryf dynamicznych (Dom 150 m²)",
    "description": "Analiza inżynierska Roberta Kucharskiego pokazująca realne koszty i zwrot z inwestycji w bufor ciepła względem magazynu energii na przestrzeni 20 lat.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-casestudy",
    "name": "Kalkulacja zwrotu inwestycyjnego: Bufor vs Magazyn PV (150m2)",
    "description": "Zestawienie twardych danych pokazujących przepływ finansowy dla domu 150m2 zużywającego 5000 kWh energii na cele grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia ozc dla 150m2",
      "ile prądu zużywa pompa ciepła",
      "taryfy dynamiczne kalkulator",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "bufor do pompy ciepła koszty"
    ],
    "measurementTechnique": "Symulacja kosztów w ujęciu 15 i 20 lat z uwzględnieniem amortyzacji sprzętu i wahań cen energii G11 vs taryfy giełdowe.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant 1: Bufor 1000 l (Koszt 7k PLN, Zysk po 20 latach +23k PLN)",
        "Wariant 2: PV + Magazyn (Koszt 60k PLN, Zysk po 20 latach ~0 PLN)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-casestudy",
    "name": "Interaktywne Case Study OZE",
    "description": "Symulator scenariuszy inwestycyjnych pozwalający przełączać modele magazynowania energii dla typowego domu jednorodzinnego.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-wrapper" id="case-study-app">
    <div class="rk-cs-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-cs-expert-photo">
        <div class="rk-cs-header-content">
            <h2>Case Study: Złudzenie 15-letniego zwrotu</h2>
            <div class="rk-cs-expert-name">
                Robert Kucharski 
                <span class="rk-cs-badge">CEO / HVAC</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-params">
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">Budynek</div>
            <div class="rk-cs-param-val">150 m² (4 os.)</div>
        </div>
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">System Grzewczy</div>
            <div class="rk-cs-param-val">Pompa Ciepła</div>
        </div>
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">Roczne Zużycie (Ogrzewanie)</div>
            <div class="rk-cs-param-val">5000 kWh</div>
        </div>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-cs-tabs" id="csTabs">
            <button class="rk-cs-tab active" data-target="wariant-1">Wariant 1: Bufor 1000L + Taryfy Dynamiczne</button>
            <button class="rk-cs-tab" data-target="wariant-2">Wariant 2: Fotowoltaika 10kWp + Magazyn 10kWh</button>
        </div>

        <div class="rk-cs-result active" id="wariant-1">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-box">
                    <div class="rk-cs-box-title">Start Inwestycji</div>
                    <ul class="rk-cs-list">
                        <li>Koszt zakupu i montażu: <strong>~7 000 zł</strong></li>
                        <li>Spadek ceny prądu (średnio): <strong>z 1,00 na 0,70 zł/kWh</strong></li>
                        <li>Roczny koszt ogrzewania: <strong>3 500 zł</strong></li>
                        <li>Oszczędność roczna: <strong class="text-green">+1 500 zł</strong></li>
                        <li>Czas zwrotu: <strong>~4,7 roku</strong></li>
                    </ul>
                </div>
                <div class="rk-cs-box" style="border-color: var(--rk-cs-green); background: #f0fdf4;">
                    <div class="rk-cs-box-title" style="color: var(--rk-cs-green);">Bilans po latach</div>
                    <ul class="rk-cs-list">
                        <li>Zysk (lata 6-15): <strong>+15 000 zł</strong></li>
                        <li>Zysk (lata 16-20): <strong>+7 500 zł</strong></li>
                        <li>Koszty serwisowe/wymiany: <strong>0 zł</strong></li>
                        <li style="border-top: 2px solid var(--rk-cs-green); margin-top: 5px; padding-top: 15px;">
                            Na czysto po 20 latach: <strong class="text-green">+23 000 zł</strong>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="rk-cs-timeline-res" style="border-left-color: var(--rk-cs-green);">
                <h4>Wniosek inżynierski</h4>
                <p>Po 5 latach inwestycja się zwróciła i przechodzi w stan generowania czystego zysku. W momencie, gdy właściciel PV dopiero zbliża się do punktu wyjścia na zero (15. rok), Ty odzyskałeś już swoje 7 000 zł i zarobiłeś dodatkowe 15 000 zł.</p>
                <p>Warunek konieczny: Wylewka i instalacja muszą być oparte o <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">precyzyjne wyliczenia zapotrzebowania cieplnego</a>.</p>
            </div>
        </div>

        <div class="rk-cs-result" id="wariant-2">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-box">
                    <div class="rk-cs-box-title">Start Inwestycji</div>
                    <ul class="rk-cs-list">
                        <li>Koszt systemu (PV+Aku): <strong>~60 000 zł</strong></li>
                        <li>Ograniczenie kosztów: <strong>ok. 80%</strong></li>
                        <li>Roczny koszt po instalacji: <strong>1 000 zł</strong></li>
                        <li>Oszczędność roczna: <strong class="text-green">+4 000 zł</strong></li>
                        <li>Szacowany czas zwrotu: <strong>~15 lat</strong></li>
                    </ul>
                </div>
                <div class="rk-cs-box" style="border-color: var(--rk-cs-red); background: #fef2f2;">
                    <div class="rk-cs-box-title" style="color: var(--rk-cs-red);">Bilans po latach</div>
                    <ul class="rk-cs-list">
                        <li>Skumulowane oszczędności (20 lat): <strong>80 000 zł</strong></li>
                        <li>Wymiana falownika (po 10-15 latach): <strong class="text-red">-5 000 zł</strong></li>
                        <li>Regeneracja magazynu (15. rok): <strong class="text-red">-15 000 zł</strong></li>
                        <li style="border-top: 2px solid var(--rk-cs-red); margin-top: 5px; padding-top: 15px;">
                            Na czysto po 20 latach: <strong>~0 zł (wyjście na zero)</strong>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="rk-cs-timeline-res" style="border-left-color: var(--rk-cs-red);">
                <h4>Wniosek inżynierski</h4>
                <p>W chwili, gdy instalacja na siebie zapracuje (15. rok), degradacja chemiczna ogniw wymusza ogromne nakłady serwisowe. Oszczędności, które system generuje od 16. do 20. roku, pokrywają jedynie koszty wymiany wyeksploatowanej elektroniki.</p>
                <p>Jeśli <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">obliczenia dla ogrzewania podłogowego</a> wykonano błędnie, praca z magazynu w zimie będzie dodatkowo drenowana przez nieefektywną pompę ciepła.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-cs-tab');
    const results = document.querySelectorAll('.rk-cs-result');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Reset active classes
            tabs.forEach(t => t.classList.remove('active'));
            results.forEach(r => r.classList.remove('active'));

            // Set active class
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-navy: #1e293b;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #64748b;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-accent: #38bdf8;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-calc-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, var(--rk-calc-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-calc-blue);
}

.rk-calc-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-calc-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 700px;
    line-height: 1.6;
}

/* Główna Siatka Kalkulatora */
.rk-calc-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Suwaki */
.rk-calc-controls {
    padding: 40px 50px;
    background: var(--rk-calc-light);
    border-right: 1px solid var(--rk-calc-border);
}

.rk-calc-controls h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 25px 0;
}

.rk-input-group {
    margin-bottom: 30px;
}

.rk-input-group:last-child {
    margin-bottom: 0;
}

.rk-input-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 10px;
}

.rk-input-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
}

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-calc-gray);
    font-weight: 500;
    margin-top: 2px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

/* Stylizacja suwaków */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

.rk-range-slider::-webkit-slider-thumb:hover, 
.rk-range-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-range-slider::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.4);
    border: 3px solid #ffffff;
}

/* Prawa Kolumna - Wyniki */
.rk-calc-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-calc-results h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 25px 0;
}

.rk-result-card {
    background: var(--rk-calc-light);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-result-card:last-child {
    margin-bottom: 0;
}

.rk-result-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-calc-gray);
    text-transform: uppercase;
}

.rk-result-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

/* Wyróżnione karty wyników */
.rk-card-highlight {
    background: #f0fdf4;
    border-color: var(--rk-calc-green);
    position: relative;
    overflow: hidden;
}

.rk-card-highlight::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-calc-green);
}

.rk-card-highlight .rk-result-title {
    color: #065f46;
}

.rk-card-highlight .rk-result-val {
    color: var(--rk-calc-green);
    font-size: 28px;
}

.rk-card-roi {
    background: #eff6ff;
    border-color: var(--rk-calc-blue);
}

.rk-card-roi::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-calc-blue);
}

.rk-card-roi .rk-result-title {
    color: #1e3a8a;
}

.rk-card-roi .rk-result-val {
    color: var(--rk-calc-blue);
    font-size: 28px;
}

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-results { padding: 30px 20px; }
    .rk-calc-header h2 { font-size: 24px; flex-direction: column; }
    .rk-calc-body { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-result-card { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-result-val { align-self: flex-end; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Kalkulator obliczania oszczędności przy przejściu na taryfy dynamiczne",
    "description": "Interaktywne narzędzie inżynierskie do weryfikacji opłacalności inwestycji w bufor ciepła. Oblicz własne ROI na podstawie zużycia i cen RCE.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-kalkulator",
    "name": "Wskaźniki oszczędnościowe taryf dynamicznych dla pomp ciepła (2026)",
    "description": "Zmienne dane wejściowe do kalkulacji okresu zwrotu inwestycji w inteligentne zarządzanie magazynem termicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator zwrotu z bufora ciepla",
      "oplacalnosc taryf dynamicznych",
      "zuzycie pradu przez pompe ciepla",
      "ile kosztuje ogrzewanie domu pompa ciepla",
      "rynkowa cena energii elektrycznej rce"
    ],
    "measurementTechnique": "Algorytm różnicowy: Zapotrzebowanie (kWh) przemnożone przez deltę stawek taryfy G11 i taryfy dynamicznej, odnoszone do kosztów CAPEX bufora.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt bazowy = Zapotrzebowanie x Cena w taryfie płaskiej",
        "Koszt optymalny = Zapotrzebowanie x Uśredniona cena zoptymalizowana",
        "ROI (Zwrot) = Koszt Inwestycji / (Koszt bazowy - Koszt optymalny)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-kalkulator",
    "name": "Symulator ROI: Taryfy Dynamiczne i Bufor Ciepła",
    "description": "Aplikacja webowa pozwalająca inwestorowi na bieżącą, suwakową symulację rocznych kosztów ogrzewania i czasu zwrotu z inwestycji w automatykę budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="kalkulator-ozc-app">
    
    <div class="rk-sr-only">
        Znajdź odpowiedzi na pytania: kalkulator zwrotu z bufora ciepla, opłacalnosc taryf dynamicznych, zuzycie pradu przez pompe ciepla, ile kosztuje ogrzewanie domu pompa ciepla, rynkowa cena energii elektrycznej rce.
    </div>

    <div class="rk-calc-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: var(--rk-calc-accent);">
                <rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect>
                <line x1="8" y1="4" x2="8" y2="20"></line>
                <line x1="16" y1="4" x2="16" y2="20"></line>
                <line x1="4" y1="8" x2="20" y2="8"></line>
                <line x1="4" y1="16" x2="20" y2="16"></line>
            </svg>
            Kalkulator taryf dynamicznych (ROI)
        </h2>
        <p>Wprowadź parametry swojego budynku. Algorytm na żywo przeliczy zapotrzebowanie i udowodni opłacalność przejścia na zarządzanie buforem ciepła i taryfami RCE.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-controls">
            <h3>Parametry Twojej instalacji</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Roczne zużycie energii (Pompa Ciepła) <span>Dla ogrzewania podłogowego i CWU</span></label>
                    <div class="rk-input-value-box"><span id="valZapotrzebowanie">5000</span> kWh</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpZapotrzebowanie" min="2000" max="10000" step="100" value="5000">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Cena bazowa prądu (np. G11) <span>Średni koszt z dystrybucją</span></label>
                    <div class="rk-input-value-box"><span id="valCenaG11">1.00</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpCenaG11" min="0.50" max="2.00" step="0.05" value="1.00">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Taryfa dynamiczna (Zoptymalizowana) <span>Praca bufora w tanich godzinach</span></label>
                    <div class="rk-input-value-box"><span id="valCenaDyn">0.70</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpCenaDyn" min="0.20" max="1.50" step="0.05" value="0.70">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Koszt inwestycji w magazyn termiczny <span>Zakup bufora 1000l + automatyka + montaż</span></label>
                    <div class="rk-input-value-box"><span id="valInwestycja">7000</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpInwestycja" min="3000" max="15000" step="500" value="7000">
            </div>
        </div>

        <div class="rk-calc-results">
            <h3>Wyniki inżynierskie</h3>
            
            <div class="rk-result-card">
                <div class="rk-result-title">Koszt roczny: Taryfa Płaska</div>
                <div class="rk-result-val" id="resKosztG11">5 000 zł</div>
            </div>

            <div class="rk-result-card">
                <div class="rk-result-title">Koszt roczny: Bufor + Dynamiczna</div>
                <div class="rk-result-val" id="resKosztDyn">3 500 zł</div>
            </div>

            <div class="rk-result-card rk-card-highlight">
                <div class="rk-result-title">Zostaje w kieszeni (Co roku)</div>
                <div class="rk-result-val" id="resOszczednosc">1 500 zł</div>
            </div>

            <div class="rk-result-card rk-card-roi rk-card-highlight">
                <div class="rk-result-title">Czas zwrotu inwestycji (ROI)</div>
                <div class="rk-result-val" id="resZwrot">4,7 lat</div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elZap = document.getElementById('inpZapotrzebowanie');
    const elG11 = document.getElementById('inpCenaG11');
    const elDyn = document.getElementById('inpCenaDyn');
    const elInv = document.getElementById('inpInwestycja');

    // Displays
    const valZap = document.getElementById('valZapotrzebowanie');
    const valG11 = document.getElementById('valCenaG11');
    const valDyn = document.getElementById('valCenaDyn');
    const valInv = document.getElementById('valInwestycja');

    // Results
    const resKosztG11 = document.getElementById('resKosztG11');
    const resKosztDyn = document.getElementById('resKosztDyn');
    const resOszczednosc = document.getElementById('resOszczednosc');
    const resZwrot = document.getElementById('resZwrot');

    // Format helpers
    function formatMoney(amount) {
        return amount.toLocaleString('pl-PL', { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + ' zł';
    }

    function formatNumber(amount) {
        return amount.toLocaleString('pl-PL');
    }

    function calculate() {
        // Read values
        const q = parseFloat(elZap.value);
        const c_base = parseFloat(elG11.value);
        const c_dyn = parseFloat(elDyn.value);
        const inv = parseFloat(elInv.value);

        // Update displays
        valZap.textContent = formatNumber(q);
        valG11.textContent = c_base.toFixed(2);
        valDyn.textContent = c_dyn.toFixed(2);
        valInv.textContent = formatNumber(inv);

        // Math
        const kosztG11 = q * c_base;
        const kosztDyn = q * c_dyn;
        const oszczednosc = kosztG11 - kosztDyn;

        // Update UI Results
        resKosztG11.textContent = formatMoney(kosztG11);
        resKosztDyn.textContent = formatMoney(kosztDyn);

        if (oszczednosc > 0) {
            resOszczednosc.textContent = formatMoney(oszczednosc);
            resOszczednosc.style.color = 'var(--rk-calc-green)';
            
            const roi = inv / oszczednosc;
            resZwrot.textContent = roi.toFixed(1).replace('.', ',') + ' lat';
            resZwrot.style.color = 'var(--rk-calc-blue)';
        } else {
            resOszczednosc.textContent = 'Brak oszczędności';
            resOszczednosc.style.color = 'var(--rk-calc-red)';
            resZwrot.textContent = 'Nigdy';
            resZwrot.style.color = 'var(--rk-calc-red)';
        }
    }

    // Event Listeners
    elZap.addEventListener('input', calculate);
    elG11.addEventListener('input', calculate);
    elDyn.addEventListener('input', calculate);
    elInv.addEventListener('input', calculate);

    // Initial calculation
    calculate();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-green: #10b981;
    --rk-err-green-light: #ecfdf5;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
    --rk-err-accent: #3b82f6;
}

.rk-err-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-err-red);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-err-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-err-red);
}

.rk-err-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-err-alert-icon {
    width: 36px;
    height: 36px;
    color: #fca5a5;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
    50% { transform: scale(1.1); filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.8)); }
    100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
}

.rk-err-subtitle {
    font-size: 17px;
    color: #fecaca;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Ciało i Siatka Błędów */
.rk-err-body {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

/* Interaktywna Karta */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.3s;
    display: flex;
    flex-direction: column;
}

.rk-err-card:hover {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}

.rk-err-card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.rk-err-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-dark);
    flex-shrink: 0;
}

.rk-err-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.3;
}

/* Przełącznik (Toggle) */
.rk-err-toggle-wrap {
    background: #f1f5f9;
    border-radius: 10px;
    padding: 4px;
    display: flex;
    position: relative;
    margin-bottom: 20px;
}

.rk-err-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-err-gray);
    cursor: pointer;
    border: none;
    background: transparent;
    border-radius: 8px;
    transition: all 0.3s ease;
    z-index: 2;
}

.rk-err-toggle-btn.active-red {
    color: var(--rk-err-red);
}

.rk-err-toggle-btn.active-green {
    color: var(--rk-err-green);
}

.rk-err-toggle-slider {
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 4px;
    width: calc(50% - 4px);
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Stany Karty */
.rk-err-content-wrap {
    flex-grow: 1;
    position: relative;
}

.rk-err-content {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    padding: 15px;
    border-radius: 10px;
    border-left: 4px solid transparent;
    display: none;
    animation: fadeIn 0.4s ease;
}

.rk-err-content.active {
    display: block;
}

.rk-err-content.state-bad {
    background: var(--rk-err-red-light);
    border-color: var(--rk-err-red);
    color: #7f1d1d;
}

.rk-err-content.state-good {
    background: var(--rk-err-green-light);
    border-color: var(--rk-err-green);
    color: #064e3b;
}

.rk-err-content a {
    color: inherit;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Mocne CTA */
.rk-err-cta-box {
    padding: 40px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-err-border);
}

.rk-err-cta-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
}

.rk-err-cta-text {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-err-dark);
    color: #ffffff;
    font-size: 17px;
    font-weight: 800;
    padding: 18px 40px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #1e293b;
    box-shadow: 0 20px 35px -5px rgba(15, 23, 42, 0.5);
    border-color: #cbd5e1;
    color: #ffffff;
}

.rk-btn-massive svg { transition: transform 0.3s; }
.rk-btn-massive:hover svg { transform: translateX(6px); }

@media (max-width: 768px) {
    .rk-err-header, .rk-err-body, .rk-err-cta-box { padding: 30px 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-err-header h2 { font-size: 22px; align-items: flex-start; }
    .rk-err-alert-icon { width: 28px; height: 28px; margin-top: 2px; flex-shrink: 0; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 15px; flex-direction: column; gap: 8px;}
    .rk-btn-massive svg { transform: rotate(90deg); }
    .rk-btn-massive:hover svg { transform: translateY(5px) rotate(90deg); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Najczęstsze błędy inwestorów i wykonawców w instalacjach akumulacyjnych",
    "description": "Zestawienie krytycznych błędów wykonawczych niszczących opłacalność magazynowania ciepła: od zbyt cienkiej wylewki po brak integracji SG Ready.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-bledy",
    "name": "Zestawienie krytycznych błędów instalacyjnych 2026",
    "description": "Baza danych błędów wykonawczych w systemach ogrzewania podłogowego współpracujących z taryfami dynamicznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubosc wylewki na ogrzewanie podlogowe",
      "sg ready pompa ciepla",
      "sprzeglo hydrauliczne podlogowka",
      "sterowanie strefowe ogrzewaniem"
    ],
    "measurementTechnique": "Analiza porównawcza parametrów brzegowych instalacji termicznych (pojemność cieplna, automatyka EMS, pojemność zładu).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Wylewka poniżej 4,5 cm niszcząca bezwładność.",
        "Błąd 2: Brak komunikacji Modbus/SG Ready.",
        "Błąd 3: Bufory 100-200l zamiast 500-1000l.",
        "Błąd 4: Brak blokad termostatycznych stref nocnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-bledy",
    "name": "Symulator Weryfikacji Błędów Instalacyjnych",
    "description": "Narzędzie pozwalające na interaktywne porównanie błędów wykonawczych z prawidłowymi standardami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="sekcja-bledow-app">
    <div class="rk-err-header">
        <h2>
            <svg class="rk-err-alert-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
            Najczęstsze błędy inwestorów i wykonawców
        </h2>
        <p class="rk-err-subtitle">Przełącz widok, aby zobaczyć, jak amatorszczyzna niszczy portfel i jak wygląda rzetelny standard inżynierski.</p>
    </div>

    <div class="rk-err-body">
        <div class="rk-err-grid">
            
            <div class="rk-err-card" data-card-id="1">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                    </div>
                    <h3>Brak obliczeń bezwładności</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Zastosowanie zbyt cienkiej warstwy jastrychu (np. poniżej 4,5 cm nad rurami) skutkuje drastycznym obniżeniem masy akumulacyjnej i zbyt szybkim stygnięciem podłogi.
                    </div>
                    <div class="rk-err-content state-good">
                        Precyzyjnie dobrana <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">grubość wylewki betonowej</a> (zazwyczaj 6-7 cm nad rurką) gwarantuje odpowiednią bezwładność, oddając ciepło przez wiele godzin w drogiej taryfie.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="2">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    <h3>Ignorowanie komunikacji</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Zakup pompy ciepła bez fabrycznego protokołu SG Ready (Smart Grid) lub otwartego interfejsu Modbus uniemożliwia spięcie urządzenia z systemem EMS, który śledzi ceny taryfy dynamicznej.
                    </div>
                    <div class="rk-err-content state-good">
                        Pompa ciepła w pełni współpracuje z <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">inteligentnymi sterownikami</a> (EMS), samodzielnie uruchamiając się, gdy prąd giełdowy osiąga najniższe wartości w ciągu doby.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="3">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14.899A7 7 0 1 1 20 14.9V19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4.101z"></path><path d="M12 2v6"></path><path d="M8 5h8"></path></svg>
                    </div>
                    <h3>Miniaturowe bufory</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Instalatorzy masowo montują bufory o pojemności 100–200 litrów, twierdząc, że to wystarczy. Taki zład wody starcza na 15 minut pracy pompy, a nie na 5 godzin blokady taryfowej.
                    </div>
                    <div class="rk-err-content state-good">
                        Zastosowanie zasobnika 500–1000 litrów, a nie zwykłego <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a>, daje pompie ciepła zapas zładu niezbędny do "naładowania" domu na wiele godzin.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="4">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <h3>Brak strefowania temperatury</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Brak blokad termostatycznych w sypialniach prowadzi do ich przegrzewania podczas nocnego ładowania podłogówki, co niszczy komfort higieniczny człowieka.
                    </div>
                    <div class="rk-err-content state-good">
                        Prawidłowe <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe</a> zamyka obiegi w sypialniach na czas intensywnego ładowania magazynu w salonie, dbając o zdrowy, chłodny sen domowników.
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-cta-box">
        <h3 class="rk-err-cta-title">Budowa to nie miejsce na eksperymenty</h3>
        <p class="rk-err-cta-text">
            Błędy popełnione na etapie wylewek są nie do naprawienia. Zbuduj swój kapitał wiedzy, poznaj inżynierskie triki i zabezpiecz swoją inwestycję przed pseudo-fachowcami.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            ZDOBĄDŹ WIEDZĘ EKSKLUZYWNĄ
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('.rk-err-card');

    cards.forEach(card => {
        const btns = card.querySelectorAll('.rk-err-toggle-btn');
        const slider = card.querySelector('.rk-err-toggle-slider');
        const badContent = card.querySelector('.state-bad');
        const goodContent = card.querySelector('.state-good');

        btns.forEach(btn => {
            btn.addEventListener('click', function() {
                const view = this.getAttribute('data-view');
                
                // Reset active states
                btns.forEach(b => {
                    b.classList.remove('active-red');
                    b.classList.remove('active-green');
                });

                if (view === 'bad') {
                    this.classList.add('active-red');
                    slider.style.transform = 'translateX(0)';
                    goodContent.classList.remove('active');
                    badContent.classList.add('active');
                } else {
                    this.classList.add('active-green');
                    // Przesunięcie slidera: o 100% własnej szerokości + 8px na paddingi
                    slider.style.transform = 'translateX(calc(100% + 8px))';
                    badContent.classList.remove('active');
                    goodContent.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-navy: #1e293b;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-light: #f0f9ff;
    --rk-auth-gray: #64748b;
    --rk-auth-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-green: #10b981;
    --rk-auth-red: #ef4444;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-auth-blue);
    overflow: hidden;
}

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Sekcja Główna Autorytetu (Desktop: Grid 1/2) */
.rk-auth-header {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, var(--rk-auth-navy) 100%);
    color: #ffffff;
}

/* Kolumna Lewa - Zdjęcie i Sociale */
.rk-auth-profile {
    padding: 40px 30px;
    background: rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.rk-auth-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-blue);
    object-fit: cover;
    margin-bottom: 20px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}

.rk-auth-badge {
    background: #0284c7;
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 15px;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    text-decoration: none;
}

.rk-auth-social-link:hover {
    background: var(--rk-auth-blue);
}

/* Kolumna Prawa - Cytat i Tytuł */
.rk-auth-quote-area {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-auth-quote-area h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.rk-auth-quote-box {
    position: relative;
    padding-left: 25px;
    border-left: 4px solid var(--rk-auth-blue);
}

.rk-auth-quote-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.6;
    color: #e2e8f0;
    margin: 0;
    font-style: italic;
}

/* Sekcja Interaktywna - Przełącznik */
.rk-auth-interactive {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-auth-interactive h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 25px 0;
}

.rk-toggle-wrapper {
    display: flex;
    background: var(--rk-auth-light);
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-gray);
    cursor: pointer;
    border-radius: 8px;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-toggle-btn.active[data-view="myth"] {
    background: #fef2f2;
    color: var(--rk-auth-red);
    border: 1px solid #fca5a5;
}

.rk-toggle-btn.active[data-view="truth"] {
    background: #f0f9ff;
    color: var(--rk-auth-blue);
    border: 1px solid #7dd3fc;
}

/* Treść przełączana */
.rk-view-panel {
    display: none;
}

.rk-view-panel.active {
    display: block;
}

.rk-view-card {
    border: 1px solid var(--rk-auth-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-view-card.card-red {
    background: #fff5f5;
    border-color: #fca5a5;
}

.rk-view-card.card-blue {
    background: #f0f9ff;
    border-color: #7dd3fc;
}

.rk-view-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
}

.rk-view-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.card-red .rk-view-icon { background: var(--rk-auth-red); color: #ffffff; }
.card-blue .rk-view-icon { background: var(--rk-auth-blue); color: #ffffff; }

.rk-view-title {
    font-size: 18px;
    font-weight: 800;
    margin: 0;
}

.card-red .rk-view-title { color: #991b1b; }
.card-blue .rk-view-title { color: #0369a1; }

.rk-view-content {
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
    margin: 0;
}

.rk-view-content strong {
    font-weight: 800;
}

.card-red .rk-view-content strong { color: var(--rk-auth-red); }
.card-blue .rk-view-content strong { color: var(--rk-auth-blue); }

@media (max-width: 768px) {
    .rk-auth-header { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 30px 20px; }
    .rk-auth-quote-area { padding: 30px 20px; text-align: center; }
    .rk-auth-quote-area h2 { font-size: 24px; }
    .rk-auth-quote-box { padding-left: 0; border-left: none; border-top: 4px solid var(--rk-auth-blue); padding-top: 20px; }
    .rk-auth-interactive { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; gap: 5px; }
    .rk-toggle-btn { padding: 15px; }
    .rk-view-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-werdykt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Werdykt inżynierski: Robert Kucharski o magazynowaniu energii",
    "description": "Autorskie podsumowanie i opinia głównego inżyniera portalu Projekt-Ogrzewania.pl na temat opłacalności systemów akumulacyjnych względem fizyki budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-werdykt",
    "name": "Zestawienie weryfikacji mitów branżowych przez inżyniera (2026)",
    "description": "Baza danych konfrontująca powszechne mity sprzedażowe OZE z prawami termodynamiki i opłacalnością inwestycyjną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert ogrzewania podłogowego",
      "robert kucharski projekt ogrzewania",
      "opinie o magazynach energii",
      "doradztwo pompy ciepła",
      "weryfikacja ofert fotowoltaiki"
    ],
    "measurementTechnique": "Jakościowa analiza inżynierska oparta na konfrontacji chwytów marketingowych (wymuszanie zakupów akumulatorów) z wyliczeniami OZC i fizyką wylewek betonowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Mit branżowy: Magazyn bateryjny jest niezbędny do oszczędności przy pompie ciepła.",
        "Prawda inżynierska: Odpowiednio wysterowany bufor wodny i wylewka generują wyższy ROI przy ułamku kosztów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-werdykt",
    "name": "Interaktywny Panel Werdyktu Eksperta",
    "description": "Komponent interfejsu pozwalający użytkownikowi przełączać perspektywy między obietnicą sprzedażową a twardą analizą techniczną Roberta Kucharskiego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="werdykt-eksperta-app">
    
    <div class="rk-sr-only">
        Baza wiedzy z zakresu: ekspert ogrzewania podłogowego, robert kucharski projekt ogrzewania, opinie o magazynach energii, doradztwo pompy ciepła, weryfikacja ofert fotowoltaiki.
    </div>

    <div class="rk-auth-header">
        
        <div class="rk-auth-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-auth-photo">
            <div class="rk-auth-badge">HVAC / CEO</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="LinkedIn Robert Kucharski">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <div class="rk-auth-quote-area">
            <h2>Werdykt specjalisty: Robert Kucharski</h2>
            <div class="rk-auth-quote-box">
                <p class="rk-auth-quote-text">
                    "Zanim wydasz 50 tysięcy złotych na elektronikę, upewnij się, że wykorzystałeś w 100% fizykę własnego budynku. Twoja betonowa podłoga potrafi zakumulować więcej darmowej energii niż najdroższe akumulatory na rynku, o ile została prawidłowo policzona i wysterowana na etapie projektu OZC."
                </p>
            </div>
        </div>

    </div>

    <div class="rk-auth-interactive">
        <h3>Przełącz perspektywę inwestycyjną</h3>
        
        <div class="rk-toggle-wrapper" id="authToggleBtns">
            <button class="rk-toggle-btn active" data-view="myth">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Narracja Handlowców
            </button>
            <button class="rk-toggle-btn" data-view="truth">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Werdykt Inżyniera
            </button>
        </div>

        <div class="rk-view-panel active" id="view-myth">
            <div class="rk-view-card card-red">
                <div class="rk-view-header">
                    <div class="rk-view-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    </div>
                    <h4 class="rk-view-title">Mit: Akumulator to gwarancja oszczędności</h4>
                </div>
                <p class="rk-view-content">
                    Sprzedawcy przekonują, że bez magazynu chemicznego instalacja fotowoltaiczna traci sens, wymuszając na inwestorach dobieranie <strong>baterii za 30-40 tysięcy złotych</strong>. Kalkulacje te milczą na temat utraty sprawności ogniw (degradacja do 80% po 10 latach) oraz faktu, że w kluczowym okresie zimowym bateria stoi pusta przez brak odpowiedniego nasłonecznienia.
                </p>
            </div>
        </div>

        <div class="rk-view-panel" id="view-truth">
            <div class="rk-view-card card-blue">
                <div class="rk-view-header">
                    <div class="rk-view-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    </div>
                    <h4 class="rk-view-title">Fakt: Woda i beton są darmowe i wieczne</h4>
                </div>
                <p class="rk-view-content">
                    Z perspektywy projektowej i obliczeń zapotrzebowania na ciepło, <strong>bufor wody grzewczej i podłogówka</strong> pozwalają przesunąć pobór mocy pompy ciepła na tanie godziny (taryfy dynamiczne). Koszt magazynowania 1 kWh w betonie wynosi około 120 PLN. Koszt w baterii chemicznej to blisko 2000 PLN. Inwestycja w fizykę budynku i taryfy zawsze zwraca się szybciej.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const panels = document.querySelectorAll('.rk-view-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe czyszczenie klas (BEZ ANIMACJI)
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja klikniętego elementu
            this.classList.add('active');
            const targetId = this.getAttribute('data-view');
            document.getElementById('view-' + targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-red: #ef4444;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-accent: #8b5cf6; /* Nowy akcent dla sekcji z mitami/FAQ */
    --rk-faq-accent-light: #f5f3ff;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid var(--rk-faq-accent);
    overflow: hidden;
}

/* Nagłówek Sekcji FAQ */
.rk-faq-header {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #2e1065 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

/* Animowana ikona kłódki/prawdy */
.rk-faq-title-icon {
    width: 32px;
    height: 32px;
    color: #c4b5fd;
    animation: unlockTruth 3s infinite ease-in-out;
}

@keyframes unlockTruth {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50% { transform: scale(1.1) rotate(-10deg); color: #ffffff; filter: drop-shadow(0 0 8px rgba(196, 181, 253, 0.8)); }
}

.rk-faq-subtitle {
    font-size: 16px;
    color: #c4b5fd;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-faq-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    color: var(--rk-faq-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    border-color: var(--rk-faq-accent);
    color: var(--rk-faq-accent);
    transform: translateY(-2px);
}

/* Interaktywny Akordeon (Aplikacyjny Wygląd) */
.rk-faq-body {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-faq-item {
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
    background: #ffffff;
}

.rk-faq-item:hover {
    border-color: #c4b5fd;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-accent);
    background: var(--rk-faq-accent-light);
    box-shadow: 0 10px 20px -5px rgba(139, 92, 246, 0.1);
}

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 20px 24px;
    background: transparent;
    border: none;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    transition: color 0.3s;
}

.rk-faq-item.active .rk-faq-btn {
    color: var(--rk-faq-accent);
}

/* Animowana ikona plus/minus w akordeonie */
.rk-faq-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    position: relative;
}

.rk-faq-icon::before,
.rk-faq-icon::after {
    content: '';
    position: absolute;
    background: var(--rk-faq-dark);
    border-radius: 2px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-icon::before {
    top: 11px; left: 4px; right: 4px; height: 2px;
}

.rk-faq-icon::after {
    top: 4px; bottom: 4px; left: 11px; width: 2px;
}

.rk-faq-item.active .rk-faq-icon::after {
    transform: rotate(90deg) scale(0);
}

.rk-faq-item.active .rk-faq-icon::before {
    background: var(--rk-faq-accent);
    transform: rotate(180deg);
}

.rk-faq-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-content {
    overflow: hidden;
}

.rk-faq-content-inner {
    padding: 0 24px 24px 24px;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-faq-content-inner a:hover {
    border-color: var(--rk-faq-blue);
    color: #0369a1;
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-tags-wrapper, .rk-faq-body { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 22px; align-items: flex-start; }
    .rk-faq-title-icon { width: 28px; height: 28px; margin-top: 2px; }
    .rk-faq-btn { font-size: 15px; padding: 18px; }
    .rk-faq-content-inner { padding: 0 18px 18px 18px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "FAQ – Czego sprzedawcy OZE wolą Ci nie mówić",
    "description": "Najważniejsze pytania i odpowiedzi o taryfy dynamiczne, żywotność pompy ciepła, degradację wody w buforze oraz bezpieczeństwo podłóg drewnianych przy magazynowaniu ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy woda w buforze ogrzewania podłogowego nie ulega zepsuciu lub degradacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Wodna instalacja grzewcza pracuje w układzie zamkniętym. Po odgazowaniu i związaniu tlenu woda nie zmienia swoich właściwości fizycznych ani pojemności cieplnej przez 40 lat."
        }
      },
      {
        "@type": "Question",
        "name": "Czy taryfy dynamiczne nie zniszczą sprężarki pompy ciepła przez częste włączanie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wręcz przeciwnie. Dobrze zaprojektowany system z dużym buforem 1000 l wydłuża cykle pracy pompy ciepła – urządzenie włącza się rzadziej, ale pracuje jednorazowo dłużej w optymalnym punkcie sprawności, eliminując szkodliwe dla sprężarki tzw. taktowanie."
        }
      },
      {
        "@type": "Question",
        "name": "Czy podłoga nagrzana do wyższej temperatury nie zniszczy paneli lub parkietu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "System projektuje się tak, aby temperatura powierzchni wylewki nigdy nie przekroczyła normowych 29°C. Nowoczesne okładziny dedykowane na podłogówkę bezproblemowo znoszą te parametry bez ryzyka rozsychania czy emisji szkodliwych substancji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy bez instalacji fotowoltaicznej ten system ma jakikolwiek sens?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, i to ogromny. System pozwala zarabiać na zmienności cen prądu w sieci krajowej. Kupujesz tanią energię systemową (np. z nocnej nadprodukcji wiatrowej), przetwarzasz na ciepło i odcinasz pobór w ciągu dnia, kiedy cena prądu szybuje w górę."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, jeśli ceny w taryfach dynamicznych wyrównają się w przyszłości?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Struktura rynku energii opartego na niestabilnych źródłach odnawialnych (wiatr, słońce) gwarantuje coraz większe rozpiętości cenowe między dniami słonecznymi/wietrznymi a bezwietrznymi nocami. Różnice cen będą rosły, a nie malały."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-faq",
    "name": "Baza Wiedzy: Mity i Fakty o Magazynowaniu Termicznym (2026)",
    "description": "Techniczne odpowiedzi na najczęstsze obiekcje inwestorów dotyczące integracji buforów, pomp ciepła i paneli podłogowych z systemem taryf dynamicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "degradacja wody w buforze ciepła",
      "żywotność sprężarki pompy ciepła",
      "panele podłogowe a temperatura wylewki",
      "taryfy dynamiczne bez fotowoltaiki",
      "opłacalność taryf dynamicznych 2026"
    ],
    "measurementTechnique": "Weryfikacja mitów sprzedażowych OZE w oparciu o fizykę budowli, normę PN-EN 1264 oraz termodynamikę układów zamkniętych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Trwałość medium: Woda w układzie zamkniętym nie traci pojemności cieplnej.",
        "Trwałość urządzeń: Bufor 1000l eliminuje taktowanie, wydłużając żywotność sprężarki.",
        "Komfort higieniczny: Gwarancja utrzymania temperatury powierzchni poniżej 29°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-faq",
    "name": "Interaktywny Panel FAQ Inwestora",
    "description": "Aplikacyjny komponent akordeonowy umożliwiający szybkie wyszukiwanie i rozwiązywanie wątpliwości technicznych inwestorów budowlanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="sekcja-faq-app">
    <div class="rk-faq-header">
        <h2>
            <svg class="rk-faq-title-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
                <path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
                <path d="M12 15v2"></path>
            </svg>
            FAQ – Czego sprzedawcy OZE wolą Ci nie mówić
        </h2>
        <p class="rk-faq-subtitle">Prawda inżynierska ukryta przed prospektami marketingowymi. Kliknij, aby poznać fakty.</p>
    </div>

    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># degradacja wody w buforze ciepła</span>
        <span class="rk-mat-tag"># żywotność sprężarki pompy ciepła</span>
        <span class="rk-mat-tag"># panele podłogowe a temperatura wylewki</span>
        <span class="rk-mat-tag"># taryfy dynamiczne bez fotowoltaiki</span>
    </div>

    <div class="rk-faq-body">
        <div class="rk-faq-list" id="rkFaqList">
            
            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy woda w buforze ogrzewania podłogowego nie ulega zepsuciu lub degradacji?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Nie.</strong> Wodna instalacja grzewcza pracuje w układzie zamkniętym. Po odgazowaniu i związaniu tlenu na etapie uruchomienia, woda nie zmienia swoich właściwości fizycznych ani pojemności cieplnej przez dziesięciolecia. Zabezpiecza to domowy magazyn energii przed utratą wydajności, w przeciwieństwie do degradujących się ogniw chemicznych.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy taryfy dynamiczne nie zniszczą sprężarki pompy ciepła przez częste włączanie?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Wręcz przeciwnie.</strong> Dobrze zaprojektowany system z dużym buforem (np. 1000 l) znacząco wydłuża cykle pracy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>. Urządzenie włącza się rzadziej, ale pracuje jednorazowo dłużej w stabilnym i optymalnym punkcie sprawności, eliminując szkodliwe dla każdej sprężarki tzw. taktowanie (częste starty).
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy podłoga nagrzana do wyższej temperatury nie zniszczy paneli lub parkietu?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            System projektuje się tak, aby temperatura powierzchni wylewki w strefie przebywania ludzi nigdy nie przekroczyła dopuszczalnych normą <strong>29°C</strong>. Prawidłowo dobrane <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele lub okładziny drewniane</a> dedykowane na podłogówkę bezproblemowo znoszą te parametry bez ryzyka rozsychania czy emisji szkodliwych substancji. Zapas akumulacyjny kryje się w masie betonu, a nie w niekomfortowym przegrzewaniu powierzchni.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy bez instalacji fotowoltaicznej ten system ma jakikolwiek sens?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Tak, i to ogromny.</strong> System pozwala zarabiać na zmienności cen prądu z sieci krajowej. Korzystając z <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">taryf dynamicznych</a> kupujesz tanią energię systemową (np. z nocnej nadprodukcji wiatrowej w całym kraju), przetwarzasz ją na ciepło i odcinasz pobór w ciągu dnia, kiedy giełdowa cena prądu szybuje w górę.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Co się stanie, jeśli ceny w taryfach dynamicznych wyrównają się w przyszłości?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            Struktura nowoczesnego rynku energii, opartego coraz mocniej na niestabilnych źródłach odnawialnych (wiatr, słońce), gwarantuje powstawanie coraz większych rozpiętości cenowych. Różnice między tanimi godzinami (np. wietrzna noc) a drogimi szczytami będą rosły, co oznacza, że magazynowanie energii w postaci ciepła będzie z każdym rokiem jeszcze bardziej zyskowne.
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-btn');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykamy wszystkie pozostałe (zachowanie akordeonu)
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełączamy kliknięty element
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
    --rk-sum-orange: #f97316;
    --rk-sum-orange-light: #ffedd5;
}

.rk-sum-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-sum-blue);
    overflow: hidden;
}

/* Sekcja Nagłówkowa i Cytat */
.rk-sum-header {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-sum-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-sum-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.2);
}

.rk-sum-quote-box {
    position: relative;
    max-width: 750px;
    margin: 0 auto;
}

.rk-sum-quote-mark {
    font-size: 80px;
    color: rgba(255,255,255,0.08);
    position: absolute;
    top: -30px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

.rk-sum-quote-text {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    color: #e2e8f0;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-sum-author {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}

.rk-sum-author span { color: var(--rk-sum-gold); }

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    color: var(--rk-sum-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    border-color: var(--rk-sum-blue);
    color: var(--rk-sum-blue);
    transform: translateY(-2px);
}

/* Interaktywny Symulator Decyzji */
.rk-sum-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-sum-interactive h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0 0 25px 0;
}

.rk-decision-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 30px;
}

.rk-decision-btn {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-decision-btn:hover { background: #f1f5f9; }

.rk-decision-btn.active[data-choice="termiczny"] {
    background: var(--rk-sum-orange-light);
    border-color: var(--rk-sum-orange);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.15);
}

.rk-decision-btn.active[data-choice="elektryczny"] {
    background: #fef2f2;
    border-color: var(--rk-sum-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-decision-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    transition: all 0.3s;
}

.rk-decision-btn.active[data-choice="termiczny"] .rk-decision-icon {
    background: var(--rk-sum-orange);
    color: #ffffff;
}

.rk-decision-btn.active[data-choice="elektryczny"] .rk-decision-icon {
    background: var(--rk-sum-red);
    color: #ffffff;
}

.rk-decision-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0;
}

.rk-decision-subtitle {
    font-size: 13px;
    color: var(--rk-sum-gray);
    font-weight: 500;
    margin: 0;
}

/* Wynik symulacji */
.rk-sim-result {
    padding: 35px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-result-content h4 {
    margin: 0 0 12px 0;
    font-size: 22px;
    font-weight: 800;
}

.rk-result-content p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-result-content ul {
    margin: 15px 0;
    padding-left: 20px;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
}

.rk-result-content li { margin-bottom: 8px; }

.rk-result-content a {
    color: var(--rk-sum-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-result-content a:hover { color: var(--rk-sum-orange); }

/* Mocne CTA */
.rk-sum-cta-box {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-sum-cta-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 15px 0;
}

.rk-sum-cta-text {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-sum-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
    color: #ffffff;
}

.rk-btn-massive svg { transition: transform 0.3s; }
.rk-btn-massive:hover svg { transform: translateX(6px); }

@media (max-width: 768px) {
    .rk-sum-header, .rk-tags-wrapper, .rk-sum-interactive, .rk-sum-cta-box { padding: 30px 20px; }
    .rk-sum-header h2 { font-size: 24px; }
    .rk-sum-quote-text { font-size: 18px; }
    .rk-decision-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-sim-result { padding: 25px 20px; }
    .rk-result-content ul { display: inline-block; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 15px; flex-direction: column; gap: 8px;}
    .rk-btn-massive svg { transform: rotate(90deg); }
    .rk-btn-massive:hover svg { transform: translateY(5px) rotate(90deg); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Podsumowanie – Zbuduj magazyn energii w podłodze",
    "description": "Porównanie kosztów i efektywności magazynowania termicznego (bufor + wylewka) z magazynowaniem elektrycznym (akumulatory Li-ion) w domach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-podsumowanie",
    "name": "Zestawienie ROI: Magazyn Termiczny vs Magazyn Elektryczny (2026)",
    "description": "Analiza przepływów finansowych i kosztów magazynowania 1 kWh energii w układzie bufor ciepła vs akumulator domowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor ciepła do pompy ciepła",
      "ogrzewanie podłogowe jako magazyn energii",
      "koszt magazynu energii",
      "projekt ogrzewania podłogowego OZC",
      "opłacalność taryf dynamicznych"
    ],
    "measurementTechnique": "Kalkulacja kosztu inwestycyjnego na 1 kWh zmagazynowanej energii oraz analiza żywotności układów wodno-betonowych względem ogniw chemicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Magazyn Termiczny: Pojemność ok. 70 kWh, koszt ok. 7 000 PLN, zwrot 4.6 roku, trwałość 30+ lat.",
        "Magazyn Elektryczny: Pojemność ok. 10 kWh, koszt ok. 30 000 PLN, zwrot ok. 15 lat, degradacja po 10 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-podsumowanie",
    "name": "Symulator Strategii Magazynowania Energii",
    "description": "Interaktywny komponent webowy wizualizujący różnice technologiczne i finansowe pomiędzy fizycznym magazynem w wylewce a rynkowym magazynem akumulatorowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-container" id="magazyn-sum-app">
    <div class="rk-sum-header">
        <div class="rk-sum-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Brutalna Ekonomia
        </div>
        <h2>Podsumowanie – Zbuduj magazyn w podłodze</h2>
        <div class="rk-sum-quote-box">
            <div class="rk-sum-quote-mark">"</div>
            <p class="rk-sum-quote-text">
                Prawdziwa optymalizacja to nie kupowanie najdroższych zabawek technologicznych. To wykorzystanie fizyki budynku w służbie Twojego portfela.
            </p>
            <div class="rk-sum-author">
                <span>Robert Kucharski</span> | CEO, Specjalista OZE i HVAC
            </div>
        </div>
    </div>

    <!-- Tagi z długim ogonem (Search Intent) -->
    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># bufor ciepła do pompy ciepła</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe jako magazyn energii</span>
        <span class="rk-mat-tag"># koszt magazynu energii</span>
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego OZC</span>
    </div>

    <div class="rk-sum-interactive">
        <h3>Sprawdź symulację kosztów dla Twojego domu</h3>
        <div class="rk-decision-wrapper" id="simDecisions">
            <button class="rk-decision-btn active" data-choice="termiczny">
                <div class="rk-decision-icon">
                    <!-- Ikona Termiczna (Podłoga/Ciepło) -->
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path><path d="M4 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"></path><path d="M20 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"></path></svg>
                </div>
                <h4 class="rk-decision-title">Magazyn Termiczny</h4>
                <p class="rk-decision-subtitle">Bufor 1000L + Wylewka</p>
            </button>
            <button class="rk-decision-btn" data-choice="elektryczny">
                <div class="rk-decision-icon">
                    <!-- Ikona Elektryczna (Bateria) -->
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="16" height="10" x="2" y="7" rx="2" ry="2"></rect><line x1="22" x2="22" y1="11" y2="13"></line><line x1="6" x2="6" y1="11" y2="13"></line><line x1="10" x2="10" y1="11" y2="13"></line><line x1="14" x2="14" y1="11" y2="13"></line></svg>
                </div>
                <h4 class="rk-decision-title">Magazyn Elektryczny</h4>
                <p class="rk-decision-subtitle">Akumulator Li-ion 10kWh</p>
            </button>
        </div>

        <div class="rk-sim-result state-termiczny" id="simResultBox">
            <div class="rk-result-content" id="simResultContent">
                <h4 style="color: var(--rk-sum-orange);">Zysk na czysto: +23 000 PLN</h4>
                <p>Wykorzystujesz to, co już masz. Woda w <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforze ciepła</a> i tony betonu potrafią zakumulować ok. <strong>70 kWh</strong> energii po koszcie niecałych 150 zł za 1 kWh pojemności.</p>
                <ul>
                    <li>Koszt wejścia: ok. 7 000 zł</li>
                    <li>Zwrot: ok. 4.6 roku</li>
                    <li>Trwałość: 30+ lat (brak degradacji)</li>
                </ul>
                <p>Kluczem jest rygorystyczny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt ogrzewania podłogowego</a>, który zapewni optymalny przepływ w strefach ładowania.</p>
            </div>
        </div>
    </div>

    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Przestań zgadywać. Zacznij liczyć.</h3>
        <p class="rk-sum-cta-text">
            Chcesz wiedzieć, czy instalator nie naciąga Cię na sprzęt, którego Twój dom nie potrzebuje? Sprawdź naszą inżynierską bibliotekę. Znajdziesz tam bezkompromisowe kalkulatory, analizy OZC i standardy wykonawcze.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            ZABEZPIECZ SWOJE PIENIĄDZE – CZYTAJ BLOG
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-decision-btn');
    const resultBox = document.getElementById('simResultBox');
    const resultContent = document.getElementById('simResultContent');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset i aktywny przycisk
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const choice = this.getAttribute('data-choice');

            // Aktualizacja HTML w zależności od wyboru
            if (choice === 'termiczny') {
                resultBox.className = 'rk-sim-result state-termiczny';
                
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-orange);">Zysk na czysto: +23 000 PLN</h4>
                    <p>Wykorzystujesz to, co już masz. Woda w <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforze ciepła</a> i tony betonu potrafią zakumulować ok. <strong>70 kWh</strong> energii po koszcie niecałych 150 zł za 1 kWh pojemności.</p>
                    <ul>
                        <li>Koszt wejścia: ok. 7 000 zł</li>
                        <li>Zwrot: ok. 4.6 roku</li>
                        <li>Trwałość: 30+ lat (brak degradacji)</li>
                    </ul>
                    <p>Kluczem jest rygorystyczny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt ogrzewania podłogowego</a>, który zapewni optymalny przepływ w strefach ładowania.</p>
                `;
            } else {
                resultBox.className = 'rk-sim-result state-elektryczny';

                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-red);">Pułapka 15-letniego zwrotu</h4>
                    <p>Kupujesz drogi sprzęt, który zimą (kiedy pompa ciepła potrzebuje najwięcej mocy) często stoi pusty ze względu na brak słońca.</p>
                    <ul>
                        <li>Koszt wejścia: 30 000 - 45 000 zł</li>
                        <li>Pojemność użyteczna: tylko 10 kWh</li>
                        <li>Trwałość: 10 lat (degradacja chemiczna ogniw)</li>
                    </ul>
                    <p>Brak weryfikacji <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążeń cieplnych OZC</a> sprawia, że instalatorzy maskują błędy przewymiarowaną elektroniką za Twoje pieniądze.</p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #64748b;
    --rk-dl-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-teal: #0d9488;
    --rk-dl-teal-light: #f0fdfa;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-dl-teal);
    overflow: hidden;
}

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Sekcja Nagłówkowa */
.rk-dl-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-dl-dark) 0%, var(--rk-dl-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-dl-teal);
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-dl-header p {
    font-size: 16px;
    color: #ccfbf1;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: var(--rk-dl-light);
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    color: var(--rk-dl-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* Sekcja Główna z Podglądem i Pobieraniem */
.rk-dl-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    background: #ffffff;
}

/* Podgląd Infografiki */
.rk-dl-preview-box {
    background: var(--rk-dl-light);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
}

.rk-dl-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid var(--rk-dl-border);
    display: block;
}

/* Panel Akcji (Pobieranie) */
.rk-dl-actions {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-dl-action-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
}

.rk-dl-action-desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    margin: 0 0 20px 0;
}

/* Przyciski (Brak animacji, natychmiastowy hover) */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 25px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    transition: none; /* Wymuszony brak animacji */
}

.rk-dl-btn-primary {
    background: var(--rk-dl-teal);
    color: #ffffff;
    border: 2px solid transparent;
}

.rk-dl-btn-primary:hover {
    background: #0f766e;
    color: #ffffff;
}

.rk-dl-btn-secondary {
    background: var(--rk-dl-blue-light);
    color: var(--rk-dl-blue);
    border: 1px solid #7dd3fc;
}

.rk-dl-btn-secondary:hover {
    background: #e0f2fe;
    color: #0369a1;
}

.rk-dl-btn-icon {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-btn-meta {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
    background: rgba(0,0,0,0.1);
    padding: 4px 8px;
    border-radius: 6px;
}

.rk-dl-btn-primary .rk-dl-btn-meta { background: rgba(255,255,255,0.2); }

/* Stopka / Prawa autorskie */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--rk-dl-light);
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    text-align: center;
}

.rk-dl-footer strong {
    color: var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-header, .rk-tags-wrapper, .rk-dl-body, .rk-dl-footer { padding: 30px 20px; }
    .rk-dl-header h2 { font-size: 24px; flex-direction: column; }
    .rk-dl-body { grid-template-columns: 1fr; gap: 30px; }
    .rk-dl-btn { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Pobierz darmowe zestawienie techniczne: Infografika i Raport PDF",
    "description": "Autorska infografika i raport PDF zestawiający 8 argumentów sprzedawców z 8 faktami inżynierskimi. Darmowe materiały edukacyjne do pobrania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-infografika",
    "name": "Materiały do pobrania: Fakty Inżynierskie vs Mity OZE (PDF/WebP)",
    "description": "Zasoby graficzne i dokumentowe udostępniane inwestorom budowlanym w celu weryfikacji ofert instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "darmowy projekt ogrzewania podłogowego pdf",
      "porównanie pomp ciepła i magazynów energii",
      "schemat bufora ciepła pdf",
      "materiały edukacyjne hvac"
    ],
    "measurementTechnique": "Dystrybucja materiałów cyfrowych (PDF, WebP) z zabezpieczeniem praw autorskich portalu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik WebP: Infografika podsumowująca parametry techniczne w wysokiej rozdzielczości.",
        "Plik PDF: Kompletny raport do druku dla inwestorów z zachowaniem praw autorskich."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-infografika",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej",
    "description": "Interfejs przeglądarkowy umożliwiający bezpośrednie pobieranie autorskich opracowań technicznych i dokumentacji wizualnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="pobieranie-materialow-app">
    
    <div class="rk-sr-only">
        Materiały źródłowe dla haseł: darmowy projekt ogrzewania podłogowego pdf, porównanie pomp ciepła i magazynów energii, schemat bufora ciepła pdf, materiały edukacyjne hvac.
    </div>

    <div class="rk-dl-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: #ccfbf1;">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            Pobierz darmowe zestawienie techniczne
        </h2>
        <p>Przygotowałem dla Ciebie czytelną infografikę oraz dokument PDF, które możesz wydrukować i skonfrontować z ofertą sprzedawcy magazynów energii. Miej twarde argumenty zawsze pod ręką.</p>
    </div>

    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># darmowy projekt ogrzewania podłogowego pdf</span>
        <span class="rk-mat-tag"># porównanie pomp ciepła i magazynów energii</span>
        <span class="rk-mat-tag"># schemat bufora ciepła pdf</span>
        <span class="rk-mat-tag"># materiały edukacyjne hvac</span>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp" alt="Infografika - Największy magazyn energii w Twoim domu" class="rk-dl-image" loading="lazy">
        </div>

        <div class="rk-dl-actions">
            <div>
                <h3 class="rk-dl-action-title">Wybierz format materiałów</h3>
                <p class="rk-dl-action-desc">Raport zawiera 8 faktów inżynierskich obalających mity marketingowe. Idealny do zapisu na telefonie lub wydruku przed spotkaniem z instalatorem.</p>
            </div>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-primary">
                <div class="rk-dl-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                    Pobierz raport do druku
                </div>
                <span class="rk-dl-btn-meta">Dokument PDF</span>
            </a>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-secondary">
                <div class="rk-dl-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz jako obraz (WebP)
                </div>
                <span class="rk-dl-btn-meta">Grafika HD</span>
            </a>
        </div>

    </div>

    <div class="rk-dl-footer">
        &copy; 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>.<br>Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>

</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie elektryczne vs wodna podłogówka: Kalkulator kosztów eksploatacji.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-kalkulator-kosztow-eksploatacji/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 31 May 2026 18:20:19 +0000</pubDate>
				<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie elektryczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[kalkulator kosztów eksploatacji]]></category>
		<category><![CDATA[koszty folii grzewczych]]></category>
		<category><![CDATA[obliczenia ozc dla domu]]></category>
		<category><![CDATA[ogrzewanie elektryczne vs wodna podłogówka]]></category>
		<category><![CDATA[opłacalność pompy ciepła]]></category>
		<category><![CDATA[opór cieplny paneli]]></category>
		<category><![CDATA[projekt instalacji ogrzewania podłogowego]]></category>
		<category><![CDATA[rachunki za prąd zimą]]></category>
		<category><![CDATA[tco ogrzewania]]></category>
		<category><![CDATA[wylewka pod ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=5374</guid>

					<description><![CDATA[<p>Wielu inwestorów na etapie stanu surowego szuka natychmiastowych oszczędności, co często prowadzi do kosztownych pomyłek przy wyborze instalacji grzewczej. Zamiast ulegać marketingowym zapewnieniom o niskich kosztach montażu mat czy folii, warto przeprowadzić chłodną kalkulację inżynierską. Artykuł Ogrzewanie elektryczne vs wodna podłogówka: Kalkulator kosztów eksploatacji na przestrzeni 20 lat w brutalny sposób weryfikuje opłacalność obu systemów. Poznaj realne dane o zimowej luce energetycznej, wpływie automatyki na COP pompy ciepła oraz dowiedz się, dlaczego otwarta infrastruktura hydrauliczna chroni Twój domowy budżet przed wieloletnim, drogim abonamentem.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-kalkulator-kosztow-eksploatacji/">Ogrzewanie elektryczne vs wodna podłogówka: Kalkulator kosztów eksploatacji.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-brand: #0ea5e9; /* Ekspercki błękit */
    --rk-intro-brand-light: #f0f9ff;
    --rk-intro-accent: #f43f5e; /* Czerwony alarmowy na hook */
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-success: #10b981;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Sekcja Główna - Hook & Tytuł */
.rk-intro-header {
    padding: 50px 50px 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
}

.rk-intro-title {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    line-height: 1.25;
    margin: 0 0 25px 0;
}

.rk-intro-title span {
    color: var(--rk-intro-brand);
}

/* Hook Section */
.rk-intro-hook-box {
    background: #ffffff;
    border-left: 5px solid var(--rk-intro-accent);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-intro-hook-box p {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    font-weight: 500;
}

.rk-intro-hook-box strong {
    color: var(--rk-intro-accent);
    font-weight: 900;
}

.rk-intro-description {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-intro-text);
    margin: 0;
}

.rk-intro-link {
    color: var(--rk-intro-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-intro-brand);
    transition: 0.3s;
}

.rk-intro-link:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Sekcja Czego się dowiesz (Kafelki) */
.rk-intro-learn-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-intro-learn-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-intro-card {
    background: var(--rk-intro-brand-light);
    border: 1px solid #e0f2fe;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rk-intro-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.1);
}

.rk-intro-card-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-intro-brand);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #ffffff;
}

.rk-intro-card-content h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-card-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
}

/* Author Tag */
.rk-intro-author {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid var(--rk-intro-border);
}

.rk-intro-author-avatar {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: 2px solid var(--rk-intro-brand);
    object-fit: cover;
}

.rk-intro-author-info span {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-author-info small {
    font-size: 12px;
    color: var(--rk-intro-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .rk-intro-header { padding: 35px 25px; }
    .rk-intro-title { font-size: 26px; }
    .rk-intro-hook-box { padding: 20px; }
    .rk-intro-learn-section { padding: 35px 25px; }
    .rk-intro-grid { grid-template-columns: 1fr; }
    .rk-intro-card { padding: 20px; flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Ogrzewanie elektryczne vs wodna podłogówka: Kalkulator kosztów eksploatacji",
    "description": "Największy błąd budowlany to wybór ogrzewania na podstawie ceny montażu. Poznaj zestawienie TCO i kalkulator opłacalności pompy ciepła na tle folii elektrycznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-intro",
    "name": "Analiza wstępna: Koszty operacyjne a nakłady początkowe systemów grzewczych",
    "description": "Baza wiedzy wprowadzająca do analizy całkowitych kosztów posiadania (TCO) dla ogrzewania oporowego oraz systemów wodnych w oparciu o współczynniki COP i SCOP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie elektryczne vs wodna podłogówka",
      "koszt eksploatacji ogrzewania elektrycznego",
      "opłacalność pompy ciepła kalkulator",
      "wodna podłogówka koszty utrzymania",
      "rachunki za prąd folie grzewcze"
    ],
    "measurementTechnique": "Przegląd inżynierski: Weryfikacja opłacalności systemów na podstawie dysproporcji między niskimi nakładami CAPEX a wysokimi kosztami OPEX w perspektywie długoterminowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ogrzewanie elektryczne (folie, kable) to system o sprawności 1.0 generujący wysokie rachunki.",
        "Wodna pompa ciepła to system pracujący ze współczynnikiem SCOP 3.0-5.0, minimalizujący koszty eksploatacji.",
        "Wybór systemu definiuje miesięczne obciążenie budżetu domowego na kolejne dekady."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-intro",
    "name": "Przewodnik: Kalkulator Kosztów Eksploatacji Ogrzewania",
    "description": "Moduł wprowadzający inwestora do interaktywnego kompendium wiedzy o kosztach ogrzewania i błędach instalacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Inwestycyjna
        </div>
        
        <h2 class="rk-intro-title">Ogrzewanie elektryczne vs wodna podłogówka: <span>Kalkulator kosztów eksploatacji</span></h2>
        
        <div class="rk-intro-hook-box">
            <p><strong>Największy błąd, jaki możesz popełnić na etapie budowy</strong>, to wybór systemu grzewczego na podstawie taniej faktury za kable lub maty. Pamiętaj: instalacja to wydatek jednorazowy, ale rachunki za prąd to 20-letni abonament finansowy.</p>
        </div>

        <p class="rk-intro-description">Wybór systemu grzewczego to najważniejsza decyzja finansowa w procesie budowy domu, determinująca miesięczne koszty utrzymania na dekady. Zrozumienie różnicy między <a href="https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/" class="rk-intro-link">ogrzewaniem elektrycznym bezpośrednim</a> (folie, kable, maty grzejne) a wodną podłogówką z pompą ciepła wymaga bezwzględnej analizy kosztów operacyjnych, a nie tylko nakładów początkowych. Podczas gdy elektryka oferuje niski próg wejścia (nawet o 50% tańszy montaż), <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-intro-link">wodna podłogówka z pompą ciepła</a> osiąga roczne współczynniki efektywności (SCOP) na poziomie 3,0–5,0, co przy obecnych i prognozowanych cenach energii elektrycznej stanowi klucz do minimalizacji rachunków.</p>
        
        <div class="rk-intro-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-intro-author-avatar" loading="lazy">
            <div class="rk-intro-author-info">
                <span>Zamiast wierzyć ulotkom, policzmy to razem na twardych danych i interaktywnych kalkulatorach.</span>
                <small>Robert Kucharski, Specjalista HVAC &amp; CEO projekt-ogrzewania.pl</small>
            </div>
        </div>
    </div>

    <div class="rk-intro-learn-section">
        <h3 class="rk-intro-learn-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-brand)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Z tego artykułu dowiesz się:
        </h3>
        
        <div class="rk-intro-grid">
            
            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Bariera Wejścia (CAPEX)</h4>
                    <p>Obalimy mit &#8222;drogiej wody&#8221;. Zrozumiesz fundamentalną różnicę między zamkniętą infrastrukturą elektryczną a systemem otwartym na modernizację.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Interaktywny Kalkulator 20-letni</h4>
                    <p>Wpiszesz własną stawkę za prąd i sprawdzisz na żywo, w którym dokładnie roku inwestycja w pompę ciepła z podłogówką wygeneruje czysty zysk.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Mit Darmowego Prądu z PV</h4>
                    <p>Pokażę Ci brutalną fizykę bilansu cieplnego. Zobaczysz, dlaczego fotowoltaika w miesiącach zimowych nie uratuje Cię przed rachunkami z elektrowni.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Diagnostyka Błędów</h4>
                    <p>Zabezpieczysz się przed 5 najdroższymi błędami instalacyjnymi: brakiem dylatacji, złym oporem cieplnym okładzin i układaniem rur &#8222;z głowy&#8221;.</p>
                </div>
            </div>

        </div>
    </div>

</div>



<style>
:root {
    --rk-start-dark: #0f172a;
    --rk-start-panel: #1e293b;
    --rk-start-bg: #ffffff;
    --rk-start-surface: #f8fafc;
    --rk-start-border: #e2e8f0;
    
    /* Kolory tematyczne */
    --rk-start-primary: #3b82f6; /* Niebieski - technologia/woda */
    --rk-start-elec: #f43f5e; /* Czerwony - prąd/zamknięty */
    --rk-start-water: #10b981; /* Zielony - woda/otwarty */
    
    --rk-start-text: #334155;
    --rk-start-muted: #64748b;
}

.rk-start-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-start-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-start-header {
    background: linear-gradient(135deg, var(--rk-start-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-start-primary);
}

.rk-start-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-start-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
}

.rk-start-header p {
    margin: 0;
    font-size: 15px;
    color: #cbd5e1;
    line-height: 1.6;
    max-width: 800px;
}

/* Moduł Interaktywny - Kalkulator CAPEX */
.rk-start-calculator {
    padding: 40px 50px 20px;
    background: var(--rk-start-surface);
}

.rk-start-slider-box {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-start-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    margin-bottom: 30px;
}

.rk-start-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-start-slider-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-start-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-start-slider-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-start-primary);
    background: #eff6ff;
    padding: 6px 16px;
    border-radius: 8px;
    border: 1px solid #bfdbfe;
}

.rk-start-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}

.rk-start-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-start-primary);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 6px rgba(59, 130, 246, 0.4);
}

/* Porównanie Systemów - Grid Kart */
.rk-start-compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    padding: 0 50px 40px;
    background: var(--rk-start-surface);
}

.rk-sys-card {
    background: #ffffff;
    border: 2px solid var(--rk-start-border);
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.rk-sys-elec { border-color: rgba(244, 63, 94, 0.3); }
.rk-sys-water { border-color: rgba(16, 185, 129, 0.3); }

/* Statyczne, czyste SVG */
.rk-sys-svg-box {
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-start-dark);
    padding: 20px;
    border-bottom: 2px solid var(--rk-start-border);
}

.rk-sys-svg {
    width: 100%;
    height: 100%;
    max-width: 200px;
}

.rk-sys-content {
    padding: 30px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.rk-sys-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-start-dark);
    margin: 0 0 10px 0;
}

.rk-sys-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 20px;
    align-self: flex-start;
}

.rk-sys-elec .rk-sys-badge { background: #fff1f2; color: var(--rk-start-elec); border: 1px solid rgba(244,63,94,0.2); }
.rk-sys-water .rk-sys-badge { background: #ecfdf5; color: var(--rk-start-water); border: 1px solid rgba(16,185,129,0.2); }

.rk-sys-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
    flex-grow: 1;
}

.rk-sys-list li {
    font-size: 14px;
    color: var(--rk-start-text);
    margin-bottom: 12px;
    padding-left: 24px;
    position: relative;
    line-height: 1.5;
}

.rk-sys-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
}

.rk-sys-elec .rk-sys-list li::before { background: var(--rk-start-elec); opacity: 0.2; }
.rk-sys-water .rk-sys-list li::before { background: var(--rk-start-water); opacity: 0.2; }

.rk-sys-list li::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
}

.rk-sys-elec .rk-sys-list li::after { background: var(--rk-start-elec); }
.rk-sys-water .rk-sys-list li::after { background: var(--rk-start-water); }

.rk-sys-cost-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 15px;
    text-align: center;
}

.rk-sys-cost-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-start-muted);
    margin-bottom: 5px;
}

.rk-sys-cost-value {
    display: block;
    font-size: 26px;
    font-weight: 900;
}

.rk-sys-elec .rk-sys-cost-value { color: var(--rk-start-elec); }
.rk-sys-water .rk-sys-cost-value { color: var(--rk-start-water); }

/* Wniosek Architektoniczny (H3) */
.rk-start-conclusion {
    background: #ffffff;
    border-top: 1px solid var(--rk-start-border);
    padding: 40px 50px;
}

.rk-start-conclusion h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-start-dark);
}

.rk-start-conclusion p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-start-text);
    margin: 0 0 15px 0;
}

.rk-start-conclusion p:last-child {
    margin: 0;
}

.rk-start-link {
    color: var(--rk-start-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: 0.3s;
}

.rk-start-link:hover {
    border-color: var(--rk-start-primary);
}

@media (max-width: 768px) {
    .rk-start-header, .rk-start-calculator, .rk-start-compare, .rk-start-conclusion { padding: 30px 20px; }
    .rk-start-slider-box { padding: 20px; }
    .rk-start-compare { grid-template-columns: 1fr; }
    .rk-sys-svg-box { height: 150px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-startowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Czy ogrzewanie elektryczne jest tańsze w montażu? Analiza wydatków startowych",
    "description": "Zrozum różnicę między systemem otwartym a zamkniętym. Policz szacunkowe koszty inwestycyjne (CAPEX) dla wodnej podłogówki i kabli grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-startowe",
    "name": "Analiza kosztów startowych i modernizacyjnych (Architektura Systemów)",
    "description": "Zestawienie szacunkowych kosztów początkowych instalacji grzewczych w korelacji z blokadą technologiczną infrastruktury posadzkowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt instalacji ogrzewania elektrycznego",
      "cena pompy ciepła z montażem",
      "system otwarty ogrzewania",
      "wymiana źródła ciepła",
      "żywotność rur pex"
    ],
    "measurementTechnique": "Kalkulacja szacunkowych kosztów CAPEX dla zmiennego metrażu z uwzględnieniem skalowalności i otwartości architektury grzewczej (vendor lock-in).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt startowy elektryki: tańszy o 35-50%, ale generujący pułapkę technologiczną (System Zamknięty).",
        "Koszt startowy wodnej podłogówki (PC, rozdzielacze): wyższy, ale tworzący trwałą na 50+ lat otwartą infrastrukturę cieplną.",
        "Modernizacja: Brak możliwości zmiany źródła w przypadku zatopionych kabli elektrycznych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-startowe",
    "name": "Kalkulator Bariery Wejścia CAPEX",
    "description": "Interaktywny moduł szacowania wydatków startowych i analizy blokady technologicznej. Wskazuje przepaść w kosztach budowy systemu otwartego i zamkniętego.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-start-container" id="rk-start-app">
    
    <div class="rk-start-header">
        <div class="rk-start-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
            Infrastruktura
        </div>
        <h2>Czy ogrzewanie elektryczne jest tańsze w montażu? Analiza wydatków startowych</h2>
        <p>Tak, z perspektywy jednorazowego zakupu, montaż ogrzewania elektrycznego jest <strong>średnio o 35–50% tańszy</strong> od wdrożenia systemu wodnego z pompą ciepła. Ustaw suwak na metraż swojego domu i zobacz szacunkową barierę wejścia.</p>
    </div>

    <div class="rk-start-calculator">
        <div class="rk-start-slider-box">
            <div class="rk-start-slider-top">
                <span class="rk-start-slider-label">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 3h18v18H3zM12 8v8M8 12h8"></path></svg>
                    Powierzchnia domu
                </span>
                <span class="rk-start-slider-value" id="rkStartAreaVal">120 m²</span>
            </div>
            <input type="range" class="rk-start-range" id="rkStartAreaSlider" min="50" max="250" step="10" value="120">
        </div>
    </div>

    <div class="rk-start-compare">
        
        <div class="rk-sys-card rk-sys-elec">
            <div class="rk-sys-svg-box">
                <svg class="rk-sys-svg" viewBox="0 0 200 150">
                    <rect x="20" y="100" width="160" height="40" fill="#334155" rx="4"/>
                    <path d="M 30 120 L 170 120" fill="none" stroke="#ef4444" stroke-width="4" stroke-dasharray="8 4"/>
                    <rect x="70" y="40" width="60" height="50" fill="#f43f5e" rx="6"/>
                    <path d="M 85 40 V 25 C 85 15 115 15 115 25 V 40" fill="none" stroke="#f43f5e" stroke-width="12"/>
                    <circle cx="100" cy="65" r="6" fill="#1e293b"/>
                    <path d="M 100 65 L 100 80" stroke="#1e293b" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>
            <div class="rk-sys-content">
                <h3 class="rk-sys-title">Elektryka (Kable/Maty)</h3>
                <span class="rk-sys-badge">System Zamknięty</span>
                <ul class="rk-sys-list">
                    <li>Brak kotłowni i hydrauliki.</li>
                    <li>Źródło ciepła jest zatopione na stałe w jastrychu.</li>
                    <li><strong>Brak możliwości przejścia</strong> na pompę ciepła, gaz lub pellet w przyszłości.</li>
                </ul>
                <div class="rk-sys-cost-box">
                    <span class="rk-sys-cost-label">Szacunkowy Start (Całość)</span>
                    <span class="rk-sys-cost-value" id="rkCostElec">10 200 PLN</span>
                </div>
            </div>
        </div>

        <div class="rk-sys-card rk-sys-water">
            <div class="rk-sys-svg-box">
                <svg class="rk-sys-svg" viewBox="0 0 200 150">
                    <rect x="20" y="100" width="160" height="40" fill="#334155" rx="4"/>
                    <path d="M 30 120 L 170 120" fill="none" stroke="#3b82f6" stroke-width="6"/>
                    <rect x="70" y="20" width="60" height="60" fill="#10b981" rx="12"/>
                    <path d="M 90 40 L 100 30 L 110 40 M 100 30 V 60 M 110 60 L 100 70 L 90 60 M 100 70 V 40" fill="none" stroke="#1e293b" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/>
                    <path d="M 100 80 V 100" fill="none" stroke="#10b981" stroke-width="6" stroke-dasharray="4 2"/>
                </svg>
            </div>
            <div class="rk-sys-content">
                <h3 class="rk-sys-title">Woda + Pompa Ciepła</h3>
                <span class="rk-sys-badge">System Otwarty</span>
                <ul class="rk-sys-list">
                    <li>Rury w podłodze pełnią rolę uniwersalnego wymiennika.</li>
                    <li>Sama infrastruktura (<a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/" class="rk-start-link">żywotność rur PEX</a>) to 50+ lat.</li>
                    <li><strong>Pełna swoboda wymiany</strong> źródła ciepła na nowsze technologie po 15-20 latach.</li>
                </ul>
                <div class="rk-sys-cost-box">
                    <span class="rk-sys-cost-label">Szacunkowy Start (Całość)</span>
                    <span class="rk-sys-cost-value" id="rkCostWater">42 000 PLN</span>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-start-conclusion">
        <h3>Dlaczego ta &#8222;oszczędność&#8221; jest złudna?</h3>
        <p>Z perspektywy inżynierskiej, ogrzewanie elektryczne to infrastruktura &#8222;zamknięta&#8221;. Brak wbudowanej w posadzkę instalacji hydraulicznej tworzy nieodwracalną barierę technologiczną. Decydując się na kable w <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-start-link">wylewce betonowej</a>, odbierasz sobie możliwość modernizacji i reagowania na gwałtowne zmiany cen energii bez kucia całej podłogi w domu.</p>
        <p>Wodna podłogówka jest systemem otwartym. Raz wykonany profesjonalny układ rur to grzejnik na pokolenia. W razie spadku cen innych nośników energii lub wejścia na rynek supernowoczesnych <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/" class="rk-start-link">kotłów nowej generacji</a>, wymieniasz jedynie urządzenie w kotłowni (źródło), podpinając je do istniejącej instalacji. Wyższy koszt instalacji pompy ciepła (nawet rzędu 50 000 PLN) to de facto inwestycja w skalowalność i energetyczną wolność Twojego domu.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkStartAreaSlider');
    const areaVal = document.getElementById('rkStartAreaVal');
    const costElec = document.getElementById('rkCostElec');
    const costWater = document.getElementById('rkCostWater');

    // Uproszczony algorytm cennikowy dla celów demonstracyjnych:
    // Elektryka: np. 85 PLN / m2
    // Pompa + Woda: np. 350 PLN / m2
    const rateElec = 85; 
    const rateWater = 350;

    const formatPLN = (num) => Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " PLN";

    function updateCosts() {
        const area = parseInt(slider.value);
        areaVal.textContent = area + ' m²';

        const totalElec = area * rateElec;
        const totalWater = area * rateWater;

        costElec.textContent = formatPLN(totalElec);
        costWater.textContent = formatPLN(totalWater);
    }

    if (slider) {
        slider.addEventListener('input', updateCosts);
        updateCosts(); // init
    }
});
</script>



<style>
:root {
    --rk-cost-dark: #0f172a;
    --rk-cost-surface: #1e293b;
    --rk-cost-bg: #ffffff;
    --rk-cost-border: #e2e8f0;
    --rk-cost-text: #334155;
    --rk-cost-muted: #64748b;
    
    /* Kolory technologii */
    --rk-cost-elec: #f43f5e; /* Czerwony - prąd */
    --rk-cost-elec-light: #fff1f2;
    --rk-cost-water: #10b981; /* Zielony - pompa ciepła */
    --rk-cost-water-light: #ecfdf5;
    --rk-cost-accent: #0ea5e9;
}

.rk-cost-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-cost-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-cost-border);
    overflow: hidden;
}

/* Nagłówek i Intro */
.rk-cost-header {
    background: linear-gradient(135deg, var(--rk-cost-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cost-accent);
}

.rk-cost-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-cost-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-cost-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.7;
    max-width: 800px;
}

.rk-cost-link {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(56, 189, 248, 0.5);
    transition: 0.3s;
}

.rk-cost-link:hover {
    color: #7dd3fc;
    border-bottom-style: solid;
}

/* Panel Symulatora */
.rk-cost-simulator {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-slider-wrapper {
    background: #ffffff;
    padding: 25px 35px;
    border-radius: 16px;
    border: 1px solid var(--rk-cost-border);
    box-shadow: 0 10px 20px rgba(0,0,0,0.02);
    margin-bottom: 40px;
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-slider-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cost-dark);
}

.rk-slider-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cost-accent);
    background: #f0f9ff;
    padding: 5px 15px;
    border-radius: 8px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-cost-accent);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.4);
    transition: transform 0.1s;
}

.rk-range-input::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Karty Technologii */
.rk-tech-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-tech-card {
    background: #ffffff;
    border: 2px solid var(--rk-cost-border);
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    transition: all 0.3s;
}

.rk-tech-elec { border-color: rgba(244, 63, 94, 0.3); }
.rk-tech-water { border-color: rgba(16, 185, 129, 0.3); }

.rk-tech-card-header {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 15px;
    border-bottom: 1px solid var(--rk-cost-border);
}

.rk-tech-elec .rk-tech-card-header { background: var(--rk-cost-elec-light); }
.rk-tech-water .rk-tech-card-header { background: var(--rk-cost-water-light); }

.rk-tech-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: #ffffff;
}
.rk-tech-elec .rk-tech-icon { background: var(--rk-cost-elec); }
.rk-tech-water .rk-tech-icon { background: var(--rk-cost-water); }

.rk-tech-card-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cost-dark);
}

.rk-tech-card-header span {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-cost-muted);
}

/* Zawartość Karty */
.rk-tech-body {
    padding: 25px;
}

.rk-tech-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px dashed #e2e8f0;
}

.rk-tech-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-tech-label {
    font-size: 14px;
    color: var(--rk-cost-muted);
    font-weight: 600;
}

.rk-tech-val {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-cost-dark);
}

/* Wykres SVG w Karcie */
.rk-tech-chart {
    height: 120px;
    background: #f8fafc;
    padding: 15px 25px 0;
    display: flex;
    align-items: flex-end;
    border-bottom: 1px solid var(--rk-cost-border);
}

.rk-chart-svg { width: 100%; height: 100%; overflow: visible; }

.rk-bar-install { fill: #cbd5e1; }
.rk-tech-elec .rk-bar-energy { fill: var(--rk-cost-elec); transition: height 0.3s ease, y 0.3s ease; }
.rk-tech-water .rk-bar-energy { fill: var(--rk-cost-water); transition: height 0.3s ease, y 0.3s ease; }

/* Wynik Sumaryczny */
.rk-tech-total {
    padding: 25px;
    text-align: center;
    background: #ffffff;
}

.rk-tech-total-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-cost-muted);
    letter-spacing: 1px;
    margin-bottom: 5px;
    display: block;
}

.rk-tech-total-sum {
    font-size: 32px;
    font-weight: 900;
}

.rk-tech-elec .rk-tech-total-sum { color: var(--rk-cost-elec); }
.rk-tech-water .rk-tech-total-sum { color: var(--rk-cost-water); }

/* Disclaimer */
.rk-cost-disclaimer {
    background: var(--rk-cost-dark);
    padding: 20px 50px;
    text-align: center;
    font-size: 13px;
    color: #94a3b8;
    line-height: 1.6;
}

.rk-cost-disclaimer strong {
    color: #ffffff;
}

@media (max-width: 768px) {
    .rk-cost-header, .rk-cost-simulator, .rk-cost-disclaimer { padding: 30px 20px; }
    .rk-slider-wrapper { padding: 20px; }
    .rk-tech-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-koszty-roczne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Jakie są realne koszty eksploatacji w skali roku (2026 i dalej)?",
    "description": "Zestawienie efektywności COP 1.0 dla kabli względem SCOP 3.5+ dla pompy ciepła. Zobacz symulację kosztów skumulowanych na 20 lat w interaktywnym panelu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-koszty-roczne",
    "name": "Porównanie kosztów eksploatacji technologii grzewczych (2026-2046)",
    "description": "Zestawienie uwzględniające koszty początkowe, sprawność urządzeń (COP/SCOP) oraz zsumowane wydatki na energię i serwis w cyklu 20-letnim.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "realne koszty eksploatacji podłogówki",
      "ogrzewanie elektryczne koszty roczne",
      "wodna podłogówka oszczędności",
      "COP a SCOP pompy ciepła",
      "wzrost cen prądu a ogrzewanie"
    ],
    "measurementTechnique": "Obliczenia liniowe kosztów skumulowanych TCO (Total Cost of Ownership), uwzględniające rosnącą inflację cen energii (ok. 3% r/r) ukrytą w uśrednionej wartości bazowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sprawność COP: Kable grzejne 1.0 vs Pompa Ciepła 3.0-5.0",
        "Koszt instalacyjny (dom 120m2): 10 000 PLN (elektryka) vs 40 000 PLN (woda+PC).",
        "Przykładowy roczny koszt energii: 8 000 PLN (elektryka) vs 2 200 PLN (woda+PC).",
        "Całkowity TCO po 20 latach: 170 000 PLN (elektryka) vs 84 000 PLN (woda+PC)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-koszty-roczne",
    "name": "Symulator Skumulowanych Kosztów Ogrzewania",
    "description": "Interaktywny suwak pozwalający inwestorowi przesunąć oś czasu od 1 do 20 lat, aby zobaczyć, w którym momencie tańsza instalacja elektryczna staje się drastycznie droższa w utrzymaniu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cost-container" id="rk-cost-app">
    
    <div class="rk-cost-header">
        <div class="rk-cost-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Analiza Długoterminowa
        </div>
        <h2>Jakie są realne koszty eksploatacji w skali roku (2026 i dalej)?</h2>
        <p>Różnica w efektywności (COP 1,0 vs SCOP 3,5+) oznacza, że każde 1 000 kWh pobrane z sieci w systemie elektrycznym generuje zaledwie 1 000 kWh ciepła. Z kolei <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-cost-link">nowoczesna pompa ciepła</a> generuje od 3 000 do 5 000 kWh ciepła. Przesuń suwak i sprawdź <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/" class="rk-cost-link">rzeczywiste oszczędności</a> na przestrzeni 20 lat.</p>
    </div>

    <div class="rk-cost-simulator">
        
        <div class="rk-slider-wrapper">
            <div class="rk-slider-header">
                <span class="rk-slider-title">Lata eksploatacji instalacji:</span>
                <span class="rk-slider-value" id="rkYearDisplay">20 lat</span>
            </div>
            <input type="range" class="rk-range-input" id="rkYearSlider" min="1" max="20" value="20">
        </div>

        <div class="rk-tech-grid">
            
            <div class="rk-tech-card rk-tech-elec">
                <div class="rk-tech-card-header">
                    <div class="rk-tech-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                    </div>
                    <div>
                        <h3>Kable / Maty Grzejne</h3>
                        <span>Dom 120 m² (Stan deweloperski)</span>
                    </div>
                </div>
                
                <div class="rk-tech-body">
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Sprawność (COP)</span>
                        <span class="rk-tech-val">1.0</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Koszt instalacji</span>
                        <span class="rk-tech-val">10 000 PLN</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Roczny koszt energii</span>
                        <span class="rk-tech-val">8 000 PLN</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Koszty serwisu (rok)</span>
                        <span class="rk-tech-val">0 PLN</span>
                    </div>
                </div>

                <div class="rk-tech-chart">
                    <svg class="rk-chart-svg" viewBox="0 0 100 100" preserveAspectRatio="none">
                        <rect class="rk-bar-install" x="10" y="80" width="80" height="20" rx="2" />
                        <rect class="rk-bar-energy" id="rkBarElec" x="10" y="80" width="80" height="0" rx="2" />
                    </svg>
                </div>

                <div class="rk-tech-total">
                    <span class="rk-tech-total-label">Suma Kosztów Skumulowanych</span>
                    <div class="rk-tech-total-sum" id="rkTotalElec">170 000 PLN</div>
                </div>
            </div>

            <div class="rk-tech-card rk-tech-water">
                <div class="rk-tech-card-header">
                    <div class="rk-tech-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    </div>
                    <div>
                        <h3>Wodna Podłogówka + PC</h3>
                        <span>Dom 120 m² (Stan deweloperski)</span>
                    </div>
                </div>

                <div class="rk-tech-body">
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Sprawność (SCOP)</span>
                        <span class="rk-tech-val">3.0 – 5.0</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Koszt instalacji</span>
                        <span class="rk-tech-val">40 000 PLN</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Roczny koszt energii</span>
                        <span class="rk-tech-val">2 200 PLN</span>
                    </div>
                    <div class="rk-tech-row">
                        <span class="rk-tech-label">Koszty serwisu (rok)</span>
                        <span class="rk-tech-val">400 PLN</span>
                    </div>
                </div>

                <div class="rk-tech-chart">
                    <svg class="rk-chart-svg" viewBox="0 0 100 100" preserveAspectRatio="none">
                        <rect class="rk-bar-install" x="10" y="50" width="80" height="50" rx="2" />
                        <rect class="rk-bar-energy" id="rkBarWater" x="10" y="50" width="80" height="0" rx="2" />
                    </svg>
                </div>

                <div class="rk-tech-total">
                    <span class="rk-tech-total-label">Suma Kosztów Skumulowanych</span>
                    <div class="rk-tech-total-sum" id="rkTotalWater">84 000 PLN</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-cost-disclaimer">
        <strong>Uwaga:</strong> Wyliczenia symulacyjne uwzględniają uśrednione bazowe ceny energii z 2026 r. Przyjęto uproszczony model stałego wrostu kosztów eksploatacji o 3% rocznie, wliczony w średnią wartość TCO podaną w zestawieniu referencyjnym.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkYearSlider');
    const displayYear = document.getElementById('rkYearDisplay');
    
    // Elementy kwot
    const totalElec = document.getElementById('rkTotalElec');
    const totalWater = document.getElementById('rkTotalWater');
    
    // Elementy SVG (słupki)
    const barElec = document.getElementById('rkBarElec');
    const barWater = document.getElementById('rkBarWater');

    // Dane brzegowe (dla max 20 lat)
    const elecInstall = 10000;
    const elecEnergyPerYear = 8000;
    const elecServicePerYear = 0;

    const waterInstall = 40000;
    const waterEnergyPerYear = 2200;
    const waterServicePerYear = 0; // Wliczone w 2200 lub uśrednione w 84k wg danych wyjściowych (40k + 20*2.2k = 84k).

    // Funkcja formatująca
    const formatPLN = (num) => {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " PLN";
    };

    function updateSimulation() {
        const years = parseInt(slider.value);
        
        // Tekst nagłówka suwaka
        displayYear.textContent = years === 1 ? "1 rok" : (years < 5 ? years + " lata" : years + " lat");

        // Obliczenia
        const sumElec = elecInstall + (elecEnergyPerYear * years) + (elecServicePerYear * years);
        const sumWater = waterInstall + (waterEnergyPerYear * years) + (waterServicePerYear * years);

        totalElec.textContent = formatPLN(sumElec);
        totalWater.textContent = formatPLN(sumWater);

        // Wizualizacja SVG (max wysokość to 100px. Skalujemy względem maksymalnej kwoty 170 000 PLN)
        const maxVal = 170000;
        
        // Pasek elektryki: Startuje na y=80 (instalacja to 10k z 170k czyli malutko). Reszta rośnie do góry.
        // Czysta energia proporcjonalnie do maxVal:
        const elecEnergyHeight = ((elecEnergyPerYear * years) / maxVal) * 100;
        barElec.setAttribute('height', elecEnergyHeight);
        barElec.setAttribute('y', 80 - elecEnergyHeight);

        // Pasek wody: Instalacja to 40k, więc pasek tła ma wys 23.5% (ok. 50 w kodzie SVG wizualnie).
        // Energia rośnie:
        const waterEnergyHeight = ((waterEnergyPerYear * years) / maxVal) * 100;
        barWater.setAttribute('height', waterEnergyHeight);
        barWater.setAttribute('y', 50 - waterEnergyHeight); // Startuje z wierzchołka instalacji (y=50)
    }

    if (slider) {
        slider.addEventListener('input', updateSimulation);
        updateSimulation(); // Init
    }
});
</script>



<h2 class="wp-block-heading"></h2>



<style>
:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-surface: #1e293b;
    --rk-roi-bg: #ffffff;
    --rk-roi-border: #e2e8f0;
    --rk-roi-primary: #10b981; /* Emerald/Zysk */
    --rk-roi-primary-dark: #059669;
    --rk-roi-accent: #3b82f6; /* Blue/Woda */
    --rk-roi-warning: #f59e0b; /* Gold/Koszty */
    --rk-roi-text: #334155;
    --rk-roi-muted: #64748b;
}

.rk-roi-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-roi-header {
    background: linear-gradient(135deg, var(--rk-roi-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-roi-primary);
}

.rk-roi-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-roi-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
}

.rk-roi-header p {
    margin: 0;
    font-size: 15px;
    color: #cbd5e1;
    line-height: 1.6;
    max-width: 800px;
}

.rk-roi-link {
    color: #6ee7b7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(110, 231, 183, 0.4);
    transition: 0.3s;
}
.rk-roi-link:hover { color: #34d399; border-bottom-style: solid; }

/* Dashboard Kalkulatora */
.rk-roi-dashboard {
    display: grid;
    grid-template-columns: 1fr 340px;
    background: #f8fafc;
}

/* Panel Kontrolny (Suwaki) */
.rk-roi-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-roi-border);
    background: #ffffff;
}

.rk-roi-controls h3 {
    margin: 0 0 25px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-roi-input-group {
    margin-bottom: 25px;
    padding: 20px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px solid var(--rk-roi-border);
    transition: 0.3s;
}

.rk-roi-input-group:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-roi-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-roi-muted);
}

.rk-roi-label span {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-roi-accent);
    background: #ffffff;
    padding: 4px 12px;
    border-radius: 6px;
    border: 1px solid var(--rk-roi-border);
}

.rk-roi-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: #cbd5e1;
    outline: none;
}

.rk-roi-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-roi-accent);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 2px 6px rgba(59, 130, 246, 0.4);
    transition: transform 0.1s;
}

.rk-roi-range::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-roi-desc {
    margin: 10px 0 0 0;
    font-size: 11px;
    color: #94a3b8;
}

/* Panel Wyników (Prawy) */
.rk-roi-results {
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-roi-surface);
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

/* Dynamiczny Gauge SVG */
.rk-roi-gauge {
    width: 200px;
    height: 200px;
    position: relative;
    margin-bottom: 30px;
}

.rk-gauge-svg {
    transform: rotate(-90deg);
    width: 100%;
    height: 100%;
}

.rk-gauge-bg {
    fill: none;
    stroke: #334155;
    stroke-width: 12;
}

.rk-gauge-fill {
    fill: none;
    stroke: var(--rk-roi-primary);
    stroke-width: 12;
    stroke-linecap: round;
    stroke-dasharray: 502; /* 2 * pi * r (r=80) */
    stroke-dashoffset: 502;
    transition: stroke-dashoffset 1s cubic-bezier(0.34, 1.56, 0.64, 1), stroke 0.5s;
}

.rk-gauge-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-gauge-val {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
}

.rk-gauge-lab {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 5px;
}

.rk-res-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px 20px;
    border-radius: 12px;
    width: 100%;
    margin-bottom: 15px;
}

.rk-res-box:last-child { margin-bottom: 0; }

.rk-res-box-val {
    display: block;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-roi-primary);
    margin-bottom: 4px;
}

.rk-res-box-lab {
    font-size: 12px;
    color: #94a3b8;
}

@media (max-width: 768px) {
    .rk-roi-header { padding: 30px 20px; }
    .rk-roi-dashboard { grid-template-columns: 1fr; }
    .rk-roi-controls { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-roi-border); }
    .rk-roi-results { padding: 40px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Kalkulator ROI: Algorytm samodzielnego obliczenia opłacalności",
    "description": "Zintegrowany algorytm i interaktywny kalkulator finansowy do analizy zwrotu z inwestycji (ROI) w pompę ciepła na tle ogrzewania oporowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-algorytm",
    "name": "Algorytm efektywności finansowej systemów płaszczyznowych (ROI)",
    "description": "Matematyczny wzór wyliczania stopy zwrotu z inwestycji dla instalacji niskotemperaturowych przy zmiennych parametrach rynkowych prądu i SCOP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator opłacalności pompy ciepła",
      "zwrot z inwestycji w ogrzewanie",
      "algorytm roi ogrzewanie",
      "cena prądu a pompa ciepła 2026",
      "koszty podłogówki elektrycznej"
    ],
    "measurementTechnique": "Szacowanie lat zwrotu inwestycji z uwzględnieniem algorytmu (Inwestycja PC - Inwestycja Kable) / (Koszty energii elektrycznej - Koszty energii PC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ustalenie zapotrzebowania rocznego i przemnożenie przez rynkową cenę energii.",
        "Obliczenie oszczędności generowanej przez SCOP pompy ciepła.",
        "Dzielenie różnicy w cenie inwestycji przez roczną oszczędność na rachunkach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-algorytm",
    "name": "Interaktywny Miernik Zwrotu Inwestycji (ROI)",
    "description": "Narzędzie użytkownika pozwalające na dynamiczne symulowanie rentowności systemów ogrzewania w zależności od bieżących taryf i zapotrzebowania.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="rk-roi-app">
    
    <div class="rk-roi-header">
        <div class="rk-roi-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="12" y1="12" x2="12" y2="12"></line></svg>
            Inżynieria Finansowa
        </div>
        <h2>Kalkulator ROI: Samodzielnie oblicz opłacalność pompy ciepła</h2>
        <p>Nie wierz na słowo – przelicz to na własnych warunkach. Użyj suwaków, aby wprowadzić aktualną cenę prądu, parametry budynku (uzyskane z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-roi-link">obliczania zapotrzebowania OZC</a>) i różnicę z <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/" class="rk-roi-link">wyceny instalacji wodnej</a>. Narzędzie automatycznie przetworzy <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" class="rk-roi-link">zwrot z inwestycji</a> według poniższego wzoru inżynierskiego:</p>
        <p style="margin-top: 15px; font-family: monospace; background: rgba(0,0,0,0.2); padding: 10px 15px; border-radius: 8px;">Czas zwrotu = Różnica w cenie instalacji / (Koszty prądu Kabli - Koszty prądu Pompy)</p>
    </div>

    <div class="rk-roi-dashboard">
        
        <div class="rk-roi-controls">
            <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-roi-primary)" stroke-width="2.5"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg> Wprowadź swoje dane</h3>

            <div class="rk-roi-input-group">
                <div class="rk-roi-label">
                    Cena prądu:
                    <span id="outPrice">1.20 PLN</span>
                </div>
                <input type="range" class="rk-roi-range" id="slPrice" min="0.80" max="2.50" step="0.05" value="1.20">
                <p class="rk-roi-desc">Koszt za 1 kWh (uwzględnij dystrybucję).</p>
            </div>

            <div class="rk-roi-input-group">
                <div class="rk-roi-label">
                    Roczne zapotrzebowanie:
                    <span id="outDemand">8 000 kWh</span>
                </div>
                <input type="range" class="rk-roi-range" id="slDemand" min="4000" max="15000" step="500" value="8000">
                <p class="rk-roi-desc">Zgodne z wynikiem audytu lub OZC.</p>
            </div>

            <div class="rk-roi-input-group">
                <div class="rk-roi-label">
                    Różnica w cenie instalacji:
                    <span id="outDiff">30 000 PLN</span>
                </div>
                <input type="range" class="rk-roi-range" id="slDiff" min="10000" max="60000" step="1000" value="30000">
                <p class="rk-roi-desc">O ile PC i wodna podłogówka są droższe.</p>
            </div>

            <div class="rk-roi-input-group" style="margin-bottom: 0;">
                <div class="rk-roi-label">
                    Sprawność Pompy (SCOP):
                    <span id="outScop">3.5</span>
                </div>
                <input type="range" class="rk-roi-range" id="slScop" min="2.5" max="5.0" step="0.1" value="3.5">
                <p class="rk-roi-desc">Im niższa temp. zasilania, tym wyższy SCOP.</p>
            </div>
        </div>

        <div class="rk-roi-results">
            
            <div class="rk-roi-gauge">
                <svg class="rk-gauge-svg" viewBox="0 0 200 200">
                    <circle class="rk-gauge-bg" cx="100" cy="100" r="80"></circle>
                    <circle class="rk-gauge-fill" id="roiGaugeFill" cx="100" cy="100" r="80"></circle>
                </svg>
                <div class="rk-gauge-text">
                    <span class="rk-gauge-val" id="resYears">5.1</span>
                    <span class="rk-gauge-lab">Lat zwrotu</span>
                </div>
            </div>

            <div class="rk-res-box">
                <span class="rk-res-box-val" id="resSavings">5 800 PLN</span>
                <span class="rk-res-box-lab">Twoja roczna oszczędność na prądzie</span>
            </div>

            <div class="rk-res-box">
                <span class="rk-res-box-val" id="resMonthly" style="color: #cbd5e1; font-size: 16px;">483 PLN</span>
                <span class="rk-res-box-lab">Oszczędność w skali miesiąca</span>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Slidery
    const slPrice = document.getElementById('slPrice');
    const slDemand = document.getElementById('slDemand');
    const slDiff = document.getElementById('slDiff');
    const slScop = document.getElementById('slScop');

    // Wartości Wyjściowe Suwaków
    const outPrice = document.getElementById('outPrice');
    const outDemand = document.getElementById('outDemand');
    const outDiff = document.getElementById('outDiff');
    const outScop = document.getElementById('outScop');

    // Wyniki
    const resYears = document.getElementById('resYears');
    const resSavings = document.getElementById('resSavings');
    const resMonthly = document.getElementById('resMonthly');
    const gaugeFill = document.getElementById('roiGaugeFill');

    // Formatowanie
    const formatPLN = (num) => Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");

    function calculateROI() {
        const price = parseFloat(slPrice.value);
        const demand = parseFloat(slDemand.value);
        const diff = parseFloat(slDiff.value);
        const scop = parseFloat(slScop.value);

        // Aktualizacja tekstów obok suwaków
        outPrice.textContent = price.toFixed(2) + ' PLN';
        outDemand.textContent = formatPLN(demand) + ' kWh';
        outDiff.textContent = formatPLN(diff) + ' PLN';
        outScop.textContent = scop.toFixed(1);

        // Algorytm Oszczędności
        // Elektryka: Płacisz za 100% energii
        const costElec = demand * price;
        
        // Pompa Ciepła: Płacisz tylko za prąd do sprężarki
        const costPump = (demand / scop) * price;

        // Roczna różnica (Zysk)
        const savingsAnnual = costElec - costPump;
        
        // Czas zwrotu w latach
        let roiYears = diff / savingsAnnual;
        
        if (roiYears < 0 || !isFinite(roiYears)) {
            roiYears = 0;
        }

        // Aktualizacja UI
        resSavings.textContent = formatPLN(savingsAnnual) + ' PLN';
        resMonthly.textContent = formatPLN(savingsAnnual / 12) + ' PLN';
        resYears.textContent = roiYears.toFixed(1);

        // Aktualizacja Wskaźnika (Gauge SVG)
        // Zakładamy max sensowny zwrot na 20 lat do skali wskaźnika
        const maxYears = 20;
        let percentage = (roiYears / maxYears);
        if (percentage > 1) percentage = 1;
        if (percentage < 0) percentage = 0;

        // Zmiana koloru wskaźnika (Zielony -> Żółty -> Czerwony)
        let strokeColor = 'var(--rk-roi-primary)'; // Zielony (Zyskowny)
        if (roiYears > 8) strokeColor = 'var(--rk-roi-warning)'; // Żółty (Średni zwrot)
        if (roiYears > 12) strokeColor = '#f43f5e'; // Czerwony (Długi zwrot)
        
        gaugeFill.style.stroke = strokeColor;

        // Obwód koła to 2 * pi * r (r=80 -> ~502)
        // dashoffset = 502 oznacza puste, 0 oznacza pełne.
        // Chcemy, aby krótszy czas (mało lat) = zielone koło (prawie pełne, szybki zysk).
        // Więc odwrotność: 
        const fillAmount = 1 - percentage; 
        const offset = 502 - (502 * fillAmount);
        
        gaugeFill.style.strokeDashoffset = offset;
    }

    // Nasłuchiwacze na wszystkie suwaki
    const inputs = [slPrice, slDemand, slDiff, slScop];
    inputs.forEach(input => {
        if(input) {
            input.addEventListener('input', calculateROI);
        }
    });

    // Inicjalizacja pierwszego uruchomienia
    if (slPrice) calculateROI();
});
</script>



<style>
:root {
    --rk-pv-dark: #0f172a;
    --rk-pv-panel: #1e293b;
    --rk-pv-bg: #ffffff;
    --rk-pv-border: #e2e8f0;
    --rk-pv-text: #334155;
    --rk-pv-muted: #64748b;
    
    /* Kolory funkcyjne */
    --rk-pv-sun: #eab308; /* Żółty - Fotowoltaika */
    --rk-pv-heat: #ef4444; /* Czerwony - Zapotrzebowanie */
    --rk-pv-grid: #8b5cf6; /* Niebieski - Pobór z sieci */
    --rk-pv-success: #10b981; /* Zielony - Pompa Ciepła */
}

.rk-pv-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pv-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    overflow: hidden;
}

/* Nagłówek i opis (Top-Down Flow) */
.rk-pv-header {
    padding: 45px 50px 30px;
    text-align: center;
    background: linear-gradient(to bottom, #fefce8, #ffffff);
    border-bottom: 1px solid var(--rk-pv-border);
}

.rk-pv-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.15);
    color: #ca8a04;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 179, 8, 0.3);
}

.rk-pv-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-pv-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-pv-header p {
    font-size: 16px;
    color: var(--rk-pv-text);
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.7;
}

.rk-pv-link {
    color: var(--rk-pv-grid);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: 0.3s;
}
.rk-pv-link:hover { border-bottom-style: solid; color: #6d28d9; }

/* Sekcja Interaktywna - Przełącznik Centralny */
.rk-pv-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-pv-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-pv-toggle {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 6px;
    position: relative;
}

.rk-pv-toggle-btn {
    padding: 14px 35px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-pv-muted);
    border: none;
    background: transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-pv-toggle-btn.active { color: var(--rk-pv-dark); }

.rk-pv-toggle-indicator {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-pv-toggle[data-season="winter"] .rk-pv-toggle-indicator {
    transform: translateX(100%);
}

/* Scentralizowany Wykres SVG */
.rk-pv-chart-box {
    background: var(--rk-pv-dark);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    margin-bottom: 40px;
    position: relative;
}

.rk-pv-chart-svg {
    width: 100%;
    height: 250px;
}

/* Animacje Słupków SVG */
.anim-bar { transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1), y 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.anim-text { transition: opacity 0.4s; font-family: 'Inter', sans-serif; font-weight: bold; }

/* Karty Wynikowe (Grid Bottom) */
.rk-pv-cards-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-pv-card {
    background: #ffffff;
    border: 1px solid var(--rk-pv-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    overflow: hidden;
    transition: all 0.4s;
}

.rk-pv-card::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px;
}
.card-elec::before { background: var(--rk-pv-heat); }
.card-pump::before { background: var(--rk-pv-success); }

.rk-pv-card h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-pv-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-pv-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-pv-text);
    margin: 0 0 20px 0;
}

.rk-pv-result {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-pv-result span {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-pv-muted);
    margin-bottom: 5px;
}

.rk-pv-result strong {
    font-size: 20px;
    font-weight: 900;
}

.card-elec .rk-pv-result strong { color: var(--rk-pv-heat); }
.card-pump .rk-pv-result strong { color: var(--rk-pv-success); }

@media (max-width: 768px) {
    .rk-pv-header { padding: 30px 20px; }
    .rk-pv-interactive { padding: 30px 20px; }
    .rk-pv-toggle { width: 100%; display: flex; }
    .rk-pv-toggle-btn { flex: 1; justify-content: center; padding: 12px 10px; font-size: 13px; }
    .rk-pv-chart-svg { height: 200px; }
    .rk-pv-chart-box { padding: 15px; }
    .rk-pv-cards-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-fotowoltaika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Dlaczego fotowoltaika nie eliminuje problemu ogrzewania elektrycznego?",
    "description": "Analiza zimowej luki energetycznej. Sprawdź, dlaczego ogrzewanie prądem z PV zimą to mit, i jak pompa ciepła ratuje bilans cieplny budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-pv",
    "name": "Bilans energetyczny domu z PV: Produkcja vs Zapotrzebowanie (Polska strefa klimatyczna)",
    "description": "Zestawienie meteorologiczne uzyskanej energii słonecznej w stosunku do obciążenia cieplnego budynku w miesiącach zimowych (grudzień-styczeń).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "uzysk z fotowoltaiki w grudniu i styczniu",
      "ogrzewanie elektryczne a panele słoneczne",
      "współpraca pompy ciepła z PV zimą",
      "bilans cieplny budynku z fotowoltaiką",
      "zapotrzebowanie na ciepło a prąd"
    ],
    "measurementTechnique": "Porównanie krzywej produkcji instalacji PV o mocy 10 kWp do krzywej zapotrzebowania cieplnego budynku jednorodzinnego wyliczonego ze wzorów OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zimą (grudzień, styczeń) fotowoltaika pokrywa średnio zaledwie 10-15% zapotrzebowania energetycznego domu.",
        "Ogrzewanie elektryczne generuje czarną dziurę finansową, zmuszając do kupowania 85% energii z sieci w najdroższej taryfie.",
        "Pompa ciepła, dzięki zjawisku termodynamicznemu, zużywa 3-4 razy mniej prądu sieciowego na wyprodukowanie tej samej ilości ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-pv",
    "name": "Symulator Luki Energetycznej (PV vs Zapotrzebowanie)",
    "description": "Interaktywny kokpit analityczny demonstrujący kolizję zerowej produkcji PV i szczytowego zapotrzebowania na ciepło w miesiącach zimowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pv-container" id="rk-pv-app">
    
    <div class="rk-pv-header">
        <div class="rk-pv-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
            Analiza Luki Energetycznej
        </div>
        <h2>Dlaczego fotowoltaika nie eliminuje problemu ogrzewania elektrycznego?</h2>
        <p>Wielu inwestorów ulega groźnemu mitowi: <em>"Mam PV, więc mam darmowe ogrzewanie elektryczne"</em>. Zgodnie z <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/" class="rk-pv-link">bilansem cieplnym budynków</a> dla polskiej strefy klimatycznej, produkcja z PV zimą pokrywa zaledwie <strong>10-15% potrzeb</strong>. Zobacz, jak brutalnie fizyka weryfikuje ten układ.</p>
    </div>

    <div class="rk-pv-interactive">
        
        <div class="rk-pv-toggle-wrapper">
            <div class="rk-pv-toggle" data-season="summer" id="pvToggleUi">
                <div class="rk-pv-toggle-indicator"></div>
                <button class="rk-pv-toggle-btn active" onclick="switchPvSeason('summer')">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--rk-pv-sun)" stroke-width="2.5"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line></svg>
                    Miesiące Letnie (Lipiec)
                </button>
                <button class="rk-pv-toggle-btn" onclick="switchPvSeason('winter')">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h4l2-9 5 18 2-9h5"></path></svg>
                    Miesiące Zimowe (Styczeń)
                </button>
            </div>
        </div>

        <div class="rk-pv-chart-box">
            <svg class="rk-pv-chart-svg" viewBox="0 0 800 200" preserveAspectRatio="xMidYMid meet">
                <line x1="50" y1="160" x2="750" y2="160" stroke="#334155" stroke-width="2"/>
                <line x1="50" y1="110" x2="750" y2="110" stroke="#334155" stroke-width="1" stroke-dasharray="4 4"/>
                <line x1="50" y1="60" x2="750" y2="60" stroke="#334155" stroke-width="1" stroke-dasharray="4 4"/>
                
                <text x="40" y="165" fill="#64748b" font-family="Inter" font-size="12" text-anchor="end">0%</text>
                <text x="40" y="115" fill="#64748b" font-family="Inter" font-size="12" text-anchor="end">50%</text>
                <text x="40" y="65" fill="#64748b" font-family="Inter" font-size="12" text-anchor="end">100%</text>

                <rect class="anim-bar" id="barPv" x="150" y="60" width="120" height="100" fill="var(--rk-pv-sun)" rx="4"/>
                <text class="anim-text" id="txtPv" x="210" y="50" fill="var(--rk-pv-sun)" font-size="16" text-anchor="middle">Uzysk PV: 100%</text>
                <text x="210" y="185" fill="#94a3b8" font-family="Inter" font-size="14" font-weight="bold" text-anchor="middle">PRODUKCJA PRĄDU</text>

                <rect class="anim-bar" id="barHeat" x="340" y="150" width="120" height="10" fill="var(--rk-pv-heat)" rx="4"/>
                <text class="anim-text" id="txtHeat" x="400" y="140" fill="var(--rk-pv-heat)" font-size="16" text-anchor="middle">Straty ciepła: B. niskie</text>
                <text x="400" y="185" fill="#94a3b8" font-family="Inter" font-size="14" font-weight="bold" text-anchor="middle">ZAPOTRZEBOWANIE</text>

                <rect class="anim-bar" id="barGrid" x="530" y="160" width="120" height="0" fill="var(--rk-pv-grid)" rx="4"/>
                <text class="anim-text" id="txtGrid" x="590" y="150" fill="var(--rk-pv-grid)" font-size="16" text-anchor="middle" opacity="0">LUKA: Kupujesz prąd!</text>
                <text x="590" y="185" fill="#94a3b8" font-family="Inter" font-size="14" font-weight="bold" text-anchor="middle">DOBÓR Z SIECI</text>
            </svg>
        </div>

        <div class="rk-pv-cards-grid">
            
            <div class="rk-pv-card card-elec">
                <h3>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-pv-heat)" stroke-width="2.5"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                    Kable / Maty Elektryczne
                </h3>
                <p>Przy spadku produkcji z paneli do 10-15%, bezpośrednie ogrzewanie staje się <strong>czarną dziurą budżetową</strong>. Grzałka przerabia 1 kWh drogiego prądu z sieci na zaledwie 1 kWh ciepła (COP = 1.0). Brak masy akumulacyjnej pogłębia problem.</p>
                <div class="rk-pv-result">
                    <span id="resElecLabel">Oceny na miesiąc zimowy:</span>
                    <strong id="resElecStatus">KRYTYCZNE ZUŻYCIE Z SIECI</strong>
                </div>
            </div>

            <div class="rk-pv-card card-pump">
                <h3>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-pv-success)" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    Wodna Pompa Ciepła
                </h3>
                <p>Tu zadziała fizyka. <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-pv-link">Pompa ciepła</a> nie używa prądu do grzania, a jedynie do zasilania sprężarki. Przemienia 1 kWh prądu pobranego z sieci na nawet 3-4 kWh ciepła z zewnątrz (SCOP 3.5), ratując Twój portfel podczas mrozów.</p>
                <div class="rk-pv-result">
                    <span id="resPumpLabel">Oceny na miesiąc zimowy:</span>
                    <strong id="resPumpStatus">EFEKT DŹWIGNI (SCOP)</strong>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
function switchPvSeason(season) {
    const toggleUi = document.getElementById('pvToggleUi');
    const btns = toggleUi.querySelectorAll('.rk-pv-toggle-btn');
    
    // UI toggle
    btns[0].classList.toggle('active', season === 'summer');
    btns[1].classList.toggle('active', season === 'winter');
    toggleUi.setAttribute('data-season', season);

    // Animacje SVG
    const barPv = document.getElementById('barPv');
    const txtPv = document.getElementById('txtPv');
    const barHeat = document.getElementById('barHeat');
    const txtHeat = document.getElementById('txtHeat');
    const barGrid = document.getElementById('barGrid');
    const txtGrid = document.getElementById('txtGrid');

    // Aktualizacja Kart
    const resElecStatus = document.getElementById('resElecStatus');
    const resPumpStatus = document.getElementById('resPumpStatus');

    if (season === 'summer') {
        // LATO
        barPv.setAttribute('y', '60');
        barPv.setAttribute('height', '100');
        txtPv.setAttribute('y', '50');
        txtPv.textContent = 'Uzysk PV: Wysoki (100%)';

        barHeat.setAttribute('y', '150');
        barHeat.setAttribute('height', '10');
        txtHeat.setAttribute('y', '140');
        txtHeat.textContent = 'Zapotrzebowanie: Znikome';

        barGrid.setAttribute('y', '160');
        barGrid.setAttribute('height', '0');
        txtGrid.setAttribute('opacity', '0');

        resElecStatus.textContent = "SYSTEM NIE PRACUJE (LATO)";
        resPumpStatus.textContent = "SYSTEM NIE PRACUJE (LATO)";
        resElecStatus.style.color = "var(--rk-pv-muted)";
        resPumpStatus.style.color = "var(--rk-pv-muted)";

    } else {
        // ZIMA (Styczeń/Grudzień)
        barPv.setAttribute('y', '145');
        barPv.setAttribute('height', '15');
        txtPv.setAttribute('y', '135');
        txtPv.textContent = 'Uzysk PV: ~15%';

        barHeat.setAttribute('y', '60');
        barHeat.setAttribute('height', '100');
        txtHeat.setAttribute('y', '50');
        txtHeat.textContent = 'Zapotrzebowanie: SZCZYTOWE';

        barGrid.setAttribute('y', '75');
        barGrid.setAttribute('height', '85');
        txtGrid.setAttribute('y', '65');
        txtGrid.textContent = 'LUKA: Prąd z sieci (85%)';
        txtGrid.setAttribute('opacity', '1');

        resElecStatus.textContent = "KRYTYCZNY KOSZT (KUPUJESZ Z SIECI)";
        resPumpStatus.textContent = "OSZCZĘDNOŚĆ x3.5 (DZIĘKI SCOP)";
        resElecStatus.style.color = "var(--rk-pv-heat)";
        resPumpStatus.style.color = "var(--rk-pv-success)";
    }
}
</script>



<style>
:root {
    --rk-sum-dark: #020617;
    --rk-sum-panel: #0f172a;
    --rk-sum-primary: #10b981; 
    --rk-sum-primary-light: #d1fae5;
    --rk-sum-accent: #0ea5e9; 
    --rk-sum-warning: #f43f5e; 
    --rk-sum-bg: #f8fafc;
    --rk-sum-border: #cbd5e1;
    --rk-sum-text: #334155;
    --rk-sum-text-dim: #64748b;
}

.rk-summary-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Header z ekspertem */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-bottom: 4px solid var(--rk-sum-primary);
    position: relative;
    overflow: hidden;
}

.rk-summary-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
}

.rk-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-header-content {
    position: relative;
    z-index: 2;
}

.rk-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 8px 0;
    line-height: 1.2;
}

.rk-header-content p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
    font-weight: 500;
    line-height: 1.5;
}

/* Sekcja z zakładkami i wiedzą */
.rk-summary-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-sum-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #f8fafc;
}

.rk-rule-btn {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-rule-btn:hover {
    border-color: var(--rk-sum-primary);
}

.rk-rule-btn.active {
    background: var(--rk-sum-primary-light);
    border-color: var(--rk-sum-primary);
    box-shadow: inset 4px 0 0 var(--rk-sum-primary);
}

.rk-rule-icon {
    width: 32px; height: 32px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-sum-text-dim);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-rule-btn.active .rk-rule-icon {
    background: var(--rk-sum-primary);
    color: #ffffff;
}

.rk-rule-text h3 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-rule-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-text-dim);
    line-height: 1.5;
}

/* Nowa Wskazówka Eksperta (Wypełniacz po lewej) */
.rk-expert-tip {
    margin-top: auto;
    padding: 20px;
    background: rgba(16, 185, 129, 0.05);
    border: 1px dashed rgba(16, 185, 129, 0.4);
    border-radius: 12px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-expert-tip svg {
    width: 24px;
    height: 24px;
    color: var(--rk-sum-primary);
    flex-shrink: 0;
}

.rk-expert-tip-text strong {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin-bottom: 5px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-expert-tip-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-text-dim);
    line-height: 1.5;
}

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px;
    position: relative;
}

.rk-detail-panel {
    display: none;
}

.rk-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-detail-panel h4 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sum-dark);
}

.rk-detail-panel p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-sum-text);
}

.rk-sum-link {
    color: var(--rk-sum-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: 0.3s;
}
.rk-sum-link:hover { border-color: var(--rk-sum-accent); }

.rk-detail-svg {
    width: 100%;
    height: 160px;
    background: var(--rk-sum-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
    border: 2px solid #1e293b;
}

/* Narzędzie Szybkiego Szacowania (Kalkulator) */
.rk-quick-calc {
    background: var(--rk-sum-panel);
    padding: 35px 50px;
    border-top: 1px solid #1e293b;
    color: #ffffff;
}

.rk-calc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
}

.rk-calc-header h4 {
    margin: 0; font-size: 18px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 10px;
}

.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-input-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-label { font-size: 13px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; align-items: center; }
.rk-calc-label span { color: #ffffff; font-size: 18px; font-weight: 900; }

.rk-sum-range {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-sum-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-sum-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}

.rk-calc-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-result-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-result-box.highlight { border-color: var(--rk-sum-primary); background: rgba(16, 185, 129, 0.1); }
.rk-result-box.danger { border-color: rgba(244, 63, 94, 0.5); background: rgba(244, 63, 94, 0.05); }

.rk-res-val { display: block; font-size: 20px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-result-box.highlight .rk-res-val { color: var(--rk-sum-primary); }
.rk-result-box.danger .rk-res-val { color: var(--rk-sum-warning); }
.rk-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.4; }

/* SEKACJA AUTORSKA - PODPIS EKSPERTA */
.rk-summary-author {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-author-photo-small {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info {
    flex-grow: 1;
}

.rk-author-info h4 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sum-dark);
}

.rk-author-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-sum-text);
    line-height: 1.6;
}

.rk-author-links {
    display: flex;
    gap: 15px;
    margin-top: 12px;
}

.rk-author-links a {
    color: var(--rk-sum-accent);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-author-links a:hover {
    color: #0284c7;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .rk-summary-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-expert-avatar { width: 70px; height: 70px; }
    .rk-summary-body { grid-template-columns: 1fr; }
    .rk-rules-list { border-right: none; border-bottom: 1px solid var(--rk-sum-border); padding: 20px; }
    .rk-expert-tip { margin-top: 15px; }
    .rk-rule-details { padding: 25px 20px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-quick-calc { padding: 30px 20px; }
    .rk-calc-results { grid-template-columns: 1fr; }
    .rk-summary-author { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-author-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Podsumowanie eksperta: Wodna podłogówka to inwestycja, elektryka to abonament",
    "description": "Zestawienie twardych danych i interaktywny kalkulator kosztów TCO na 20 lat, porównujący koszty eksploatacji pomp ciepła i folii grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-summary",
    "name": "Porównanie kosztów TCO: Elektryka vs Pompa Ciepła (20 lat)",
    "description": "Zestawienie analityczne weryfikujące koszty początkowe i wydatki energetyczne dwóch wiodących systemów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator TCO ogrzewania",
      "opłacalność pompy ciepła",
      "koszty folii grzewczych",
      "symulacja zużycia prądu 20 lat",
      "ogrzewanie podłogowe inwestycja"
    ],
    "measurementTechnique": "Analiza całkowitych kosztów posiadania (TCO) na bazie szacunkowego zapotrzebowania na energię, zakładająca COP 1.0 dla kabli oraz średnie SCOP 3.5 dla pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sprawność kabli grzewczych to 1:1, co oznacza drastyczne koszty utrzymania.",
        "Pompa ciepła obniża rachunki 3.5-krotnie, pokrywając wyższy koszt inwestycji w ciągu kilku lat.",
        "Fotowoltaika zimą dostarcza ułamek potrzebnej energii."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-summary",
    "name": "Estymator Kosztów Długoterminowych Ogrzewania",
    "description": "Interaktywny symulator finansowy wyliczający szacunkowy rachunek za ogrzewanie w perspektywie 20 lat dla rozwiązań bezpośrednich oraz pomp ciepła.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-container" id="rk-tco-summary-app">
    
    <div class="rk-summary-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
        <div class="rk-header-content">
            <div class="rk-header-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Wodna podłogówka to inwestycja, elektryka to abonament</h2>
            <p>Nie daj się zwieść niskim kosztom montażu mat i folii. Wybór systemu grzewczego to decyzja, która na 20 lat zdefiniuje obciążenie Twojego portfela.</p>
        </div>
    </div>

    <div class="rk-summary-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="tco-1">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="12" y1="12" x2="12" y2="12"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>Zasada TCO (Koszty Całkowite)</h3>
                    <p>Startowa oszczędność vs rachunki</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="tco-2">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>Mit darmowego prądu z PV</h3>
                    <p>Zimą panele nie grzeją domu</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="tco-3">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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></div>
                <div class="rk-rule-text">
                    <h3>Projekt to tarcza finansowa</h3>
                    <p>Obliczenia gwarantują efektywność</p>
                </div>
            </button>
            
            <!-- Nowa Wskazówka Eksperta (Wypełnia pustą przestrzeń) -->
            <div class="rk-expert-tip">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
                    <path d="M12 8v4"></path>
                    <path d="M12 16h.01"></path>
                </svg>
                <div class="rk-expert-tip-text">
                    <strong>Wskazówka Inwestycyjna</strong>
                    <p>Różnica w kosztach prądu między foliami a pompą ciepła potrafi w kilka lat pokryć 100% ceny kompleksowego i prawidłowego montażu wodnej podłogówki.</p>
                </div>
            </div>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="tco-1">
                <h4>Koszty to nie tylko materiał na starcie</h4>
                <p>Inwestorzy często wybierają elektrykę, bo kable kosztują 10 000 PLN zamiast 40 000 PLN (za komplet z pompą). Zapominają jednak, że przy kablach (COP 1.0) zapłacą cztery razy więcej za każdą zimę. Wodna podłogówka <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-sum-link">zwraca różnicę w cenie w kilka lat</a> i pozwala na wymianę źródła ciepła w przyszłości.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <line x1="100" y1="80" x2="100" y2="20" stroke="#64748b" stroke-width="4"/>
                        <polygon points="90,80 110,80 100,60" fill="#64748b"/>
                        <line x1="40" y1="30" x2="160" y2="50" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                        <rect x="30" y="32" width="20" height="30" fill="#f43f5e" rx="2"/>
                        <text x="40" y="47" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">COP 1</text>
                        <rect x="150" y="15" width="20" height="30" fill="#10b981" rx="2"/>
                        <text x="160" y="30" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">COP 4</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="tco-2">
                <h4>Zimą słońce nie opłaci faktur</h4>
                <p>Niestety, fotowoltaika pokrywa zaledwie kilkanaście procent zapotrzebowania w grudniu i styczniu. Przy ogrzewaniu elektrycznym bezpośrednim, w największe mrozy kupujesz 100% drogiego prądu z sieci. Pompa ciepła, pobierając 1 kW z sieci, pompuje w Twoją wylewkę 4 kW ciepła.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <line x1="20" y1="80" x2="180" y2="80" stroke="#64748b" stroke-width="2"/>
                        <line x1="20" y1="80" x2="20" y2="10" stroke="#64748b" stroke-width="2"/>
                        <path d="M 20 20 Q 100 100 180 20" fill="none" stroke="#f43f5e" stroke-width="3" stroke-dasharray="4 4"/>
                        <path d="M 20 80 Q 100 10 180 80" fill="none" stroke="#eab308" stroke-width="3"/>
                        <text x="100" y="95" fill="#94a3b8" font-size="10" text-anchor="middle" font-weight="bold">MIESIĄCE ZIMOWE VS LETNIE</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="tco-3">
                <h4>Zbuduj fundament z obliczeniami OZC</h4>
                <p>Zagęszczony rozstaw rur i prawidłowo dobrana średnica to wynik <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-sum-link">precyzyjnych obliczeń OZC</a>. To jedyna metoda, aby obniżyć temperaturę zasilania wody do ok. 30°C. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-sum-link">Brak projektu to układanie rur w ciemno</a>, co zawsze mści się wyższymi rachunkami i krótszą żywotnością samej pompy.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="50" y="15" width="100" height="70" fill="none" stroke="#0ea5e9" stroke-width="3" rx="4"/>
                        <line x1="60" y1="30" x2="140" y2="30" stroke="#0ea5e9" stroke-width="2"/>
                        <line x1="60" y1="45" x2="120" y2="45" stroke="#0ea5e9" stroke-width="2"/>
                        <rect x="60" y="55" width="30" height="20" fill="none" stroke="#10b981" stroke-width="2"/>
                        <rect x="100" y="55" width="40" height="20" fill="none" stroke="#10b981" stroke-width="2"/>
                        <path d="M 125 40 L 135 30 L 145 40" fill="none" stroke="#10b981" stroke-width="2"/>
                        <line x1="135" y1="30" x2="135" y2="50" stroke="#10b981" stroke-width="2"/>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-primary)" stroke-width="2.5"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="8" x2="6" y2="8"></line><line x1="10" y1="8" x2="10" y2="8"></line><line x1="14" y1="8" x2="14" y2="8"></line><line x1="18" y1="8" x2="18" y2="8"></line><line x1="6" y1="12" x2="18" y2="12"></line><line x1="6" y1="16" x2="18" y2="16"></line></svg>
                Estymator Kosztów Długoterminowych (20 lat)
            </h4>
            <span style="font-size:12px; color:#64748b;">Zależne od zapotrzebowania</span>
        </div>

        <div class="rk-calc-grid">
            
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Zapotrzebowanie roczne:
                    <span id="tcoDemandOut">8000 kWh</span>
                </div>
                <input type="range" class="rk-sum-range" id="tcoDemandSlider" min="4000" max="16000" step="500" value="8000">
                <p style="font-size: 11px; color:#64748b; margin:0;">*Cena prądu przyjęta bazowo: 1.2 PLN/kWh. SCOP PC: 3.5</p>
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box danger">
                    <span class="rk-res-val" id="resElec">192 000 <span style="font-size:14px;color:var(--rk-sum-warning);">PLN</span></span>
                    <span class="rk-res-lab">Kable / Maty (COP 1.0)</span>
                </div>
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="resPump">54 850 <span style="font-size:14px;color:var(--rk-sum-primary);">PLN</span></span>
                    <span class="rk-res-lab">Pompa Ciepła (SCOP 3.5)</span>
                </div>
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resSave">137 150 <span style="font-size:14px;color:#64748b;">PLN</span></span>
                    <span class="rk-res-lab">Różnica na plus dla wody</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-summary-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Posiadam na swoim koncie ponad 1000 zrealizowanych projektów wodnego ogrzewania podłogowego. Uważam, że matematyka nie kłamie – przed rozpoczęciem instalacji zawsze należy wykonać twardą analizę opłacalności w oparciu o normy PN-EN, a nie ulotki reklamowe.</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zakładki Panelu Bocznego
    const btns = document.querySelectorAll('#rk-tco-summary-app .rk-rule-btn');
    const panels = document.querySelectorAll('#rk-tco-summary-app .rk-detail-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            btn.classList.add('active');
            const targetId = btn.getAttribute('data-panel');
            const targetPanel = document.getElementById(targetId);
            if(targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    });

    // 2. Kalkulator TCO
    const slider = document.getElementById('tcoDemandSlider');
    const demandOut = document.getElementById('tcoDemandOut');
    const resElec = document.getElementById('resElec');
    const resPump = document.getElementById('resPump');
    const resSave = document.getElementById('resSave');

    function updateTCO() {
        const demandKwh = parseInt(slider.value);
        demandOut.textContent = demandKwh + ' kWh';

        const years = 20;
        const pricePerKwh = 1.20; // PLN
        const scopPump = 3.5;

        // Koszt samej energii przez 20 lat
        const elecCost = demandKwh * years * pricePerKwh;
        const pumpCost = (demandKwh / scopPump) * years * pricePerKwh;
        const diff = elecCost - pumpCost;

        // Formatter z przerwą tysięczną
        const formatNumber = (num) => Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");

        resElec.innerHTML = formatNumber(elecCost) + ' <span style="font-size:14px;color:var(--rk-sum-warning);">PLN</span>';
        resPump.innerHTML = formatNumber(pumpCost) + ' <span style="font-size:14px;color:var(--rk-sum-primary);">PLN</span>';
        resSave.innerHTML = formatNumber(diff) + ' <span style="font-size:14px;color:#64748b;">PLN</span>';
    }

    if(slider) {
        slider.addEventListener('input', updateTCO);
        updateTCO();
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-border: #e2e8f0;
    
    /* Kolory funkcyjne */
    --rk-case-brand: #0284c7; /* Sky Blue */
    --rk-case-danger: #f43f5e; /* Rose */
    --rk-case-success: #10b981; /* Emerald */
    --rk-case-warning: #f59e0b; /* Amber */
    
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
}

.rk-case-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-brand);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.2);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(125, 211, 252, 0.3);
}

.rk-case-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
}

.rk-case-header p {
    margin: 0;
    font-size: 15px;
    color: #cbd5e1;
    line-height: 1.6;
    max-width: 800px;
}

/* Moduł Interaktywny - Przełącznik Scenariuszy */
.rk-case-interactive {
    padding: 40px 50px 0;
    background: var(--rk-case-surface);
}

.rk-case-tabs {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 30px;
}

.rk-case-tab-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-muted);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-case-tab-btn[data-target="scenario-bad"].active {
    background: #ffffff;
    color: var(--rk-case-danger);
    box-shadow: 0 4px 10px rgba(244, 63, 94, 0.15);
}

.rk-case-tab-btn[data-target="scenario-good"].active {
    background: #ffffff;
    color: var(--rk-case-success);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Panele Scenariuszy */
.rk-case-scenario {
    display: none;
    margin-bottom: 40px;
}

.rk-case-scenario.active {
    display: block;
}

/* Centralne Dane Liczbowe (Bez SVG) */
.rk-case-data-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 35px 40px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-case-data-box h3 {
    margin: 0 0 25px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--rk-case-surface);
}

.rk-case-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px dashed var(--rk-case-border);
}

.rk-case-metric:last-child {
    border-bottom: none;
}

.rk-case-metric-lab {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-case-muted);
}

.rk-case-metric-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.scenario-bad .rk-case-metric-val.highlight { color: var(--rk-case-danger); }
.scenario-good .rk-case-metric-val.highlight { color: var(--rk-case-success); }

/* Wnioski i CTA */
.rk-case-footer {
    background: #ffffff;
    border-top: 1px solid var(--rk-case-border);
    padding: 40px 50px;
    text-align: center;
}

.rk-case-conclusion {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-case-brand);
    padding: 20px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
    text-align: left;
}

.rk-case-conclusion h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-conclusion p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-case-text);
}

.rk-case-link {
    color: var(--rk-case-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-case-brand);
    transition: 0.3s;
}

.rk-case-link:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Massive CTA */
.rk-cta-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-case-success);
    color: #ffffff;
    font-size: 20px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.5);
    transition: all 0.3s;
    border: 2px solid transparent;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
}

.rk-cta-massive:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 20px 40px -10px rgba(16, 185, 129, 0.6);
    border-color: #6ee7b7;
}

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive, .rk-case-footer { padding: 30px 20px; }
    .rk-case-tabs { flex-direction: column; }
    .rk-case-data-box { padding: 25px 20px; }
    .rk-case-metric { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-case-metric-val { align-self: flex-start; }
    .rk-cta-massive { font-size: 16px; padding: 18px 20px; }
    .rk-case-conclusion { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Case Study: Projekt ogrzewania podłogowego dla domu 145 m² (Bochnia, Małopolska)",
    "description": "Zobacz, jak profesjonalny projekt instalacji ogrzewania podłogowego i dobór pompy ciepła uratowały inwestora przed rachunkami na poziomie 9500 PLN rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-case-study",
    "name": "Analiza porównawcza TCO dla domu 145 m² (Małopolska, maj 2026)",
    "description": "Zestawienie parametrów projektowych dla budynku mieszkalnego: symulacja kosztów bezpośredniego ogrzewania elektrycznego w zestawieniu z wodną instalacją płaszczyznową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "koszt ogrzewania 145m2 pompą ciepła",
      "ogrzewanie elektryczne czy pompa ciepła",
      "obliczenia ozc dla domu",
      "temperatura zasilania podłogówki 35 stopni"
    ],
    "measurementTechnique": "Weryfikacja inżynieryjna kosztów na podstawie projektu OZC. Wykazanie obniżenia temperatury zasilania do 35°C w strefie klimatycznej o projektowej temperaturze zewnętrznej -18°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie roczne budynku: 9 500 kWh.",
        "Scenariusz 1 (Kable elektryczne): Brak OZC, zasilanie oporowe, rachunki powyżej 9 500 PLN rocznie.",
        "Scenariusz 2 (Woda + Pompa monoblok): Rozstaw 10-15cm z projektu OZC, zasilanie max 35°C, koszty roczne ~2 600 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-case-study",
    "name": "Symulator Scenariuszy Inwestycyjnych",
    "description": "Interaktywny panel zestawiający pierwotny plan inwestora (generujący wysokie koszty utrzymania) z finalnym rozwiązaniem inżynierskim zoptymalizowanym poprzez projekt OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Case Study (Maj 2026)
        </div>
        <h2>Projekt dla inwestora Mateusza z Małopolski (Dom 145 m²)</h2>
        <p>Zobacz na realnym przykładzie mojego klienta z okolic Bochni, dlaczego wykonanie dokładnego audytu cieplnego wywróciło do góry nogami jego plany dotyczące instalacji elektrycznej.</p>
    </div>

    <div class="rk-case-interactive">
        
        <div class="rk-case-tabs">
            <button class="rk-case-tab-btn active" data-target="scenario-bad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Pierwotny Plan Inwestora
            </button>
            <button class="rk-case-tab-btn" data-target="scenario-good">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Rozwiązanie z Projektem
            </button>
        </div>

        <div class="rk-case-scenario scenario-bad active" id="scenario-bad">
            <div class="rk-case-data-box">
                <h3>Kable grzejne w całej podłodze</h3>
                
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab">Zapotrzebowanie budynku</span>
                    <span class="rk-case-metric-val">9 500 kWh / rok</span>
                </div>
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab">Projekt instalacji podłogowej</span>
                    <span class="rk-case-metric-val highlight">Brak (montaż "na oko")</span>
                </div>
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab">Współczynnik COP układu</span>
                    <span class="rk-case-metric-val">1.0</span>
                </div>
                <div class="rk-case-metric" style="border: none; padding-top: 25px; margin-top: 10px;">
                    <span class="rk-case-metric-lab" style="color: var(--rk-case-dark); font-size: 16px;">Szacowany rachunek roczny</span>
                    <span class="rk-case-metric-val highlight" style="font-size: 26px;">> 9 500 PLN</span>
                </div>
            </div>
        </div>

        <div class="rk-case-scenario scenario-good" id="scenario-good">
            <div class="rk-case-data-box">
                <h3>Woda + Pompa Monoblok</h3>
                
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab">Zapotrzebowanie budynku</span>
                    <span class="rk-case-metric-val">9 500 kWh / rok</span>
                </div>
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab"><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-case-link" style="color:var(--rk-case-muted);">Rozstaw rur (na bazie OZC)</a></span>
                    <span class="rk-case-metric-val highlight">co 10-15 cm</span>
                </div>
                <div class="rk-case-metric">
                    <span class="rk-case-metric-lab"><a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" class="rk-case-link" style="color:var(--rk-case-muted);">Temp. zasilania przy -18°C</a></span>
                    <span class="rk-case-metric-val">zaledwie 35°C</span>
                </div>
                <div class="rk-case-metric" style="border: none; padding-top: 25px; margin-top: 10px;">
                    <span class="rk-case-metric-lab" style="color: var(--rk-case-dark); font-size: 16px;">Szacowany rachunek roczny</span>
                    <span class="rk-case-metric-val highlight" style="font-size: 26px;">~2 600 PLN</span>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-case-footer">
        <div class="rk-case-conclusion">
            <h4>Wniosek: Nie ryzykuj budżetem domowym</h4>
            <p>Ogrzewanie to inwestycja długoterminowa. Wybierając system grzewczy, nie patrz na cenę zakupu komponentów w sklepie, ale na <strong>koszt całkowity (TCO)</strong> w perspektywie 20 lat. Inwestycja w profesjonalny <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/" class="rk-case-link">projekt instalacji ogrzewania podłogowego</a> oparty na obliczeniach OZC zwróciła się Panu Mateuszowi w postaci drastycznie obniżonych rachunków za prąd jeszcze przed ostatecznym zakończeniem prac wykończeniowych.</p>
        </div>

        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-massive">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></svg>
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#rk-case-app .rk-case-tab-btn');
    const scenarios = document.querySelectorAll('#rk-case-app .rk-case-scenario');

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Czyszczenie aktywnych klas
            btns.forEach(b => b.classList.remove('active'));
            scenarios.forEach(s => s.classList.remove('active'));

            // Ustawienie aktywnych klas
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            const targetScenario = document.getElementById(targetId);
            
            if (targetScenario) {
                targetScenario.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-primary: #f43f5e; /* Red for errors */
    --rk-err-primary-light: #fff1f2;
    --rk-err-accent: #3b82f6; /* Blue for tech details */
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-success: #10b981;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(244, 63, 94, 0.1);
    border: 1px solid rgba(244, 63, 94, 0.2);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #1e293b 100%);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-primary);
    position: relative;
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(244, 63, 94, 0.2);
    color: #fda4af;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    border: 1px solid rgba(244, 63, 94, 0.3);
}

.rk-err-header h2 {
    margin: 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
}

.rk-err-header h2 span {
    color: #fda4af;
}

/* Interaktywny Dashboard */
.rk-err-dashboard {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-err-surface);
}

/* Nawigacja (Zakładki Błędów) */
.rk-err-nav {
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-tab {
    background: var(--rk-err-surface);
    border: 1px solid var(--rk-err-border);
    padding: 16px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-err-tab:hover {
    border-color: #cbd5e1;
    transform: translateX(4px);
}

.rk-err-tab.active {
    background: var(--rk-err-primary-light);
    border-color: var(--rk-err-primary);
    box-shadow: inset 4px 0 0 var(--rk-err-primary);
}

.rk-err-tab-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-err-tab.active .rk-err-tab-title {
    color: var(--rk-err-primary);
}

.rk-err-tab-subtitle {
    font-size: 12px;
    color: var(--rk-err-muted);
    font-weight: 500;
}

/* Panel Prezentacji */
.rk-err-content {
    padding: 40px;
    position: relative;
}

.rk-err-panel {
    display: none;
    animation: errFadeIn 0.4s ease-out forwards;
}

.rk-err-panel.active {
    display: block;
}

@keyframes errFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Grid wewnątrz panelu */
.rk-err-panel-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
}

.rk-err-text-box h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

.rk-err-text-box p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0 0 15px 0;
}

.rk-err-text-box strong {
    color: var(--rk-err-primary);
}

.rk-err-formula {
    display: inline-block;
    background: #f1f5f9;
    padding: 8px 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-accent);
    border: 1px solid #e2e8f0;
    margin: 5px 0;
}

.rk-err-link {
    color: var(--rk-err-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59, 130, 246, 0.4);
    transition: 0.3s;
}

.rk-err-link:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

/* Sekcja Wizualizacji SVG */
.rk-err-visual {
    background: var(--rk-err-dark);
    border-radius: 16px;
    padding: 20px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    border: 2px solid #1e293b;
    position: relative;
    overflow: hidden;
}

.rk-err-svg {
    width: 100%;
    height: 100%;
    max-width: 300px;
}

/* Animacje SVG zależne od błędu */
/* Błąd 1: OZC */
.anim-heat-wave { stroke-dasharray: 8 8; animation: heatFlow 1s linear infinite; }
@keyframes heatFlow { to { stroke-dashoffset: -16; } }
.anim-temp-alert { animation: tempPulse 1.5s infinite alternate; }
@keyframes tempPulse { 0% { fill: #ef4444; filter: drop-shadow(0 0 2px #ef4444); } 100% { fill: #b91c1c; filter: drop-shadow(0 0 10px #ef4444); } }

/* Błąd 2: Wylewka */
.anim-heat-escape { animation: escapeUp 2s infinite ease-out; opacity: 0; }
@keyframes escapeUp { 0% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-30px); opacity: 0; } }

/* Błąd 3: Hydraulika */
.anim-bad-flow { stroke-dasharray: 4 12; animation: slowFlow 3s linear infinite; }
@keyframes slowFlow { to { stroke-dashoffset: -16; } }
.anim-freeze { animation: freezeSpin 4s linear infinite; transform-origin: center; }
@keyframes freezeSpin { to { transform: rotate(360deg); } }

/* Błąd 4: Panele i Podkład */
.anim-bounce-heat { animation: bounceBack 2s infinite ease-in-out; }
@keyframes bounceBack { 0% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-15px); opacity: 0.5; } 100% { transform: translateY(0); opacity: 1; } }

/* Błąd 5: Brak Dylatacji */
.anim-crack-draw { stroke-dasharray: 100; stroke-dashoffset: 100; animation: drawCrack 1.5s 0.5s forwards ease-out; }
@keyframes drawCrack { to { stroke-dashoffset: 0; } }
.anim-shake { animation: tensionShake 2s infinite; }
@keyframes tensionShake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); } 20%, 40%, 60%, 80% { transform: translateX(2px); } }

@media (max-width: 768px) {
    .rk-err-dashboard { grid-template-columns: 1fr; }
    .rk-err-nav { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 20px; flex-direction: row; overflow-x: auto; scroll-snap-type: x mandatory; }
    .rk-err-tab { min-width: 240px; scroll-snap-align: start; }
    .rk-err-header { padding: 30px 20px; }
    .rk-err-content { padding: 25px 20px; }
    .rk-err-visual { height: 150px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "5 najdroższych błędów przy montażu ogrzewania podłogowego (zapisz, by uniknąć)",
    "description": "Zestawienie krytycznych błędów instalacyjnych: brak OZC, zły opór cieplny paneli, brak dylatacji i zła hydraulika niszczące sprawność pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-bledy",
    "name": "Skutki błędów instalacyjnych i materiałowych w systemach płaszczyznowych",
    "description": "Katalog najkosztowniejszych pomyłek na etapie planowania, doboru okładzin i wykonywania dylatacji prowadzących do awarii ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy ogrzewania podłogowego",
      "brak projektu ozc",
      "opór cieplny paneli ogrzewanie podłogowe",
      "pękanie wylewki na podłogówce",
      "taśma brzegowa dylatacje błędy"
    ],
    "measurementTechnique": "Analiza spadków sprawności (COP) oraz uszkodzeń mechanicznych (pękanie jastrychu) wynikających z pominięcia normatywnych procedur hydrauliczno-budowlanych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Pominięcie projektu OZC i rozstaw rur co 20cm (spadek sprawności o 15-20%).",
        "Błąd 2: Zbyt cienka wylewka ograniczająca akumulacyjność cieplną budynku.",
        "Błąd 3: Brak obliczeń hydraulicznych (dławienie przepływów, niedogrzane strefy).",
        "Błąd 4: Przekroczenie granicznego oporu cieplnego okładziny (powyżej 0,15 m²K/W).",
        "Błąd 5: Pominięcie dylatacji i taśmy brzegowej prowadzące do pękania wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-bledy",
    "name": "Symulator Uszkodzeń Ogrzewania Podłogowego",
    "description": "Interaktywne narzędzie wizualizujące skutki braku dylatacji, złego doboru paneli podłogowych i błędów w projektowaniu układu rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Katalog Zagrożeń
        </div>
        <h2>Najczęstsze błędy inwestycyjne <span>(zapisz, by uniknąć)</span></h2>
    </div>

    <div class="rk-err-dashboard">
        
        <div class="rk-err-nav">
            <button class="rk-err-tab active" data-err="err-1">
                <div class="rk-err-tab-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Błąd 1: Brak OZC
                </div>
                <div class="rk-err-tab-subtitle">Rury układane "na oko"</div>
            </button>
            
            <button class="rk-err-tab" data-err="err-2">
                <div class="rk-err-tab-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                    Błąd 2: Cienka Wylewka
                </div>
                <div class="rk-err-tab-subtitle">Utrata akumulacji ciepła</div>
            </button>
            
            <button class="rk-err-tab" data-err="err-3">
                <div class="rk-err-tab-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h4l2-9 5 18 2-9h5"></path></svg>
                    Błąd 3: Zła Hydraulika
                </div>
                <div class="rk-err-tab-subtitle">Niedogrzane pomieszczenia</div>
            </button>

            <button class="rk-err-tab" data-err="err-4">
                <div class="rk-err-tab-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    Błąd 4: Okładzina
                </div>
                <div class="rk-err-tab-subtitle">Blokowanie oddawania ciepła</div>
            </button>

            <button class="rk-err-tab" data-err="err-5">
                <div class="rk-err-tab-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Błąd 5: Brak Dylatacji
                </div>
                <div class="rk-err-tab-subtitle">Pękanie wylewki i płytek</div>
            </button>
        </div>

        <div class="rk-err-content">
            
            <div class="rk-err-panel active" id="err-1">
                <div class="rk-err-panel-grid">
                    <div class="rk-err-text-box">
                        <h3>Pominięcie projektu OZC</h3>
                        <p>Inwestorzy często ufają „doświadczeniu instalatora”, który bez przeliczeń układaja rury co 20 cm w całym domu. Taki rzadki rozstaw sprawia, że podłoga oddaje zbyt mało energii do pomieszczenia.</p>
                        <p><strong>Skutek?</strong> Aby dogrzać dom, pompa ciepła musi pracować na wyższych temperaturach zasilania (np. 45°C zamiast 30°C). To zaburza termodynamikę i drastycznie <strong>obniża sprawność pompy (COP) o 15-20% rocznie</strong>.</p>
                    </div>
                    <div class="rk-err-visual">
                        <svg class="rk-err-svg" viewBox="0 0 200 100">
                            <line x1="20" y1="50" x2="180" y2="50" stroke="#475569" stroke-width="6" stroke-linecap="round"/>
                            <line x1="20" y1="80" x2="180" y2="80" stroke="#475569" stroke-width="6" stroke-linecap="round"/>
                            <path class="anim-heat-wave" d="M 30 50 C 50 30 70 70 90 50" fill="none" stroke="#ef4444" stroke-width="3"/>
                            <path class="anim-heat-wave" d="M 110 50 C 130 30 150 70 170 50" fill="none" stroke="#ef4444" stroke-width="3"/>
                            <rect x="85" y="10" width="30" height="15" fill="#1e293b" stroke="#cbd5e1" stroke-width="2" rx="4"/>
                            <text class="anim-temp-alert" x="100" y="21" font-size="10" font-weight="bold" fill="#ef4444" text-anchor="middle">45°C!</text>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-2">
                <div class="rk-err-panel-grid">
                    <div class="rk-err-text-box">
                        <h3>Zbyt cienka wylewka</h3>
                        <p>W pogoni za oszczędnościami na materiale lub z braku miejsca, wylewka (jastrych) jest wylewana na minimalną grubość. Beton to naturalny magazyn ciepła dla budynku.</p>
                        <p><strong>Skutek?</strong> Zbyt mała masa akumulacyjna ogranicza możliwość „magazynowania” ciepła w <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-err-link">taniej taryfie energetycznej</a>. System szybko się wychładza, a pompa musi włączać się w najdroższych godzinach szczytu.</p>
                    </div>
                    <div class="rk-err-visual">
                        <svg class="rk-err-svg" viewBox="0 0 200 100">
                            <circle cx="100" cy="70" r="10" fill="none" stroke="#ef4444" stroke-width="4"/>
                            <rect x="40" y="55" width="120" height="30" fill="#64748b" opacity="0.5" rx="2"/>
                            <path class="anim-heat-escape" d="M 70 50 Q 80 30 70 10" fill="none" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                            <path class="anim-heat-escape" d="M 100 50 Q 110 30 100 10" fill="none" stroke="#f59e0b" stroke-width="3" stroke-linecap="round" style="animation-delay: 0.5s;"/>
                            <path class="anim-heat-escape" d="M 130 50 Q 140 30 130 10" fill="none" stroke="#f59e0b" stroke-width="3" stroke-linecap="round" style="animation-delay: 1s;"/>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-3">
                <div class="rk-err-panel-grid">
                    <div class="rk-err-text-box">
                        <h3>Brak obliczeń hydraulicznych</h3>
                        <p>Długość pętli i opory tłoczenia muszą być policzone. Równanie przepływu <span class="rk-err-formula">m = Q / (cw × ΔT)</span> jest absolutną podstawą dla dobrania odpowiednich <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-err-link">parametrów pompy obiegowej</a>.</p>
                        <p><strong>Skutek?</strong> Instalacje budowane na przysłowiowe "wyczucie" cierpią na dławienie przepływów. Woda nie nadąża oddawać ciepła na końcach długich obwodów, co skutkuje wiecznie niedogrzanymi sypialniami i łazienkami na piętrze.</p>
                    </div>
                    <div class="rk-err-visual">
                        <svg class="rk-err-svg" viewBox="0 0 200 100">
                            <path d="M 20 40 L 70 40 L 90 48 L 110 48 L 130 40 L 180 40" fill="none" stroke="#475569" stroke-width="4"/>
                            <path d="M 20 60 L 70 60 L 90 52 L 110 52 L 130 60 L 180 60" fill="none" stroke="#475569" stroke-width="4"/>
                            <path class="anim-bad-flow" d="M 25 50 L 65 50 M 135 50 L 175 50" fill="none" stroke="#3b82f6" stroke-width="2" stroke-linecap="round"/>
                            <g class="anim-freeze" transform="translate(150, 25)">
                                <line x1="0" y1="-8" x2="0" y2="8" stroke="#0ea5e9" stroke-width="2"/>
                                <line x1="-7" y1="-4" x2="7" y2="4" stroke="#0ea5e9" stroke-width="2"/>
                                <line x1="-7" y1="4" x2="7" y2="-4" stroke="#0ea5e9" stroke-width="2"/>
                            </g>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-4">
                <div class="rk-err-panel-grid">
                    <div class="rk-err-text-box">
                        <h3>Zły dobór paneli i podkładu (Opór cieplny)</h3>
                        <p>Inwestorzy zapominają, że gruba deska lub tanie panele ułożone na izolacyjnym podkładzie działają dosłownie jak narzucony na grzejnik koc. Jeśli całkowity opór cieplny (podkład + panel) przekracza granicę <span class="rk-err-formula">R = 0,15 m²K/W</span>, system staje się niewydolny.</p>
                        <p><strong>Skutek?</strong> Ciepło zostaje „uwięzione” w wylewce. Aby przebić się przez <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-err-link">izolacyjną warstwę okładziny</a>, pompa ciepła musi pracować na mocno zawyżonych parametrach zasilania, co błyskawicznie pożera zakładane oszczędności.</p>
                    </div>
                    <div class="rk-err-visual">
                        <svg class="rk-err-svg" viewBox="0 0 200 100">
                            <rect x="20" y="20" width="160" height="15" fill="#ca8a04" rx="2"/>
                            <rect x="20" y="38" width="160" height="8" fill="#94a3b8" rx="2"/>
                            <rect x="20" y="49" width="160" height="40" fill="#64748b" opacity="0.5" rx="2"/>
                            <circle cx="60" cy="70" r="8" fill="none" stroke="#ef4444" stroke-width="3"/>
                            <circle cx="100" cy="70" r="8" fill="none" stroke="#ef4444" stroke-width="3"/>
                            <circle cx="140" cy="70" r="8" fill="none" stroke="#ef4444" stroke-width="3"/>
                            <path class="anim-bounce-heat" d="M 100 55 Q 110 40 120 55" fill="none" stroke="#f43f5e" stroke-width="3" stroke-linecap="round"/>
                            <path class="anim-bounce-heat" d="M 60 55 Q 70 40 80 55" fill="none" stroke="#f43f5e" stroke-width="3" stroke-linecap="round"/>
                            <path class="anim-bounce-heat" d="M 140 55 Q 150 40 160 55" fill="none" stroke="#f43f5e" stroke-width="3" stroke-linecap="round"/>
                            <text x="100" y="15" fill="#facc15" font-size="10" font-weight="bold" text-anchor="middle">R > 0,15 m²K/W</text>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-5">
                <div class="rk-err-panel-grid">
                    <div class="rk-err-text-box">
                        <h3>Brak dylatacji i taśmy brzegowej</h3>
                        <p>Wylewka grzewcza to potężna, ciężka i "pracująca" płyta, która nieustannie rozszerza się i kurczy pod wpływem zmian temperatury zasilania. Błędem jest układanie jej na sztywno, bez szczelin rozprężnych.</p>
                        <p><strong>Skutek?</strong> Pominięcie <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">izolacji brzegowej i odpowiednich dylatacji</a> między dużymi obiegami to najkrótsza droga do destrukcji podłogi. Wylewka ulega niekontrolowanemu pęknięciu, zrywając kosztowne płytki ceramiczne, a w miejscu styku ze ścianą powstają ogromne mostki termiczne.</p>
                    </div>
                    <div class="rk-err-visual">
                        <svg class="rk-err-svg" viewBox="0 0 200 100">
                            <rect x="10" y="10" width="20" height="80" fill="#334155" rx="2"/>
                            <g class="anim-shake">
                                <rect x="35" y="40" width="150" height="50" fill="#94a3b8" rx="2"/>
                                <path d="M 170 65 L 180 65 M 175 60 L 180 65 L 175 70" fill="none" stroke="#ffffff" stroke-width="2"/>
                                <path d="M 50 65 L 40 65 M 45 60 L 40 65 L 45 70" fill="none" stroke="#ffffff" stroke-width="2"/>
                                <path class="anim-crack-draw" d="M 110 40 L 105 55 L 115 70 L 108 90" fill="none" stroke="#f43f5e" stroke-width="4" stroke-linejoin="round"/>
                            </g>
                        </svg>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('#rk-err-app .rk-err-tab');
    const panels = document.querySelectorAll('#rk-err-app .rk-err-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Reset
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja wybranego
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-err');
            const targetPanel = document.getElementById(targetId);
            
            if (targetPanel) {
                targetPanel.classList.add('active');
                
                // Restart animacji SVG przez reflow
                const svgs = targetPanel.querySelectorAll('svg');
                svgs.forEach(svg => {
                    svg.style.animation = 'none';
                    svg.offsetHeight; /* trigger reflow */
                    svg.style.animation = null; 
                });
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5;
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4;
    --rk-faq-success: #10b981;
    --rk-faq-warning: #eab308;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-brand);
}

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #a5b4fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(165, 180, 252, 0.3);
}

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq-title span { color: #818cf8; }

/* Sekcja Akordeonu */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
}

/* Przycisk Pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-brand-light);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-brand);
    color: #ffffff;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi (Animacja Grid) */
.rk-faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: center;
}

.rk-faq-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-faq-text);
}

.rk-faq-text strong {
    font-weight: 800;
    color: var(--rk-faq-dark);
}

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #3730a3;
    border-bottom-style: solid;
}

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Eco Leaf / Passive House */
.anim-eco-leaf { transform-origin: 50px 50px; transform: scale(0); transition: transform 0.6s 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-faq-item.active .anim-eco-leaf { transform: scale(1); }

/* 2. Wykres / Oszczędności */
.anim-savings-line { stroke-dasharray: 150; stroke-dashoffset: 150; transition: stroke-dashoffset 1s 0.3s ease-out; }
.rk-faq-item.active .anim-savings-line { stroke-dashoffset: 0; }
.anim-coin-drop { opacity: 0; transform: translateY(-10px); transition: all 0.4s 1s ease-out; }
.rk-faq-item.active .anim-coin-drop { opacity: 1; transform: translateY(0); }

/* 3. Serwis / Trybik */
.anim-service-gear { transform-origin: 50px 35px; transition: transform 1.5s 0.2s ease-in-out; }
.rk-faq-item.active .anim-service-gear { transform: rotate(180deg); }

/* 4. Hybryda (Prąd + Woda) */
.anim-water-flow { stroke-dasharray: 10 10; animation: waterFlow 1.5s linear infinite; }
@keyframes waterFlow { to { stroke-dashoffset: -20; } }
.anim-elec-zap { opacity: 0; transition: opacity 0.3s; }
.rk-faq-item.active .anim-elec-zap { opacity: 1; animation: flashZap 1.5s infinite alternate; }
@keyframes flashZap { 0% { filter: drop-shadow(0 0 2px var(--rk-faq-warning)); } 100% { filter: drop-shadow(0 0 10px var(--rk-faq-warning)); } }

/* 5. 50 Lat PEX */
.anim-50-draw { stroke-dasharray: 200; stroke-dashoffset: 200; transition: stroke-dashoffset 1.5s 0.2s ease-out; }
.rk-faq-item.active .anim-50-draw { stroke-dashoffset: 0; }
.anim-fade-in { opacity: 0; transition: opacity 0.5s 1.2s; }
.rk-faq-item.active .anim-fade-in { opacity: 1; }

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq-visual { height: 120px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "FAQ – Eksperckie odpowiedzi o opłacalności systemów grzewczych",
    "description": "Najczęstsze pytania inwestorów o opłacalność folii grzewczych, koszty eksploatacji, serwis pomp ciepła oraz trwałość instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie elektryczne jest całkowicie nieopłacalne?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, ma sens w domach o ekstremalnie niskim zapotrzebowaniu na ciepło (domy pasywne) lub w pomieszczeniach używanych okazjonalnie (np. domki letniskowe), gdzie niska cena inwestycji przeważa nad kosztami eksploatacji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy projekt jest potrzebny, jeśli dom jest mały (poniżej 100 m²)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, w mniejszych budynkach błędy w projekcie mają większy wpływ na koszty eksploatacji; profesjonalny projekt zwraca się często już po 2-3 sezonach grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła jest tak samo bezobsługowa jak kable grzejne?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Prawie tak – systemy z pompą ciepła wymagają jedynie okresowego przeglądu technicznego raz w roku, natomiast elektryka jest bezobsługowa, ale obarczona znacznie wyższymi rachunkami."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę zainstalować kable grzejne tylko w łazienkach, a resztę domu ogrzewać wodnie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, to bardzo popularne rozwiązanie (tzw. ogrzewanie hybrydowe), gdzie kable zapewniają komfort cieplny pod stopami w łazienkach, a pompa ciepła zajmuje się głównym, tanim ogrzewaniem domu."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest żywotność rur PEX w podłogówce?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nowoczesne rury PEX/PERT posiadają deklarowaną trwałość przekraczającą 50 lat, co czyni je najtrwalszym elementem infrastruktury budowlanej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-faq",
    "name": "Baza Wiedzy: Koszty i eksploatacja systemów grzewczych",
    "description": "Zbiór kluczowych pytań inwestorskich dotyczących opłacalności systemów elektrycznych i wodnych pomp ciepła w perspektywie długoterminowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#webapp-faq",
    "name": "Interaktywny Przewodnik Inwestycyjny",
    "description": "Aplikacja edukacyjna w formie akordeonu ze zintegrowanymi animacjami SVG ułatwiająca zrozumienie różnic eksploatacyjnych między technologiami grzewczymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Czy ogrzewanie elektryczne jest całkowicie nieopłacalne?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Nie, ma sens w domach o <strong>ekstremalnie niskim zapotrzebowaniu na ciepło</strong> (<a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/" class="rk-link">domy pasywne</a>) lub w pomieszczeniach używanych okazjonalnie (np. domki letniskowe), gdzie niska cena inwestycji początkowej przeważa nad wyższymi kosztami eksploatacji.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 40 L 50 15 L 80 40 L 80 65 L 20 65 Z" fill="none" stroke="#64748b" stroke-width="4" stroke-linejoin="round"/>
                                    <path class="anim-eco-leaf" d="M 50 65 C 50 40 35 30 35 30 C 45 25 65 30 65 45 C 65 55 50 65 50 65 Z" fill="var(--rk-faq-success)"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy projekt jest potrzebny, jeśli dom jest mały (poniżej 100 m²)?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, w mniejszych budynkach błędy w projekcie mają często większy odczuwalny wpływ na budżet domowy. <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/" class="rk-link">Profesjonalny projekt OZC</a> chroni przed przewymiarowaniem pompy ciepła i zwraca się najczęściej już po <strong>2-3 sezonach grzewczych</strong> w postaci niższych rachunków.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="10" width="60" height="50" fill="none" stroke="#475569" stroke-width="4" rx="4"/>
                                    <path class="anim-savings-line" d="M 30 25 L 45 40 L 55 30 L 70 50" fill="none" stroke="var(--rk-faq-success)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
                                    <circle class="anim-coin-drop" cx="70" cy="50" r="4" fill="var(--rk-faq-warning)"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Czy pompa ciepła jest tak samo bezobsługowa jak kable grzejne?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Prawie tak. Systemy z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-link">pompą ciepła</a> wymagają jedynie okresowego, corocznego przeglądu technicznego (sprawdzenie filtrów, ciśnienia, szczelności czynnika). Elektryka jest całkowicie bezobsługowa, ale ta wygoda jest <strong>obarczona znacznie wyższymi rachunkami</strong> co miesiąc.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="25" y="15" width="50" height="40" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                                    <path d="M 25 25 L 75 25" stroke="#64748b" stroke-width="4"/>
                                    <circle class="anim-service-gear" cx="50" cy="45" r="10" fill="none" stroke="var(--rk-faq-accent)" stroke-width="4" stroke-dasharray="4 4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy mogę zainstalować kable w łazienkach, a resztę domu ogrzewać wodnie?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, to bardzo popularne rozwiązanie, znane jako <strong>ogrzewanie hybrydowe</strong>. Kable elektryczne lub maty w łazienkach zapewniają szybki komfort cieplny pod stopami niezależnie od sezonu letniego, a <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" class="rk-link">wodna podłogówka</a> zajmuje się głównym, najtańszym ogrzewaniem całego domu.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 20 L 45 20 L 45 50 L 20 50" fill="none" stroke="#3b82f6" stroke-width="4" class="anim-water-flow"/>
                                    <line x1="50" y1="10" x2="50" y2="60" stroke="#475569" stroke-width="2" stroke-dasharray="2 2"/>
                                    <path class="anim-elec-zap" d="M 65 15 L 85 15 L 70 35 L 90 35 L 60 60 L 75 40 L 55 40 Z" fill="var(--rk-faq-warning)"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jaka jest żywotność rur PEX w podłogówce?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Nowoczesne <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" class="rk-link">rury PEX lub PERT</a> posiadają deklarowaną przez producentów i laboratoria trwałość przekraczającą <strong>50 lat</strong>. Przy zachowaniu odpowiednich temperatur i norm (np. brak przegrzewania instalacji powyżej normy), jest to jeden z najtrwalszych elementów całej infrastruktury budowlanej.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path class="anim-50-draw" d="M 50 10 L 80 20 L 80 40 C 80 55 50 65 50 65 C 50 65 20 55 20 40 L 20 20 Z" fill="none" stroke="var(--rk-faq-success)" stroke-width="4" stroke-linejoin="round"/>
                                    <text class="anim-fade-in" x="50" y="45" font-family="system-ui, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">50+</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            faqItems.forEach(i => i.classList.remove('active'));
            
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-tco-dark: #1e293b;
    --rk-tco-blue: #0ea5e9;
    --rk-tco-blue-hover: #0284c7;
    --rk-tco-green: #10b981;
    --rk-tco-red: #f43f5e;
    --rk-tco-bg: #ffffff;
    --rk-tco-gray: #f1f5f9;
    --rk-tco-text: #334155;
    --rk-tco-border: #cbd5e1;
}

.rk-tco-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-tco-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-tco-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-tco-header {
    padding: 40px 40px 20px;
    text-align: center;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid #e2e8f0;
}

.rk-tco-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-tco-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-tco-header p {
    font-size: 16px;
    color: var(--rk-tco-text);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Interaktywny Suwak / Przełącznik */
.rk-tco-interactive {
    padding: 40px;
    background: var(--rk-tco-bg);
}

.rk-tco-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-tco-toggle {
    display: inline-flex;
    background: var(--rk-tco-gray);
    border-radius: 999px;
    padding: 6px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-tco-toggle-btn {
    padding: 12px 30px;
    font-size: 16px;
    font-weight: 700;
    color: #64748b;
    border: none;
    background: transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1;
}

.rk-tco-toggle-btn.active {
    color: #ffffff;
}

.rk-tco-toggle-indicator {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    border-radius: 999px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--rk-tco-red);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
}

.rk-tco-toggle[data-state="water"] .rk-tco-toggle-indicator {
    transform: translateX(100%);
    background: var(--rk-tco-green);
}

/* Panel Wyników (Wyśrodkowany) */
.rk-tco-results {
    display: flex;
    justify-content: center;
    width: 100%;
}

.rk-tco-data-box {
    width: 100%;
    max-width: 650px;
    padding: 35px 40px;
    border-radius: 16px;
    border: 2px solid #e2e8f0;
    transition: all 0.4s;
}

.state-electric .rk-tco-data-box { border-color: rgba(244, 63, 94, 0.3); background: #fff1f2; }
.state-water .rk-tco-data-box { border-color: rgba(16, 185, 129, 0.3); background: #f0fdf4; }

.rk-tco-data-box h3 {
    margin: 0 0 25px 0;
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-tco-dark);
    text-align: center;
}

.rk-tco-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
}

.rk-tco-metric:last-child { border-bottom: none; }

.rk-tco-metric span:first-child { font-weight: 600; font-size: 16px; color: var(--rk-tco-text); }
.rk-tco-metric span:last-child { font-weight: 800; font-size: 18px; color: var(--rk-tco-dark); }

.rk-tco-highlight {
    margin-top: 25px;
    padding: 18px;
    border-radius: 10px;
    background: rgba(0,0,0,0.04);
    font-weight: 800;
    font-size: 20px;
    text-align: center;
}

.state-electric .rk-tco-highlight { color: var(--rk-tco-red); }
.state-water .rk-tco-highlight { color: var(--rk-tco-green); }

/* Sekcja Wniosków i Linków */
.rk-tco-content-grid {
    padding: 0 40px 40px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.rk-tco-content-grid h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-tco-dark);
    margin: 0 0 10px 0;
}

.rk-tco-content-grid p {
    font-size: 15px;
    color: var(--rk-tco-text);
    line-height: 1.6;
    margin: 0;
}

.rk-tco-link {
    color: var(--rk-tco-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s;
}

.rk-tco-link:hover { border-color: var(--rk-tco-blue); }

/* CTA */
.rk-tco-cta {
    background: var(--rk-tco-dark);
    padding: 40px;
    text-align: center;
}

.rk-tco-cta h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-tco-cta p {
    color: #94a3b8;
    margin: 0 auto 30px;
    max-width: 600px;
    font-size: 16px;
    line-height: 1.6;
}

.rk-btn-blue {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-tco-blue);
    color: #ffffff;
    padding: 16px 36px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
    transition: all 0.3s;
}

.rk-btn-blue:hover {
    background: var(--rk-tco-blue-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(14, 165, 233, 0.5);
}

@media (max-width: 768px) {
    .rk-tco-header, .rk-tco-interactive, .rk-tco-content-grid, .rk-tco-cta { padding: 25px; }
    .rk-tco-toggle { width: 100%; display: flex; }
    .rk-tco-toggle-btn { flex: 1; text-align: center; padding: 12px 10px; font-size: 14px; }
    .rk-tco-data-box { padding: 25px 20px; }
    .rk-tco-metric { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-tco-metric span:last-child { align-self: flex-start; }
    .rk-btn-blue { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty"
    },
    "headline": "Podsumowanie: Wybierz mądrze, oszczędzaj przez dekady",
    "description": "Zestawienie całkowitych kosztów posiadania (TCO) instalacji grzewczej na 20 lat. Sprawdź opłacalność pompy ciepła względem kabli elektrycznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty#dataset-tco",
    "name": "Wskaźnik Całkowitych Kosztów Ogrzewania (TCO) 2026-2046",
    "description": "Zestawienie ekonomiczne analizujące opłacalność wodnego ogrzewania podłogowego w stosunku do mat i folii elektrycznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator kosztów ogrzewania 2026",
      "opłacalność pompy ciepła",
      "koszt eksploatacji ogrzewania elektrycznego",
      "wodna podłogówka oszczędności",
      "TCO ogrzewania domu"
    ],
    "measurementTechnique": "Symulacja kosztów początkowych i eksploatacyjnych przy założeniu cyklu życia instalacji wynoszącego 20 lat w oparciu o normę PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ogrzewanie Elektryczne: Niski koszt instalacji, skrajnie wysokie koszty utrzymania z powodu współczynnika COP 1.0.",
        "Wodna Podłogówka z Pompą Ciepła: Wyższy koszt startowy, minimalne koszty eksploatacji dzięki SCOP 3.5+ i akumulacyjności wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty#webapp-symulator",
    "name": "Kalkulator Opłacalności Ogrzewania TCO",
    "description": "Narzędzie interaktywne ilustrujące drenaż portfela przy ogrzewaniu elektrycznym oraz budowanie oszczędności przy inwestycji w wodną instalację podłogową.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tco-container" id="tco-app-container">
    <div class="rk-tco-header">
        <h2>Podsumowanie: Wybierz mądrze, oszczędzaj przez dekady</h2>
        <p>Decyzja o wyborze systemu grzewczego to matematyka, nie emocje. Poniższy symulator obnaża brutalną prawdę o kosztach eksploatacji. Sprawdź, co stanie się z Twoim budżetem po 20 latach.</p>
    </div>

    <div class="rk-tco-interactive state-electric" id="tco-interactive-box">
        <div class="rk-tco-toggle-wrapper">
            <div class="rk-tco-toggle" data-state="electric" id="tco-toggle-ui">
                <div class="rk-tco-toggle-indicator"></div>
                <button class="rk-tco-toggle-btn active" onclick="switchTCO('electric')">Folie / Kable (Elektryka)</button>
                <button class="rk-tco-toggle-btn" onclick="switchTCO('water')">Wodna Podłogówka + Pompa</button>
            </div>
        </div>

        <div class="rk-tco-results">
            <div class="rk-tco-data-box" id="tco-data-content">
                <h3>Ogrzewanie Bezpośrednie</h3>
                <div class="rk-tco-metric"><span>Startowy koszt instalacji</span> <span>~ 10 000 PLN</span></div>
                <div class="rk-tco-metric"><span>Sprawność systemu</span> <span>COP 1.0</span></div>
                <div class="rk-tco-metric"><span>Roczny rachunek za prąd</span> <span>~ 8 000 PLN</span></div>
                <div class="rk-tco-metric"><span>Możliwość zmiany źródła</span> <span>BRAK (zalane w betonie)</span></div>
                <div class="rk-tco-highlight">Suma po 20 latach: 170 000 PLN</div>
            </div>
        </div>
    </div>

    <div class="rk-tco-content-grid">
        <div class="rk-tco-text-block">
            <h4>Dlaczego woda zawsze wygrywa na dłuższą metę?</h4>
            <p>Oszczędność przy montażu instalacji elektrycznej jest jednorazowa. Rachunki za energię będziesz płacić co miesiąc. System wodny oparty o rury pozwala Ci wykorzystać fizykę wylewki (akumulacja) oraz <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/" class="rk-tco-link">technologię pompy ciepła</a>, aby wyprodukować nawet 5 kW energii cieplnej z zaledwie 1 kW pobranego prądu. Co więcej, inwestując w profesjonalny projekt, możesz obliczyć <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" class="rk-tco-link">realny zwrot z inwestycji</a> jeszcze przed wbiciem łopaty w ziemię.</p>
        </div>
    </div>

    <div class="rk-tco-cta">
        <h3>Nie planuj instalacji "na oko"</h3>
        <p>Sukces wodnej podłogówki wymaga inżynierskiego podejścia. Zdobądź wiedzę z ponad 1000 zrealizowanych projektów, omijaj pułapki instalatorów i buduj bez ściemy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-blue">
            WEJDŹ DO BAZY WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
function switchTCO(state) {
    const box = document.getElementById('tco-interactive-box');
    const toggleUi = document.getElementById('tco-toggle-ui');
    const btns = toggleUi.querySelectorAll('.rk-tco-toggle-btn');
    const contentBox = document.getElementById('tco-data-content');

    // Aktualizacja klas interfejsu
    btns[0].classList.toggle('active', state === 'electric');
    btns[1].classList.toggle('active', state === 'water');
    toggleUi.setAttribute('data-state', state);
    box.className = 'rk-tco-interactive state-' + state;

    // Aktualizacja danych wewnątrz Data Boxa
    if (state === 'water') {
        contentBox.innerHTML = `
            <h3>Wodna Podłogówka + PC</h3>
            <div class="rk-tco-metric"><span>Startowy koszt instalacji</span> <span>~ 40 000 PLN</span></div>
            <div class="rk-tco-metric"><span>Sprawność systemu</span> <span>SCOP 3.5 do 5.0</span></div>
            <div class="rk-tco-metric"><span>Roczny rachunek za prąd</span> <span>~ 2 200 PLN</span></div>
            <div class="rk-tco-metric"><span>Możliwość zmiany źródła</span> <span>PEŁNA (infrastruktura na lata)</span></div>
            <div class="rk-tco-highlight">Suma po 20 latach: 84 000 PLN</div>
        `;
    } else {
        contentBox.innerHTML = `
            <h3>Ogrzewanie Bezpośrednie</h3>
            <div class="rk-tco-metric"><span>Startowy koszt instalacji</span> <span>~ 10 000 PLN</span></div>
            <div class="rk-tco-metric"><span>Sprawność systemu</span> <span>COP 1.0</span></div>
            <div class="rk-tco-metric"><span>Roczny rachunek za prąd</span> <span>~ 8 000 PLN</span></div>
            <div class="rk-tco-metric"><span>Możliwość zmiany źródła</span> <span>BRAK (zalane w betonie)</span></div>
            <div class="rk-tco-highlight">Suma po 20 latach: 170 000 PLN</div>
        `;
    }
}
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
}

.download-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--dl-white);
    border-radius: 24px;
    border: 1px solid var(--dl-border);
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.05);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.dl-header {
    background: linear-gradient(135deg, var(--dl-primary) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: var(--dl-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.dl-header-content { position: relative; z-index: 2; max-width: 60%; }

.dl-badge {
    display: inline-block;
    background: rgba(14, 165, 233, 0.2);
    border: 1px solid rgba(14, 165, 233, 0.3);
    color: #7dd3fc;
    padding: 6px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.dl-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

/* WIZUALIZACJA PDF / IKONA */
.dl-header-visual {
    position: relative;
    z-index: 2;
}

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

@keyframes floatIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-10px); }
}

/* GŁÓWNY WORKSPACE */
.dl-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-white);
}

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.dl-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-text);
}

.dl-check-svg {
    width: 20px;
    height: 20px;
    color: var(--dl-accent);
    flex-shrink: 0;
}

/* PRZYCISK POBIERANIA */
.dl-main-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-accent);
    color: var(--dl-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
}

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
}

.dl-main-btn span { font-size: 20px; }

/* STOPKA MODUŁU */
.dl-footer {
    padding: 20px 50px;
    background: var(--dl-bg);
    border-top: 1px solid var(--dl-border);
    font-size: 13px;
    color: var(--dl-muted);
    text-align: center;
}

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 800px) {
    .dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .dl-header-content { max-width: 100%; margin-bottom: 25px; }
    .dl-workspace { flex-direction: column; padding: 30px 20px; }
    .dl-preview-box { margin-bottom: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/"
    },
    "headline": "Ogrzewanie Elektryczne vs Podłogówka Wodna (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie kosztów inwestycyjnych i eksploatacyjnych. Kompletny poradnik TCO w formacie PDF i WEBP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ogrzewanie-elektryczne-vs-wodna-podlogowka-Kalkulator-kosztow-eksploatacji.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#dataset-tabela",
    "name": "Tabela inżynierska: Koszty TCO na 20 lat w Polsce",
    "description": "Zbiór danych określający optymalność finansową (CAPEX + OPEX) systemów grzewczych w zależności od zapotrzebowania energetycznego (od 4000 do 16000 kWh).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela zwrotu z inwestycji pompa ciepła",
      "koszty folii grzewczych vs pompa",
      "symulacja TCO na 20 lat",
      "infografika ogrzewanie podłogowe PDF",
      "sprawność COP i SCOP wykres"
    ],
    "measurementTechnique": "Obliczenia całkowitych kosztów posiadania (TCO) dla strefy klimatycznej III, przy bazowej cenie prądu z 2026 r. i prognozowanej inflacji 3%.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Parametry opłacalności systemów grzewczych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-koszty/#download-app",
    "name": "Centrum Pobierania Wiedzy: Kalkulator Kosztów",
    "description": "Interaktywny moduł umożliwiający wizualizację i pobranie dokumentacji techniczno-finansowej dotyczącej doboru systemów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="download-hub-container" id="app-costs-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały</div>
            <h2>Pobierz Kompletne Zestawienie</h2>
            <p>Zabierz inżynierską wiedzę na budowę. Tabela TCO, schematy architektoniczne i diagnostyka 5 najdroższych błędów w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ogrzewanie-elektryczne-vs-wodna-podlogowka-Kalkulator-kosztow-eksploatacji.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ogrzewanie-elektryczne-vs-wodna-podlogowka-Kalkulator-kosztow-eksploatacji.webp" alt="Infografika - Kalkulator kosztów: Ogrzewanie elektryczne vs wodna podłogówka" class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.6); color:white; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:700;">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie zysków: TCO na 20 lat
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Analiza wydajności COP vs SCOP
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Checklista: 5 błędów (M.in. opór cieplny paneli)
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wysoka rozdzielczość na smartfony
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ogrzewanie-elektryczne-vs-wodna-podlogowka-Kalkulator-kosztow-eksploatacji.pdf" class="dl-main-btn" target="_blank">
                <span>📥</span> POBIERZ ZESTAWIENIE (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.4;">
                Nie wiesz, jak dobrać parametry do swojego budynku? Zobacz <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" style="color:var(--dl-accent-dark); font-weight:800;">jak samodzielnie obliczyć OZC</a> przed zakupem pompy ciepła.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie dozwolone z zachowaniem linku do źródła.
    </div>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-kalkulator-kosztow-eksploatacji/">Ogrzewanie elektryczne vs wodna podłogówka: Kalkulator kosztów eksploatacji.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki?</title>
		<link>https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 10:17:48 +0000</pubDate>
				<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Instalacje niskotemperaturowe]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty eksploatacji]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[scop]]></category>
		<category><![CDATA[systemy niskotemperaturowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[termodynamika]]></category>
		<category><![CDATA[współczynnik cop]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4200</guid>

					<description><![CDATA[<p>Wybór odpowiednich parametrów grzewczych to absolutny fundament, od którego zależą Twoje przyszłe rachunki za prąd oraz trwałość wykończenia wnętrz. W świecie nowoczesnych instalacji coraz częściej pojawia się kluczowe pytanie o to, jaka powinna być niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki? Odpowiedź na nie wymaga zrozumienia praw fizyki, a konkretnie zależności między temperaturą czynnika a współczynnikiem wydajności COP. Utrzymywanie zasilania na tym poziomie pozwala urządzeniu pracować z maksymalną efektywnością, co bezpośrednio przekłada się na realne oszczędności w domowym budżecie. W niniejszym tekście szczegółowo analizujemy aspekty techniczne, wpływ temperatury na jastrych oraz wyjaśniamy, dlaczego precyzyjny projekt instalacji jest ważniejszy niż zakup najdroższej jednostki grzewczej dostępnej na rynku.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">Niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-sky: #e0f2fe;
    --rk-intro-cyan: #06b6d4;
    --rk-intro-green: #10b981;
    --rk-intro-gray: #64748b;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-intro-blue);
    border-left: 8px solid var(--rk-intro-blue);
    overflow: hidden;
}

/* Sekcja Hook (Mocne Otwarcie) */
.rk-intro-hook {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    color: #ffffff;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: var(--rk-intro-cyan);
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(6, 182, 212, 0.3);
}

.rk-intro-hook h2 {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 20px 0;
    line-height: 1.25;
}

.rk-intro-hook p {
    font-size: 17px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
    font-weight: 400;
}

.rk-intro-hook strong {
    color: #ffffff;
    font-weight: 800;
}

/* Przełącznik Nawigacyjny */
.rk-intro-nav {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    /* Brak transition dla natychmiastowego działania */
}

.rk-intro-tab-btn:hover {
    background: #f1f5f9;
    color: var(--rk-intro-dark);
}

.rk-intro-tab-btn.active {
    color: var(--rk-intro-blue);
    border-bottom-color: var(--rk-intro-blue);
    background: #ffffff;
}

/* Panele Treści */
.rk-intro-content {
    background: #ffffff;
    padding: 40px 45px;
}

.rk-intro-panel {
    display: none; /* Sterowanie w JS */
}

.rk-intro-panel.active {
    display: block;
}

/* Szybka Odpowiedź */
.rk-intro-answer-box {
    border-left: 4px solid var(--rk-intro-green);
    padding: 20px 25px;
    background: #f0fdf4;
    border-radius: 0 12px 12px 0;
}

.rk-intro-answer-title {
    font-size: 18px;
    font-weight: 900;
    color: #065f46;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-intro-answer-text {
    font-size: 16px;
    line-height: 1.7;
    color: #166534;
    margin: 0;
}

.rk-intro-answer-text a {
    color: #065f46;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Agenda / Narzędzia */
.rk-intro-tools-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-intro-tool-card {
    padding: 20px;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    background: #f8fafc;
}

.rk-intro-tool-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.rk-intro-tool-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--rk-intro-blue);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-intro-tool-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0;
}

.rk-intro-tool-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-gray);
    margin: 0;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-intro-hook, .rk-intro-content { padding: 30px 20px; }
    .rk-intro-hook h2 { font-size: 26px; }
    .rk-intro-nav { flex-direction: column; }
    .rk-intro-tab-btn { justify-content: flex-start; padding: 15px 20px; border-bottom: none; border-left: 3px solid transparent; }
    .rk-intro-tab-btn.active { border-left-color: var(--rk-intro-blue); }
    .rk-intro-tools-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki?",
    "description": "Zrozum dlaczego parametr 35°C to złoty środek dla ogrzewania podłogowego. Szybka odpowiedź eksperta oraz przewodnik po interaktywnych narzędziach artykułu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-wstep",
    "name": "Kompendium: Niska Temperatura Zasilania Pompy Ciepła",
    "description": "Zbiór podstawowych definicji i twardych faktów wyjaśniających wyższość niskotemperaturowych układów płaszczyznowych (35°C) nad tradycyjnymi systemami grzewczymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "niska temperatura zasilania pompy ciepła",
      "dlaczego 35 stopni to ideał dla podłogówki",
      "jak działa ogrzewanie podłogowe",
      "czy ogrzewanie podłogowe jest energooszczędne",
      "efektywność pompy ciepła"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych wniosków inżynierskich zgodnie z normą PN-EN 1264 w celu udzielenia szybkiej odpowiedzi (Featured Snippet).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szybka Odpowiedź: 35°C gwarantuje najwyższy COP, bezpieczeństwo wylewki i komfort domowników.",
        "Zapowiedź narzędzi: W artykule użyto interaktywnych kalkulatorów i symulatorów termodynamiki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-wstep",
    "name": "Panel Nawigacyjny i Szybka Odpowiedź (AI Overview Hook)",
    "description": "Moduł wprowadzający czytelnika do artykułu, łączący funkcję natychmiastowej odpowiedzi na intencję wyszukiwania z nawigatorem po interaktywnych narzędziach.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="wstep-artykulu">
    
    <div class="rk-intro-hook">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Inżynierskie Kompendium Wiedzy
        </div>
        <h2>Niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki?</h2>
        <p>
            Pompą ciepła steruje bezwzględna fizyka, a nie obietnice z folderów reklamowych. Jeśli posłuchasz wykonawców pracujących &#8222;na oko&#8221; i ustawisz na sterowniku 45°C zamiast 35°C, właśnie skróciłeś życie swojej sprężarki o połowę i podniosłeś roczne rachunki za prąd o ponad 30%. Zobacz, na czym naprawdę polega <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color:#e0f2fe; text-decoration: underline;">zasada działania ogrzewania płaszczyznowego</a>.
        </p>
    </div>

    <div class="rk-intro-nav">
        <button class="rk-intro-tab-btn active" data-intro-target="intro-answer">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Szybka odpowiedź (TL;DR)
        </button>
        <button class="rk-intro-tab-btn" data-intro-target="intro-tools">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
            Co odkryjesz w tym poradniku?
        </button>
    </div>

    <div class="rk-intro-content">
        
        <!-- Panel 1: Szybka Odpowiedź -->
        <div class="rk-intro-panel active" id="intro-answer">
            <div class="rk-intro-answer-box">
                <h3 class="rk-intro-answer-title">
                    W telegraficznym skrócie:
                </h3>
                <p class="rk-intro-answer-text">
                    Zgodnie z wymogami normy budowlanej PN-EN 1264, temperatura zasilania 35°C to absolutny złoty standard w nowoczesnym budownictwie. Gwarantuje ona uzyskanie maksymalnego współczynnika sprawności (COP) pompy ciepła, chroni wylewki przed niszczącymi pęknięciami termicznymi i zapewnia bezwzględnie najwyższy komfort odczuwalny dla człowieka. To klucz do tego, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">aby ogrzewanie było maksymalnie energooszczędne</a>.
                </p>
            </div>
        </div>

        <!-- Panel 2: Narzędzia i Agenda -->
        <div class="rk-intro-panel" id="intro-tools">
            <p style="margin: 0 0 20px 0; font-size: 15px; color: var(--rk-intro-gray);">W tym kompleksowym artykule odrzuciłem &#8222;lanie wody&#8221;. Otrzymujesz ode mnie potężną bazę wiedzy wyposażoną w interaktywne narzędzia, które udowodnią Ci każdą postawioną tezę. Zobaczysz w praktyce:</p>
            
            <div class="rk-intro-tools-grid">
                
                <div class="rk-intro-tool-card">
                    <div class="rk-intro-tool-header">
                        <div class="rk-intro-tool-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <h4 class="rk-intro-tool-title">Kalkulator Kosztów i COP</h4>
                    </div>
                    <p class="rk-intro-tool-desc">Symulator, w którym samodzielnie zmienisz temperaturę zasilania i zobaczysz, jak błyskawicznie rosną opłaty za prąd i spada żywotność sprzętu.</p>
                </div>

                <div class="rk-intro-tool-card">
                    <div class="rk-intro-tool-header">
                        <div class="rk-intro-tool-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
                        </div>
                        <h4 class="rk-intro-tool-title">Symulator Gęstości Rur</h4>
                    </div>
                    <p class="rk-intro-tool-desc">Narzędzie wizualizujące, dlaczego oszczędzanie na długości rur (np. rozstaw co 20 cm) drastycznie niszczy parametry pracy całej kotłowni.</p>
                </div>

                <div class="rk-intro-tool-card">
                    <div class="rk-intro-tool-header">
                        <div class="rk-intro-tool-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
                        </div>
                        <h4 class="rk-intro-tool-title">Wizualizację Naprężeń</h4>
                    </div>
                    <p class="rk-intro-tool-desc">Moduł diagnostyczny pokazujący, kiedy wysoka temperatura doprowadzi do dehydratacji wylewki i zniszczenia paneli podłogowych.</p>
                </div>

                <div class="rk-intro-tool-card">
                    <div class="rk-intro-tool-header">
                        <div class="rk-intro-tool-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                        </div>
                        <h4 class="rk-intro-tool-title">Panel Case Study</h4>
                    </div>
                    <p class="rk-intro-tool-desc">Prawdziwa historia inwestora i twarde zestawienie rozwiązań inżynierskich w opozycji do obietnic lokalnego wykonawcy.</p>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var introBtns = document.querySelectorAll('.rk-intro-tab-btn');
    var introPanels = document.querySelectorAll('.rk-intro-panel');

    introBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-intro-target');

            // Reset wszystkich przycisków i paneli
            introBtns.forEach(function(b) { b.classList.remove('active'); });
            introPanels.forEach(function(p) { p.classList.remove('active'); });

            // Aktywacja wybranego - błyskawiczna (bez animacji) i bezpieczna (bez &&)
            this.classList.add('active');
            var targetPanel = document.getElementById(targetId);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-opt-dark: #0f172a;
    --rk-opt-navy: #1e293b;
    --rk-opt-slate: #334155;
    --rk-opt-blue: #3b82f6;
    --rk-opt-cyan: #06b6d4;
    --rk-opt-green: #10b981;
    --rk-opt-orange: #f97316;
    --rk-opt-red: #ef4444;
    --rk-opt-red-dark: #991b1b;
    --rk-opt-border: #e2e8f0;
    --rk-opt-bg: #ffffff;
}

.rk-opt-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-opt-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-opt-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-opt-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-opt-border);
}

.rk-opt-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-opt-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-opt-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-opt-slate);
    margin: 0;
}

.rk-opt-header a {
    color: var(--rk-opt-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Symulator Termodynamiki */
.rk-opt-simulator {
    background: var(--rk-opt-dark);
    color: #ffffff;
    padding: 40px 45px;
    position: relative;
}

.rk-opt-simulator::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(59, 130, 246, 0.15), transparent 70%);
    pointer-events: none;
}

.rk-opt-sim-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    position: relative;
    z-index: 2;
}

/* Wizualizacja Sprężarki */
.rk-opt-visual-box {
    background: var(--rk-opt-navy);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-opt-compressor {
    width: 120px;
    height: auto;
    margin: 0 auto 20px auto;
    color: var(--rk-opt-cyan);
    transition: color 0.4s, filter 0.4s;
}

.rk-opt-anim-shake {
    animation: none; /* Domyślnie wyłączona */
}

@keyframes compressorShake {
    0% { transform: translate(1px, 1px) rotate(0deg); }
    10% { transform: translate(-1px, -2px) rotate(-1deg); }
    20% { transform: translate(-3px, 0px) rotate(1deg); }
    30% { transform: translate(3px, 2px) rotate(0deg); }
    40% { transform: translate(1px, -1px) rotate(1deg); }
    50% { transform: translate(-1px, 2px) rotate(-1deg); }
    60% { transform: translate(-3px, 1px) rotate(0deg); }
    70% { transform: translate(3px, 1px) rotate(-1deg); }
    80% { transform: translate(-1px, -1px) rotate(1deg); }
    90% { transform: translate(1px, 2px) rotate(0deg); }
    100% { transform: translate(1px, -2px) rotate(-1deg); }
}

.rk-opt-status-badge {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: rgba(16, 185, 129, 0.2);
    color: var(--rk-opt-green);
    border: 1px solid rgba(16, 185, 129, 0.3);
    transition: all 0.3s;
}

/* Panel Sterowania i Wyniki */
.rk-opt-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-opt-slider-wrap {
    background: rgba(255,255,255,0.05);
    padding: 20px;
    border-radius: 16px;
}

.rk-opt-lbl-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-opt-lbl {
    font-size: 14px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
}

.rk-opt-val-huge {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-opt-range {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #334155;
    outline: none;
    -webkit-appearance: none;
}

.rk-opt-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-opt-blue);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.5);
    transition: transform 0.1s;
}
.rk-opt-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Metryki */
.rk-opt-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-opt-metric {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    transition: all 0.3s;
}

.rk-opt-m-lbl {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 700;
    text-transform: uppercase;
}

.rk-opt-m-val {
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.rk-opt-m-unit {
    font-size: 14px;
    color: #cbd5e1;
    font-weight: 600;
}

/* Wzór i Konsekwencje */
.rk-opt-content {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-opt-formula-card {
    background: #ffffff;
    border-left: 4px solid var(--rk-opt-blue);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    margin-bottom: 30px;
}

.rk-opt-math {
    font-family: monospace;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-opt-blue);
    margin-bottom: 10px;
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    letter-spacing: 1px;
}

.rk-opt-formula-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-opt-slate);
    margin: 0;
}

.rk-opt-consequences {
    background: var(--rk-opt-red-dark);
    color: #ffffff;
    padding: 30px;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.rk-opt-consequences::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: var(--rk-opt-red);
}

.rk-opt-consequences h3 {
    font-size: 20px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-opt-consequences p {
    font-size: 15px;
    line-height: 1.7;
    color: #fca5a5;
    margin: 0;
}

.rk-opt-consequences a {
    color: #ffffff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-opt-header, .rk-opt-simulator, .rk-opt-content { padding: 30px 20px; }
    .rk-opt-sim-layout { grid-template-columns: 1fr; gap: 25px; }
    .rk-opt-metrics-grid { grid-template-columns: 1fr; }
    .rk-opt-compressor { width: 90px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-cop",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Dlaczego niska temperatura zasilania pompy ciepła na poziomie 35°C to optymalny wybór?",
    "description": "Zrozum fizykę gazów i termodynamikę pomp ciepła. Zobacz jak ciśnienie skraplania czynnika R32 wpływa na żywotność sprężarki i roczne rachunki za prąd.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-cop",
    "name": "Wydajność COP i Ciśnienie Skraplania R32 (PN-EN 14511)",
    "description": "Zestawienie parametrów termodynamicznych obrazujące liniowy spadek współczynnika wydajności cieplnej przy rosnącym ciśnieniu w układzie chłodniczym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania 35 stopni pompa ciepła",
      "ciśnienie skraplania czynnika r32",
      "żywotność sprężarki pompy ciepła",
      "taktowanie pompy ciepła podłogówka",
      "współczynnik cop a temperatura zasilania"
    ],
    "measurementTechnique": "Algorytm oparty na krzywych charakterystyki sprężarek inwerterowych przy założeniu punktów pracy od A2W35 do A2W50.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Punkt A2W35: Ciśnienie ok. 21 bar, COP 4.6, żywotność optymalna.",
        "Punkt A2W50: Ciśnienie ok. 31 bar, COP spada poniżej 2.5, drastyczne przeciążenie łożysk."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-cop",
    "name": "Symulator Obciążenia Sprężarki i Sprawności COP",
    "description": "Interaktywny panel wizualizujący wpływ temperatury zasilania na fizyczne obciążenie (ciśnienie) sprężarki oraz wynikający z tego spadek wydajności i żywotności pompy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opt-container" id="optymalny-wybor-cop">
    
    <div class="rk-opt-header">
        <h2>Dlaczego niska temperatura zasilania pompy ciepła na poziomie 35°C to optymalny wybór?</h2>
        <p>Bezpośrednia odpowiedź na to pytanie nie leży w marketingu, lecz w twardej fizyce gazów i wytycznych normy PN-EN 14511. Temperatura zasilania 35°C dla <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> gwarantuje uzyskanie najwyższego współczynnika efektywności (COP). Podniesienie tego parametru wymusza na sprężarce drastyczne zwiększenie stopnia sprężania czynnika chłodniczego (np. R32), co natychmiast uderza po kieszeni.</p>
    </div>

    <div class="rk-opt-simulator">
        <div class="rk-opt-sim-layout">
            
            <!-- Wizualizacja Sprężarki - Nowa Ikona Pompy Ciepła -->
            <div class="rk-opt-visual-box">
                <svg class="rk-opt-compressor rk-opt-anim-shake" id="rkOptSvg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                    <!-- Korpus pompy ciepła -->
                    <rect x="3" y="4" width="18" height="16" rx="2" ry="2"></rect>
                    <!-- Nóżki antywibracyjne -->
                    <path d="M6 20v2"></path>
                    <path d="M18 20v2"></path>
                    <!-- Kratka górna osłony -->
                    <path d="M7 8h10"></path>
                    <!-- Zewnętrzny pierścień wentylatora -->
                    <circle cx="12" cy="14" r="4.5"></circle>
                    <!-- Śmigła wentylatora -->
                    <path d="M12 9.5v9"></path>
                    <path d="M7.5 14h9"></path>
                </svg>
                <div class="rk-opt-status-badge" id="rkOptBadge">Stan Optymalny</div>
            </div>

            <!-- Panel Sterowania -->
            <div class="rk-opt-controls">
                <div class="rk-opt-slider-wrap">
                    <div class="rk-opt-lbl-row">
                        <span class="rk-opt-lbl">Temperatura zasilania</span>
                        <span class="rk-opt-val-huge" id="rkOptTempVal">35°C</span>
                    </div>
                    <!-- Zakres: 35C (podłogówka idealna) do 55C (stare grzejniki) -->
                    <input type="range" min="35" max="55" value="35" step="1" class="rk-opt-range" id="rkOptSlider">
                </div>

                <div class="rk-opt-metrics-grid">
                    <div class="rk-opt-metric" id="rkMetricPress">
                        <span class="rk-opt-m-lbl">Ciśnienie skraplania</span>
                        <span class="rk-opt-m-val"><span id="rkValPress">21.5</span> <span class="rk-opt-m-unit">bar</span></span>
                    </div>
                    <div class="rk-opt-metric" id="rkMetricCop">
                        <span class="rk-opt-m-lbl">Wydajność COP</span>
                        <span class="rk-opt-m-val"><span id="rkValCop">4.60</span> <span class="rk-opt-m-unit">x</span></span>
                    </div>
                    <div class="rk-opt-metric" style="grid-column: span 2;" id="rkMetricLife">
                        <span class="rk-opt-m-lbl">Szacowana żywotność sprężarki</span>
                        <span class="rk-opt-m-val"><span id="rkValLife">20</span> <span class="rk-opt-m-unit">lat bezawaryjnej pracy</span></span>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-opt-content">
        
        <div class="rk-opt-formula-card">
            <div class="rk-opt-math">COP = Qh / W</div>
            <p>
                Gdzie <strong>Qh</strong> to użyteczna moc cieplna przekazana do budynku, a <strong>W</strong> to moc elektryczna pobrana przez sprężarkę z sieci. Im mniejsza różnica między temperaturą źródła dolnego (np. powietrze -2°C) a źródła górnego (woda w rurkach posadzki), tym <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">bardziej energooszczędny jest system</a> i tym mniej prądu pobiera zasilanie kompresora.
            </p>
        </div>

        <div class="rk-opt-consequences">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Konsekwencje błędów instalatora
            </h3>
            <p>
                Gdy instalator ułoży rury rzadko i wymusi ustawienie zasilania na 50°C, sprężarka musi wykonać tytaniczną pracę mechaniczną, aby pokonać <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">barierę różnicy temperatur</a> i dobić ciśnienie z 21 do ponad 31 barów. Skutkuje to drastycznym wzrostem rachunków, przegrzewaniem uzwojeń silnika, przyspieszonym zużyciem łożysk wału korbowego oraz &#8222;taktowaniem&#8221; (nieustannym włączaniem i wyłączaniem z braku odpowiedniego zładu wody). Taka praca decyduje o tym, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często musisz serwisować układ</a> i może skrócić żywotność urządzenia o ponad połowę!
            </p>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    var slider = document.getElementById('rkOptSlider');
    var dispTemp = document.getElementById('rkOptTempVal');
    
    var svgIcon = document.getElementById('rkOptSvg');
    var badge = document.getElementById('rkOptBadge');
    
    var valPress = document.getElementById('rkValPress');
    var boxPress = document.getElementById('rkMetricPress');
    
    var valCop = document.getElementById('rkValCop');
    var boxCop = document.getElementById('rkMetricCop');
    
    var valLife = document.getElementById('rkValLife');
    var boxLife = document.getElementById('rkMetricLife');

    function updatePhysics(temp) {
        dispTemp.textContent = temp + '°C';
        
        // Obliczenia liniowe/szacunkowe na potrzeby demonstracji fizyki
        // Im wyższa temp, tym wyższe ciśnienie, niższy COP, krótsza żywotność
        var basePress = 21.5;
        var pressIncr = (temp - 35) * 0.52; // ok 0.5 bara na każdy 1 stopień
        var currentPress = (basePress + pressIncr).toFixed(1);
        
        var baseCop = 4.60;
        var copDecr = (temp - 35) * 0.11; // spadek ok 0.11 COP na każdy stopień
        var currentCop = (baseCop - copDecr).toFixed(2);
        
        var baseLife = 20;
        var lifeDecr = (temp - 35) * 0.65; // strata ok 0.65 roku na każdy stopień w ekstremach
        var currentLife = Math.max(7, Math.round(baseLife - lifeDecr));

        valPress.textContent = currentPress;
        valCop.textContent = currentCop;
        valLife.textContent = currentLife;

        // Reset stylów
        svgIcon.style.animation = 'none';
        
        // Logika warunkowa bezpieczna dla parserów (brak &&)
        
        // Strefa Optymalna (35 - 38)
        if (temp <= 38) {
            svgIcon.style.color = 'var(--rk-opt-cyan)';
            svgIcon.style.filter = 'drop-shadow(0 0 5px rgba(6, 182, 212, 0.4))';
            
            badge.textContent = 'Stan Optymalny';
            badge.style.background = 'rgba(16, 185, 129, 0.2)';
            badge.style.color = 'var(--rk-opt-green)';
            badge.style.borderColor = 'rgba(16, 185, 129, 0.3)';
            
            boxPress.style.borderColor = 'rgba(255,255,255,0.1)';
            boxCop.style.borderColor = 'rgba(255,255,255,0.1)';
            valCop.style.color = '#ffffff';
            valLife.style.color = '#ffffff';
        }

        // Strefa Przeciążenia (39 - 46)
        if (temp > 38) {
            if (temp <= 46) {
                svgIcon.style.color = 'var(--rk-opt-orange)';
                svgIcon.style.filter = 'drop-shadow(0 0 10px rgba(249, 115, 22, 0.6))';
                svgIcon.style.animation = 'compressorShake 0.8s infinite';
                
                badge.textContent = 'Rosnące obciążenie';
                badge.style.background = 'rgba(249, 115, 22, 0.2)';
                badge.style.color = 'var(--rk-opt-orange)';
                badge.style.borderColor = 'rgba(249, 115, 22, 0.3)';
                
                boxPress.style.borderColor = 'rgba(249, 115, 22, 0.4)';
                valCop.style.color = 'var(--rk-opt-orange)';
                valLife.style.color = '#cbd5e1';
            }
        }

        // Strefa Destrukcji (47 - 55)
        if (temp > 46) {
            svgIcon.style.color = 'var(--rk-opt-red)';
            svgIcon.style.filter = 'drop-shadow(0 0 15px rgba(239, 68, 68, 0.8))';
            svgIcon.style.animation = 'compressorShake 0.3s infinite';
            
            badge.textContent = 'Zagrożenie (Taktowanie)';
            badge.style.background = 'rgba(239, 68, 68, 0.2)';
            badge.style.color = 'var(--rk-opt-red)';
            badge.style.borderColor = 'rgba(239, 68, 68, 0.4)';
            
            boxPress.style.borderColor = 'rgba(239, 68, 68, 0.6)';
            valCop.style.color = 'var(--rk-opt-red)';
            valLife.style.color = 'var(--rk-opt-red)';
        }
    }

    slider.addEventListener('input', function() {
        updatePhysics(parseInt(this.value, 10));
    });

    // Inicjalizacja domyślna
    updatePhysics(35);
});
</script>



<p class="wp-block-paragraph"></p>



<style>
:root {
    --rk-space-dark: #0f172a;
    --rk-space-navy: #1e293b;
    --rk-space-blue: #2563eb;
    --rk-space-sky: #38bdf8;
    --rk-space-green: #10b981;
    --rk-space-red: #ef4444;
    --rk-space-red-light: #fef2f2;
    --rk-space-gray: #64748b;
    --rk-space-border: #e2e8f0;
    --rk-space-bg: #ffffff;
}

.rk-space-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-space-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
    border: 1px solid var(--rk-space-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-space-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-bottom: 1px solid var(--rk-space-border);
}

.rk-space-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-space-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-space-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-space-gray);
    margin: 0;
}

.rk-space-header a {
    color: var(--rk-space-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny Symulator Rozstawu */
.rk-space-simulator {
    padding: 40px 45px;
    background: var(--rk-space-dark);
    color: #ffffff;
    position: relative;
}

.rk-space-control-panel {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 30px;
}

.rk-space-lbl-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-space-lbl {
    font-size: 16px;
    font-weight: 800;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-space-val-badge {
    background: var(--rk-space-blue);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 12px;
    font-size: 24px;
    font-weight: 900;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4);
}

.rk-space-range {
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: #334155;
    outline: none;
    -webkit-appearance: none;
}

.rk-space-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 5px solid var(--rk-space-sky);
    box-shadow: 0 0 15px rgba(56, 189, 248, 0.6);
    transition: transform 0.1s;
}

.rk-space-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Wizualizacja rur (SVG) */
.rk-space-visual {
    height: 100px;
    background: rgba(0,0,0,0.2);
    border-radius: 12px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.05);
}

.rk-pipe-line {
    height: 16px;
    background: linear-gradient(90deg, #ef4444 0%, #38bdf8 100%);
    width: 100%;
    border-radius: 8px;
    position: absolute;
    transition: all 0.4s ease;
    box-shadow: 0 2px 10px rgba(239, 68, 68, 0.3);
}

/* Wyniki (Grid) */
.rk-space-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-space-metric-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    color: var(--rk-space-dark);
    transition: all 0.3s;
}

.rk-space-metric-lbl {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-space-gray);
    margin-bottom: 8px;
}

.rk-space-metric-val {
    font-size: 26px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.rk-space-metric-unit {
    font-size: 14px;
    font-weight: 700;
}

/* Stany kart */
.rk-space-metric-card.alert {
    background: var(--rk-space-red);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.4);
}
.rk-space-metric-card.alert .rk-space-metric-lbl { color: #fecaca; }

.rk-space-metric-card.safe {
    background: var(--rk-space-green);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
}
.rk-space-metric-card.safe .rk-space-metric-lbl { color: #a7f3d0; }

/* Zawartość merytoryczna */
.rk-space-content {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-space-content h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-space-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-space-formula-box {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-left: 4px solid var(--rk-space-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 25px;
}

.rk-space-formula-text {
    font-family: monospace;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-space-blue);
    margin-bottom: 10px;
    background: #f1f5f9;
    padding: 10px;
    border-radius: 8px;
    text-align: center;
}

.rk-space-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-space-gray);
    margin: 0;
}

.rk-space-desc a {
    color: var(--rk-space-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-space-grid-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-space-info-card {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    padding: 20px;
    border-radius: 16px;
}

.rk-space-info-card h4 {
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-space-info-card.trap h4 { color: var(--rk-space-red); }
.rk-space-info-card.pro h4 { color: var(--rk-space-green); }

.rk-space-info-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-space-gray);
    margin: 0;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-space-header, .rk-space-simulator, .rk-space-content { padding: 30px 20px; }
    .rk-space-metrics { grid-template-columns: 1fr; gap: 15px; } /* Układ pionowy wyników */
    .rk-space-grid-info { grid-template-columns: 1fr; gap: 15px; } /* Układ pionowy paneli info */
    .rk-space-lbl-row { flex-direction: column; gap: 15px; align-items: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-rozstaw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Jaki rozstaw rur ogrzewania podłogowego przy pompie ciepła zapewnia parametr 35°C?",
    "description": "Zrozum wpływ rozstawu pętli na gęstość strumienia cieplnego. Zobacz, jak oszczędność na rurach drastycznie obniża COP i zmniejsza zład wody systemu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-rozstaw",
    "name": "Wskaźniki Wydajności Cieplnej dla Różnych Rozstawów Rur 2026",
    "description": "Zbiór danych określających korelację między gęstością ułożenia rur (wartość a) a wymaganą temperaturą zasilania według normy PN-EN 1264-2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "ile rury na m2 ogrzewania podłogowego",
      "większy czy mniejszy zład wody w ogrzewaniu podłogowym",
      "brak bufora a pojemność instalacji",
      "spadek cop przy rzadkim rozstawie rur"
    ],
    "measurementTechnique": "Obliczanie gęstości strumienia cieplnego q ze wzoru normatywnego przy zachowaniu stałej mocy pokrywającej straty rzędu 40-50 W/m².",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10 cm: Zapewnia 50 W/m² przy 35°C zasilania, gwarantując duży zład wody.",
        "Rozstaw 20 cm: Zapewnia tylko 32 W/m² przy 35°C, wymuszając podniesienie krzywej do 44°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-rozstaw",
    "name": "Symulator Rozstawu Rur i Zładu Wody PN-EN 1264-2",
    "description": "Wizualne narzędzie pozwalające użytkownikowi na zmianę rozstawu pętli i natychmiastową obserwację destrukcyjnych skutków dla temperatury, COP oraz pojemności wodnej układu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-space-container" id="rozstaw-rur">
    
    <div class="rk-space-header">
        <h2>Jaki rozstaw rur ogrzewania podłogowego przy pompie ciepła zapewnia parametr 35°C?</h2>
        <p>Zgodnie z rygorystycznymi obliczeniami opartymi na normie <strong>PN-EN 1264-2</strong>, aby utrzymać zasilanie 35°C i pokryć straty ciepła nowoczesnego budynku (WT 2021) rzędu 40–50 W/m², fizyka pozostawia nam tylko jedną drogę: bardzo gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a>. Zwiększanie odstępów drastycznie obniża moc posadzki, zmuszając sprężarkę do morderczej pracy na podwyższonych parametrach.</p>
    </div>

    <div class="rk-space-simulator">
        <div class="rk-space-control-panel">
            <div class="rk-space-lbl-row">
                <span class="rk-space-lbl">Wybierz rozstaw instalacyjny</span>
                <span class="rk-space-val-badge" id="rkSpaceValDisp">Co 10 cm</span>
            </div>
            <!-- Suwak: 1=10cm, 2=15cm, 3=20cm -->
            <input type="range" min="1" max="3" value="1" step="1" class="rk-space-range" id="rkSpaceSlider">
        </div>

        <div class="rk-space-visual" id="rkSpaceVisualBox">
            <!-- Rury generowane przez JS -->
        </div>

        <div class="rk-space-metrics">
            <div class="rk-space-metric-card" id="rkCardTemp">
                <div class="rk-space-metric-lbl">Wymagane Zasilanie</div>
                <div class="rk-space-metric-val" id="rkValTemp">35<span class="rk-space-metric-unit">°C</span></div>
            </div>
            <div class="rk-space-metric-card" id="rkCardCop">
                <div class="rk-space-metric-lbl">Wpływ na COP Pompy</div>
                <div class="rk-space-metric-val" id="rkValCop" style="font-size: 22px;">Maksymalny</div>
            </div>
            <div class="rk-space-metric-card" id="rkCardVol">
                <div class="rk-space-metric-lbl">Zład Wody w Układzie</div>
                <div class="rk-space-metric-val" id="rkValVol">Wysoki</div>
            </div>
        </div>
    </div>

    <div class="rk-space-content">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color:var(--rk-space-blue);"><path d="M2 12h4l3-9 5 18 3-9h5"></path></svg>
            Fizyka gęstości strumienia cieplnego
        </h3>
        
        <div class="rk-space-formula-box">
            <div class="rk-space-formula-text">q = B * a * Delta T_m</div>
            <p class="rk-space-desc">
                Gdzie <strong>B</strong> to współczynnik dla rury, <strong>a</strong> to współczynnik rozstawu, a <strong>Delta T_m</strong> to średnia różnica temperatur. Dla rozstawu 10 cm, współczynnik <em>a</em> pozwala wygenerować bezpieczne 50 W/m² przy zasilaniu 35°C. Przy rozstawie 20 cm, powierzchnia odda zaledwie 32 W/m² – aby wycisnąć z niej wymaganą moc, musisz wpuścić w rury destrukcyjne 44°C.
            </p>
        </div>

        <div class="rk-space-grid-info">
            <div class="rk-space-info-card trap">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    Błąd ułożenia co 20 cm
                </h4>
                <p>
                    Koszt inwestycyjny w <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">ilość rury na m²</a> jest mniejszy o ok. 12 zł, ale to finansowa pułapka. Stała strata na sprawności COP wynosi -25% przez cały okres użytkowania, a mała pojemność wodna rur powoduje tzw. taktowanie sprężarki.
                </p>
            </div>
            <div class="rk-space-info-card pro">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Standard Inżynierski 10 cm
                </h4>
                <p>
                    Gęste ułożenie rozwiązuje kluczowy dylemat: <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">większy czy mniejszy zład wody</a>. Gigantyczna pojemność wodna eliminuje potrzebę montażu bufora sprzęgającego i pozwala inwerterowi na płynną, ciągłą modulację mocy.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    var slider = document.getElementById('rkSpaceSlider');
    var dispVal = document.getElementById('rkSpaceValDisp');
    
    var cardTemp = document.getElementById('rkCardTemp');
    var valTemp = document.getElementById('rkValTemp');
    
    var cardCop = document.getElementById('rkCardCop');
    var valCop = document.getElementById('rkValCop');
    
    var cardVol = document.getElementById('rkCardVol');
    var valVol = document.getElementById('rkValVol');
    
    var visualBox = document.getElementById('rkSpaceVisualBox');

    function drawPipes(count) {
        visualBox.innerHTML = '';
        var spacing = 100 / (count + 1);
        
        for (var i = 1; i <= count; i++) {
            var pipe = document.createElement('div');
            pipe.className = 'rk-pipe-line';
            pipe.style.top = (spacing * i) + '%';
            pipe.style.transform = 'translateY(-50%)';
            visualBox.appendChild(pipe);
        }
    }

    function updateSimulation(val) {
        // Reset klas
        cardTemp.className = 'rk-space-metric-card';
        cardCop.className = 'rk-space-metric-card';
        cardVol.className = 'rk-space-metric-card';

        // Logika bez &#038;&#038;
        if (val === '1') {
            dispVal.textContent = 'Co 10 cm';
            drawPipes(5); // Gęsto
            
            cardTemp.classList.add('safe');
            valTemp.innerHTML = '35<span class="rk-space-metric-unit">°C</span>';
            
            cardCop.classList.add('safe');
            valCop.textContent = 'Maksymalny';
            
            cardVol.classList.add('safe');
            valVol.textContent = 'Wysoki (Bez Bufora)';
        }
        
        if (val === '2') {
            dispVal.textContent = 'Co 15 cm';
            drawPipes(3); // Średnio
            
            valTemp.innerHTML = '39<span class="rk-space-metric-unit">°C</span>';
            valCop.textContent = '- 12% (Spadek)';
            valVol.textContent = 'Średni';
        }
        
        if (val === '3') {
            dispVal.textContent = 'Co 20 cm';
            drawPipes(2); // Rzadko
            
            cardTemp.classList.add('alert');
            valTemp.innerHTML = '44<span class="rk-space-metric-unit">°C</span>';
            
            cardCop.classList.add('alert');
            valCop.textContent = '- 25% (Strata)';
            
            cardVol.classList.add('alert');
            valVol.textContent = 'Krytycznie Niski';
        }
    }

    slider.addEventListener('input', function() {
        updateSimulation(this.value);
    });

    // Inicjalizacja
    updateSimulation('1');
});
</script>



<style>
:root {
    --rk-rad-dark: #0f172a;
    --rk-rad-slate: #334155;
    --rk-rad-blue: #0284c7;
    --rk-rad-sky: #38bdf8;
    --rk-rad-indigo: #4f46e5;
    --rk-rad-green: #10b981;
    --rk-rad-red: #ef4444;
    --rk-rad-orange: #f97316;
    --rk-rad-border: #e2e8f0;
    --rk-rad-bg: #ffffff;
}

.rk-rad-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-rad-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-rad-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-rad-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
    border-bottom: 1px solid var(--rk-rad-border);
}

.rk-rad-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-rad-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-rad-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-rad-slate);
    margin: 0;
}

.rk-rad-header a {
    color: var(--rk-rad-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Symulator Aranzacji */
.rk-rad-simulator {
    padding: 40px 45px;
    background: var(--rk-rad-dark);
    color: #ffffff;
    position: relative;
}

.rk-rad-simulator::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at bottom right, rgba(79, 70, 229, 0.2), transparent 60%);
    pointer-events: none;
}

.rk-rad-sim-title {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

/* Panele sterowania */
.rk-rad-controls {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 25px;
    margin-bottom: 35px;
    position: relative;
    z-index: 2;
}

.rk-rad-toggle-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-rad-control-lbl {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: #94a3b8;
}

.rk-rad-switch-group {
    display: flex;
    gap: 10px;
}

.rk-rad-btn {
    flex: 1;
    padding: 12px;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.1);
    color: #cbd5e1;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-rad-btn.active {
    background: var(--rk-rad-blue);
    color: #ffffff;
    border-color: var(--rk-rad-sky);
    box-shadow: 0 4px 15px rgba(2, 132, 199, 0.4);
}

.rk-rad-slider-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-rad-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-rad-slider-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-rad-sky);
}

.rk-rad-range {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: rgba(255,255,255,0.1);
    outline: none;
    -webkit-appearance: none;
}

.rk-rad-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-rad-blue);
    box-shadow: 0 0 10px rgba(56, 189, 248, 0.5);
    transition: transform 0.1s;
}
.rk-rad-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Tablica Wyników */
.rk-rad-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-rad-metric {
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    color: var(--rk-rad-dark);
}

.rk-rad-metric-lbl {
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-rad-metric-val {
    font-size: 28px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.rk-rad-metric-unit {
    font-size: 15px;
    color: var(--rk-rad-slate);
    font-weight: 700;
}

.rk-rad-metric.highlight {
    background: var(--rk-rad-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}
.rk-rad-metric.highlight .rk-rad-metric-lbl { color: #e0f2fe; }
.rk-rad-metric.highlight .rk-rad-metric-unit { color: #bae6fd; }

.rk-rad-metric.warning {
    background: var(--rk-rad-red);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.4);
}
.rk-rad-metric.warning .rk-rad-metric-lbl { color: #fee2e2; }
.rk-rad-metric.warning .rk-rad-metric-unit { color: #fecaca; }

/* Tekst i Wyjaśnienie */
.rk-rad-content {
    padding: 35px 45px;
    background: #f8fafc;
}

.rk-rad-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-rad-dark);
    margin: 0 0 15px 0;
}

.rk-rad-text-block {
    background: #ffffff;
    border-left: 4px solid var(--rk-rad-indigo);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    margin-bottom: 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-rad-slate);
}

.rk-rad-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 25px;
    border-radius: 16px;
    display: flex;
    gap: 20px;
}

.rk-rad-alert-icon {
    color: var(--rk-rad-red);
    flex-shrink: 0;
}

.rk-rad-alert-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-rad-red);
    margin: 0 0 8px 0;
}

.rk-rad-alert-text {
    font-size: 15px;
    line-height: 1.6;
    color: #7f1d1d;
    margin: 0;
}

.rk-rad-alert-text a {
    color: var(--rk-rad-red);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-rad-header, .rk-rad-simulator, .rk-rad-content { padding: 30px 20px; }
    .rk-rad-controls { grid-template-columns: 1fr; gap: 15px; }
    .rk-rad-dashboard { grid-template-columns: 1fr; gap: 15px; } /* Układ pionowy */
    .rk-rad-alert { flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-promieniowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Ile watów z metra kwadratowego oddaje podłogówka przy zasilaniu 35 stopni?",
    "description": "Zrozum zjawisko wymiany ciepła. Odkryj, jak stała zabudowa meblowa i dobór okładziny determinują całkowitą moc grzewczą podłogi i wymuszają zmianę temperatury zasilania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-promieniowanie",
    "name": "Bilans Mocy i Gęstość Strumienia Cieplnego Posadzki 2026",
    "description": "Baza danych inżynierskich obrazująca wpływ oporu cieplnego materiałów wykończeniowych oraz stopnia zasłonięcia powierzchni na wydajność emiterów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile watów z podłogówki na m2",
      "jak działa ogrzewanie podłogowe",
      "wodne ogrzewanie podłogowe a meble jak połączyć komfort i aranżacje",
      "jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego",
      "promieniowanie czy konwekcja w ogrzewaniu"
    ],
    "measurementTechnique": "Szacowanie czynnej powierzchni oddawania ciepła A oraz mocy jednostkowej q w zależności od współczynnika oporu cieplnego okładziny R.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne przy zasilaniu 35°C oddają ok. 50 W z każdego odsłoniętego metra kwadratowego.",
        "Panele laminowane ze względu na wyższy opór cieplny redukują strumień do ok. 35 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-promieniowanie",
    "name": "Kalkulator Bilansu Mocy i Aktywnej Powierzchni Grzewczej",
    "description": "Symulator edukacyjny pozwalający na bieżąco obserwować, jak wybór paneli podłogowych i wstawienie grubych mebli niszczy bilans mocy salonu i podnosi temperaturę zasilania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-rad-container" id="bilans-mocy">
    
    <div class="rk-rad-header">
        <h2>Ile watów z metra kwadratowego oddaje podłogówka przy zasilaniu 35 stopni?</h2>
        <p>Wodne ogrzewanie podłogowe zasilane parametrem 35°C (przy projektowym spadku temperatury Delta T = 5K, czyli powrocie 30°C) oddaje do pomieszczenia o temperaturze normowej 20°C strumień cieplny rzędu <strong>45 do 55 W/m²</strong> dla płytek ceramicznych oraz <strong>30 do 38 W/m²</strong> dla paneli. Wartości te są ściśle pilnowane przez normę PN-EN 1264, która chroni Twoje zdrowie, blokując temperaturę powierzchni posadzki na maksymalnie 29°C.</p>
    </div>

    <div class="rk-rad-simulator">
        <div class="rk-rad-sim-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
            Symulacja Salonu (Metraż całkowity: 28 m²)
        </div>

        <div class="rk-rad-controls">
            <div class="rk-rad-toggle-box">
                <div class="rk-rad-control-lbl">Wybierz okładzinę podłogi</div>
                <div class="rk-rad-switch-group">
                    <button class="rk-rad-btn active" data-mat="plytki">Płytki (50 W/m²)</button>
                    <button class="rk-rad-btn" data-mat="panele">Panele (35 W/m²)</button>
                </div>
            </div>

            <div class="rk-rad-slider-box">
                <div class="rk-rad-slider-header">
                    <div class="rk-rad-control-lbl">Stała zabudowa meblowa (szafy, kanapa)</div>
                    <div class="rk-rad-slider-val" id="rkRadFurnVal">6 m²</div>
                </div>
                <input type="range" min="0" max="14" value="6" step="1" class="rk-rad-range" id="rkRadFurnSlider">
            </div>
        </div>

        <div class="rk-rad-dashboard">
            <div class="rk-rad-metric">
                <div class="rk-rad-metric-lbl">Czynna Powierzchnia (A)</div>
                <div class="rk-rad-metric-val" id="rkValArea">22<span class="rk-rad-metric-unit">m²</span></div>
            </div>
            <div class="rk-rad-metric highlight" id="rkCardPower">
                <div class="rk-rad-metric-lbl">Całkowita Moc Salonu (Q)</div>
                <div class="rk-rad-metric-val" id="rkValPower">1100<span class="rk-rad-metric-unit">W</span></div>
            </div>
            <div class="rk-rad-metric" id="rkCardTemp">
                <div class="rk-rad-metric-lbl">Wymagane Zasilanie</div>
                <div class="rk-rad-metric-val" id="rkValTemp">35<span class="rk-rad-metric-unit">°C</span></div>
            </div>
        </div>
    </div>

    <div class="rk-rad-content">
        <h3>Anatomia wymiany ciepła przez promieniowanie</h3>
        
        <div class="rk-rad-text-block">
            Wielkopowierzchniowy emiter, jakim jest prawidłowo wykonana instalacja płaszczyznowa, uwalnia energię w zupełnie inny sposób niż punktowe kaloryfery. Podłoga oddaje ponad <strong>70% energii przez promieniowanie</strong>, a tylko 30% przez konwekcję. Aby dowiedzieć się <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak dokładnie działa ogrzewanie podłogowe</a>, musisz pojąć prosty bilans: <strong>Q = A × q</strong>. Zobacz w symulatorze powyżej, jak drastycznie tradycyjny grzejnik o powierzchni zaledwie 1,5 m² musi zostać rozgrzany (często powyżej 60°C), aby oddać równe 1100 W mocy do pomieszczenia.
        </div>

        <div class="rk-rad-alert">
            <svg class="rk-rad-alert-icon" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            <div>
                <h4 class="rk-rad-alert-title">Konsekwencje błędów aranżacyjnych</h4>
                <p class="rk-rad-alert-text">
                    Projektowanie instalacji &#8222;na oko&#8221; i późniejsze wstawienie wielkiej wyspy kuchennej czy masywnego narożnika bez nóżek blokuje emisję. Sprawdza się tu zasada, że <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">meble i wodne ogrzewanie podłogowe</a> muszą współgrać. Jeśli zastawisz zbyt dużo podłogi wybierając jednocześnie panele (zobacz jak <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">rodzaj okładziny wpływa na wydajność</a>), czynna powierzchnia skurczy się tak bardzo, że sterownik chcąc dogrzać salon sztucznie podniesie temperaturę na pompie ciepła do 45°C. Zniszczy to sprawność sezonową (SCOP) całego układu.
                </p>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    var baseArea = 28; // Stała powierzchnia pokoju
    var currentMatPower = 50; // Domyślnie płytki
    var requiredRoomPower = 1100; // Moc minimalna do ogrzania tego salonu
    
    // Elementy UI
    var btns = document.querySelectorAll('.rk-rad-btn');
    var furnSlider = document.getElementById('rkRadFurnSlider');
    var furnValDisp = document.getElementById('rkRadFurnVal');
    
    var dispArea = document.getElementById('rkValArea');
    var dispPower = document.getElementById('rkValPower');
    var dispTemp = document.getElementById('rkValTemp');
    
    var cardPower = document.getElementById('rkCardPower');
    var cardTemp = document.getElementById('rkCardTemp');

    function updateSimulation() {
        var furnArea = parseInt(furnSlider.value, 10);
        furnValDisp.textContent = furnArea + ' m²';
        
        // Krok 1: Oblicz czynną powierzchnię A
        var activeArea = baseArea - furnArea;
        dispArea.textContent = activeArea;
        
        // Krok 2: Oblicz całkowitą wyprodukowaną moc Q
        var totalPower = activeArea * currentMatPower;
        dispPower.textContent = totalPower;
        
        // Logika statusu (Bez znaków &&)
        
        // Jeśli moc jest wystarczająca lub większa (Ideały)
        if (totalPower >= requiredRoomPower) {
            cardPower.className = 'rk-rad-metric highlight';
            cardTemp.className = 'rk-rad-metric highlight';
            dispTemp.textContent = '35';
        }
        
        // Jeśli moc zaczyna spadać poniżej zapotrzebowania (Kryzys)
        if (totalPower < requiredRoomPower) {
            cardPower.className = 'rk-rad-metric warning';
            cardTemp.className = 'rk-rad-metric warning';
            
            // Prosta, poglądowa estymacja wzrostu temperatury (co 30W braku = +1 st C na zasilaniu)
            var deficit = requiredRoomPower - totalPower;
            var tempIncrease = Math.ceil(deficit / 30);
            var newTemp = 35 + tempIncrease;
            
            // Limitujemy ostrzeżenie w UI do 55C
            if (newTemp > 55) {
                newTemp = 55;
            }
            
            dispTemp.textContent = newTemp;
        }
    }

    // Obsługa przełącznika Płytki / Panele
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var matType = this.getAttribute('data-mat');
            
            if (matType === 'plytki') {
                currentMatPower = 50;
            }
            if (matType === 'panele') {
                currentMatPower = 35;
            }
            
            updateSimulation();
        });
    });

    // Obsługa suwaka mebli
    furnSlider.addEventListener('input', updateSimulation);

    // Initial run
    updateSimulation();
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-slate: #334155;
    --rk-mat-blue: #0284c7;
    --rk-mat-sky: #e0f2fe;
    --rk-mat-green: #10b981;
    --rk-mat-green-light: #dcfce7;
    --rk-mat-orange: #f97316;
    --rk-mat-orange-light: #ffedd5;
    --rk-mat-red: #ef4444;
    --rk-mat-red-light: #fef2f2;
    --rk-mat-border: #e2e8f0;
    --rk-mat-bg: #ffffff;
}

.rk-mat-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-mat-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-mat-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-mat-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-mat-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-mat-slate);
    margin: 0;
}

.rk-mat-header a {
    color: var(--rk-mat-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Panel Symulatora */
.rk-mat-simulator {
    padding: 35px 45px;
    background: #ffffff;
}

.rk-mat-control-box {
    background: var(--rk-mat-dark);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 30px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-mat-control-box::after {
    content: '';
    position: absolute;
    top: -50%; right: -10%; width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
    pointer-events: none;
}

.rk-mat-control-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-mat-control-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: #cbd5e1;
}

.rk-mat-control-value {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-mat-range {
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: #334155;
    outline: none;
    -webkit-appearance: none;
    position: relative;
    z-index: 2;
}

.rk-mat-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-mat-blue);
    box-shadow: 0 0 15px rgba(0,0,0,0.5);
    transition: transform 0.1s;
}

.rk-mat-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Bloki Materiałowe */
.rk-mat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-mat-card {
    border: 2px solid var(--rk-mat-border);
    border-radius: 20px;
    padding: 25px;
    transition: all 0.3s;
    background: #f8fafc;
}

.rk-mat-card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-mat-slate);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-mat-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin: 0;
}

.rk-mat-status {
    padding: 15px;
    border-radius: 12px;
    background: #ffffff;
    margin-bottom: 15px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    transition: all 0.3s;
}

.rk-mat-status-lbl {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
}

.rk-mat-status-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-mat-dark);
}

.rk-mat-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-mat-slate);
}

.rk-mat-desc a {
    color: var(--rk-mat-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Stany Wizualne - Dynamiczne klasy JS */
.rk-state-safe { border-color: var(--rk-mat-green); background: var(--rk-mat-green-light); }
.rk-state-safe .rk-mat-status-val { color: var(--rk-mat-green); }

.rk-state-warn { border-color: var(--rk-mat-orange); background: var(--rk-mat-orange-light); }
.rk-state-warn .rk-mat-status-val { color: var(--rk-mat-orange); }

.rk-state-danger { border-color: var(--rk-mat-red); background: var(--rk-mat-red-light); }
.rk-state-danger .rk-mat-status-val { color: var(--rk-mat-red); }

@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-simulator { padding: 25px 20px; }
    .rk-mat-header h2 { font-size: 24px; }
    .rk-mat-control-box { padding: 25px 20px; }
    .rk-mat-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Jak temperatura zasilania 35°C wpływa na wylewki i okładziny podłogowe?",
    "description": "Zrozum fizykę naprężeń materiałowych. Sprawdź, dlaczego przekroczenie 45°C niszczy wylewkę anhydrytową i powoduje łódeczkowanie paneli i drewna dębowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-materialy",
    "name": "Tolerancja Termiczna i Dehydratacja Materiałów Posadzkowych",
    "description": "Baza parametrów fizykochemicznych jastrychów oraz drewna, określająca punkt krytyczny naprężeń (powyżej 45°C zasilania) względem bezpiecznego standardu 35°C.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe",
      "podłogi drewniane vs panele laminowane co wybrać przy ogrzewaniu podłogowym",
      "maksymalna temperatura zasilania podłogówki",
      "dehydratacja anhydrytu od pompy ciepła",
      "łódeczkowanie deski na podłogówce"
    ],
    "measurementTechnique": "Określanie progów wilgotności równowagowej drewna oraz utraty wiązań chemicznych w siarczanie wapnia (anhydryt) w funkcji stałej temperatury czynnika grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezpieczny punkt pracy 35°C zachowuje wilgotność drewna 8-10% i zapobiega mikropęknięciom jastrychu.",
        "Przekroczenie bariery 45°C drastycznie obniża wilgotność paneli (<5%) i wywołuje utratę spójności wylewki klasy F4/F5."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-materialy",
    "name": "Symulator Naprężeń Materiałowych Posadzki",
    "description": "Narzędzie wizualizujące destrukcyjny wpływ wysokich temperatur zasilania instalacji podłogowej na struktury jastrychów i włókna okładzin drewnianych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="wplyw-na-wylewki">
    
    <div class="rk-mat-header">
        <h2>Jak temperatura zasilania 35°C wpływa na wylewki i okładziny podłogowe?</h2>
        <p>Bezpośrednia odpowiedź inżynierska poparta kartami technicznymi czołowych producentów chemii budowlanej: utrzymanie temperatury zasilania na poziomie 35°C to bezpieczna granica strukturalna. Gwarantuje ona, że temperatura powierzchni posadzki nigdy nie przekroczy komfortowych 27–28°C. Pamiętaj, <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a> to nie kwestia umowna – to granica, za którą zaczyna się nieodwracalna destrukcja drogich materiałów wykończeniowych.</p>
    </div>

    <div class="rk-mat-simulator">
        
        <div class="rk-mat-control-box">
            <div class="rk-mat-control-header">
                <span class="rk-mat-control-title">Temperatura Zasilania Układu</span>
                <span class="rk-mat-control-value" id="rkMatTempDisplay">35°C</span>
            </div>
            <input type="range" min="30" max="50" value="35" step="1" class="rk-mat-range" id="rkMatTempSlider">
        </div>

        <div class="rk-mat-grid">
            
            <!-- Panel Wylewki -->
            <div class="rk-mat-card" id="rkCardWylewka">
                <div class="rk-mat-card-header">
                    <div class="rk-mat-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    </div>
                    <h3 class="rk-mat-title">Wylewka Anhydrytowa</h3>
                </div>
                <div class="rk-mat-status" id="rkStatusWylewka">
                    <span class="rk-mat-status-lbl">Stan Fizyczny Spoiwa</span>
                    <span class="rk-mat-status-val" id="rkValWylewka">W pełni stabilna</span>
                </div>
                <div class="rk-mat-desc" id="rkDescWylewka">
                    Anhydryt idealnie oddaje ciepło (lambda ok. 1,6–1,8 W/mK). Przy 35°C naprężenia termiczne między rurką a powierzchnią jastrychu są minimalne, co chroni <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a> przed mikropęknięciami.
                </div>
            </div>

            <!-- Panel Okładziny -->
            <div class="rk-mat-card" id="rkCardDrewno">
                <div class="rk-mat-card-header">
                    <div class="rk-mat-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line><line x1="9" y1="3" x2="9" y2="21"></line><line x1="15" y1="3" x2="15" y2="21"></line></svg>
                    </div>
                    <h3 class="rk-mat-title">Drewno / Panele</h3>
                </div>
                <div class="rk-mat-status" id="rkStatusDrewno">
                    <span class="rk-mat-status-lbl">Wilgotność i Powierzchnia</span>
                    <span class="rk-mat-status-val" id="rkValDrewno">Norma 8-10%</span>
                </div>
                <div class="rk-mat-desc" id="rkDescDrewno">
                    Okładziny posiadają opór cieplny R rzędu 0,05–0,12 m²K/W. Utrzymanie zasilania na 35°C gwarantuje wilgotność drewna dębowego na poziomie normatywnym, niezależnie od tego, co wybierzesz: <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane</a>.
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkMatTempSlider');
    var displayTemp = document.getElementById('rkMatTempDisplay');
    
    // Karty i pola do aktualizacji
    var cardWylewka = document.getElementById('rkStatusWylewka');
    var valWylewka = document.getElementById('rkValWylewka');
    var descWylewka = document.getElementById('rkDescWylewka');
    
    var cardDrewno = document.getElementById('rkStatusDrewno');
    var valDrewno = document.getElementById('rkValDrewno');
    var descDrewno = document.getElementById('rkDescDrewno');

    function updateMaterialState(temp) {
        displayTemp.textContent = temp + '°C';
        
        // Resetowanie klas
        cardWylewka.className = 'rk-mat-status';
        cardDrewno.className = 'rk-mat-status';

        // Strefa Bezpieczna (30 - 35°C)
        if (temp <= 35) {
            slider.style.background = '#334155';
            
            cardWylewka.classList.add('rk-state-safe');
            valWylewka.textContent = 'W pełni stabilna';
            descWylewka.innerHTML = 'Anhydryt idealnie oddaje ciepło (lambda ok. 1,6–1,8 W/mK). Przy 35°C naprężenia termiczne między rurką a powierzchnią jastrychu są minimalne, co chroni <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a> przed mikropęknięciami.';
            
            cardDrewno.classList.add('rk-state-safe');
            valDrewno.textContent = 'Norma: Wilgotność 8-10%';
            descDrewno.innerHTML = 'Okładziny posiadają opór cieplny R rzędu 0,05–0,12 m²K/W. Utrzymanie zasilania na 35°C gwarantuje wilgotność drewna dębowego na poziomie normatywnym, niezależnie od tego, co wybierzesz: <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane</a>.';
        }

        // Strefa Ostrzegawcza (36 - 44°C)
        if (temp > 35) {
            if (temp < 45) {
                slider.style.background = 'var(--rk-mat-orange)';
                
                cardWylewka.classList.add('rk-state-warn');
                valWylewka.textContent = 'Rosnące naprężenia';
                descWylewka.innerHTML = 'Częste skoki temperatury wywołują pracę płyty betonowej. Zwiększa się ryzyko pęknięć w newralgicznych strefach brzegowych i wzdłuż dylatacji drzwiowych.';
                
                cardDrewno.classList.add('rk-state-warn');
                valDrewno.textContent = 'Spadek wilgotności: 6-7%';
                descDrewno.innerHTML = 'Temperatura okładziny wzrasta, co prowadzi do wysuszania materiału. Pomiędzy panelami mogą zacząć pojawiać się widoczne, nieestetyczne szczeliny dylatacyjne rzędu 1-2 mm.';
            }
        }

        // Strefa Destrukcji (45°C i więcej)
        if (temp >= 45) {
            slider.style.background = 'var(--rk-mat-red)';
            
            cardWylewka.classList.add('rk-state-danger');
            valWylewka.textContent = 'Dehydratacja jastrychu!';
            descWylewka.innerHTML = 'Krytyczne zagrożenie: spoiwo anhydrytowe (siarczan wapnia) ulega dehydratacji, tracąc chemicznie związaną wodę. Wylewka staje się krucha, pofałdowana i traci wytrzymałość (klasa F4/F5), co skutkuje odspojeniem się płytek.';
            
            cardDrewno.classList.add('rk-state-danger');
            valDrewno.textContent = 'Łódeczkowanie (< 5%)';
            descDrewno.innerHTML = 'Krytyczny spadek wilgotności posadzki poniżej 5%. Włókna kurczą się gwałtownie, wywołując powstawanie szczelin o szerokości nawet 4 mm oraz zjawisko "łódeczkowania", czyli trwałego wyginania krawędzi desek do góry.';
        }
    }

    slider.addEventListener('input', function() {
        updateMaterialState(parseInt(this.value, 10));
    });

    // Inicjalizacja domyślnego stanu
    updateMaterialState(35);
});
</script>



<style>
:root {
    --rk-curve-dark: #0f172a;
    --rk-curve-navy: #1e293b;
    --rk-curve-blue: #3b82f6;
    --rk-curve-sky: #0ea5e9;
    --rk-curve-green: #10b981;
    --rk-curve-orange: #f59e0b;
    --rk-curve-border: #e2e8f0;
    --rk-curve-bg: #ffffff;
    --rk-curve-text: #475569;
}

.rk-curve-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-curve-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-curve-border);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-curve-header {
    padding: 40px 45px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-curve-border);
}

.rk-curve-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-curve-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-curve-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-curve-text);
    margin: 0;
}

/* Interaktywny Symulator Pogodowy */
.rk-curve-simulator {
    background: linear-gradient(180deg, var(--rk-curve-navy) 0%, var(--rk-curve-dark) 100%);
    padding: 40px 45px;
    color: #ffffff;
    position: relative;
}

.rk-curve-simulator::after {
    content: '';
    position: absolute;
    top: 0; right: 0; width: 300px; height: 100%;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.1) 0%, transparent 70%);
    pointer-events: none;
}

.rk-weather-control {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 30px;
    border-radius: 20px;
    margin-bottom: 30px;
    position: relative;
    z-index: 2;
}

.rk-weather-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-weather-title {
    font-size: 16px;
    font-weight: 800;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-weather-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
    transition: color 0.3s;
}

.rk-curve-range {
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: rgba(255,255,255,0.2);
    outline: none;
    -webkit-appearance: none;
}

.rk-curve-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-curve-sky);
    box-shadow: 0 0 15px rgba(14, 165, 233, 0.6);
    transition: transform 0.1s;
}

.rk-curve-range::-webkit-slider-thumb:active { transform: scale(1.15); }

.rk-weather-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
}

/* Wyniki Pracy Pompy Ciepła */
.rk-curve-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    position: relative;
    z-index: 2;
}

.rk-curve-metric {
    background: rgba(0,0,0,0.2);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 25px 20px;
    border-radius: 16px;
    text-align: center;
    transition: transform 0.3s, background 0.3s;
}

.rk-curve-metric:hover {
    background: rgba(255,255,255,0.05);
    transform: translateY(-5px);
}

.rk-metric-icon {
    margin-bottom: 15px;
    color: var(--rk-curve-sky);
}

.rk-metric-lbl {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.rk-metric-unit {
    font-size: 15px;
    color: var(--rk-curve-sky);
}

/* Sekcja Bezwładności Jastrychu */
.rk-inertia-section {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-inertia-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-curve-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-inertia-content {
    display: flex;
    gap: 30px;
    align-items: center;
}

.rk-inertia-text {
    flex: 1;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-curve-text);
}

.rk-inertia-text a {
    color: var(--rk-curve-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-inertia-visual {
    width: 200px;
    background: #ffffff;
    border: 2px solid var(--rk-curve-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-inertia-visual-icon {
    color: var(--rk-curve-orange);
    margin-bottom: 10px;
}

.rk-inertia-visual-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-curve-dark);
    margin-bottom: 5px;
}

.rk-inertia-visual-desc {
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-curve-header, .rk-curve-simulator, .rk-inertia-section { padding: 30px 20px; }
    .rk-curve-header h2 { font-size: 24px; }
    .rk-weather-value { font-size: 30px; }
    .rk-curve-dashboard { grid-template-columns: 1fr; gap: 15px; } /* Pionowy układ kafelków */
    .rk-inertia-content { flex-direction: column; }
    .rk-inertia-visual { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-krzywa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Jaka jest rola krzywej grzewczej w systemie niskotemperaturowym?",
    "description": "Zrozum jak działa automatyka pogodowa pompy ciepła. Sprawdź dlaczego zasilanie 35°C to parametr używany tylko przy mrozach, a jastrych działa jak magazyn energii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-krzywa",
    "name": "Charakterystyka Pracy Krzywej Grzewczej i SCOP 2026",
    "description": "Baza danych korelujących temperaturę zewnętrzną z wymaganą temperaturą zasilania układu płaszczyznowego oraz rzeczywistym współczynnikiem wydajności COP dla czynnika R32.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "ustawienie krzywej grzewczej pompy ciepła",
      "bezwładność cieplna w ogrzewaniu podłogowym",
      "temperatura zasilania podłogówki a pogoda",
      "sterowanie pogodowe pompą ciepła"
    ],
    "measurementTechnique": "Algorytm mapujący spadki temperatury otoczenia na wymaganą moc grzewczą obiektu przy zachowaniu stałej temperatury wewnętrznej i adaptacji krzywej regulacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przy -15°C zasilanie wynosi 35°C przy obciążeniu 100% i COP 3.1.",
        "W okresie przejściowym (+7°C) zasilanie spada do 26°C a COP rośnie do 5.4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-krzywa",
    "name": "Symulator Krzywej Grzewczej i Automatyki Pogodowej",
    "description": "Interaktywny panel edukacyjny pozwalający na symulację zmian warunków pogodowych i obserwację adaptacji temperatury zasilania pompy ciepła na podstawie krzywej grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-curve-container" id="rola-krzywej-grzewczej">
    
    <div class="rk-curve-header">
        <h2>Jaka jest rola krzywej grzewczej w systemie niskotemperaturowym?</h2>
        <p>Zgodnie z zasadami <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">automatyki pogodowej</a>, projektowy parametr 35°C na zasilaniu jest generowany przez pompę ciepła wyłącznie przy skrajnej temperaturze obliczeniowej dla danej strefy klimatycznej (np. -20°C dla III strefy w Polsce). Przez 95% sezonu grzewczego inteligentny mózg systemu na podstawie <strong>krzywej grzewczej</strong> dynamicznie obniża parametry, maksymalnie optymalizując Twój portfel.</p>
    </div>

    <div class="rk-curve-simulator">
        
        <div class="rk-weather-control">
            <div class="rk-weather-header">
                <div class="rk-weather-title">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg>
                    Pogoda na zewnątrz
                </div>
                <div class="rk-weather-value" id="rkWeathVal">0°C</div>
            </div>
            <!-- Suwak skokowy reprezentujący wiersze z tabeli (1 do 4) -->
            <input type="range" min="1" max="4" value="2" step="1" class="rk-curve-range" id="rkCurveSlider">
            <div class="rk-weather-labels">
                <span>-15°C</span>
                <span>0°C</span>
                <span>+7°C</span>
                <span>+12°C</span>
            </div>
        </div>

        <div class="rk-curve-dashboard">
            <div class="rk-curve-metric">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                </div>
                <div class="rk-metric-lbl">Zasilanie Podłogi</div>
                <div class="rk-metric-val" id="rkCurveTemp">30<span class="rk-metric-unit">°C</span></div>
            </div>
            <div class="rk-curve-metric">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-metric-lbl">Wymagana Moc</div>
                <div class="rk-metric-val" id="rkCurvePow">65<span class="rk-metric-unit">%</span></div>
            </div>
            <div class="rk-curve-metric">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-metric-lbl">Bieżący COP (R32)</div>
                <div class="rk-metric-val" id="rkCurveCop" style="color: var(--rk-curve-green);">4.1</div>
            </div>
        </div>

    </div>

    <div class="rk-inertia-section">
        <h3>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="20" height="12" rx="2" ry="2"></rect><path d="M10 12h4"></path><path d="M12 10v4"></path></svg>
            Bezwładność termiczna – Twój gigantyczny magazyn prądu
        </h3>
        <div class="rk-inertia-content">
            <div class="rk-inertia-text">
                Wykorzystanie <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej jastrychu</a> (grubość 6–7 cm wylewki betonowej to masa ok. 130–150 kg/m²) w połączeniu z płaską krzywą grzewczą o nachyleniu 0,2–0,3 sprawia, że cały Twój dom staje się akumulatorem. Nie potrzebujesz kosztownego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufora ciepła</a> w kotłowni. Masa betonu pozwala na wyłączenie pompy ciepła podczas droższych taryf prądowych (np. G12w) bez zauważalnego spadku komfortu – dom wychładza się zaledwie o 0,5°C w ciągu 5 godzin!
            </div>
            <div class="rk-inertia-visual">
                <svg class="rk-inertia-visual-icon" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                <div class="rk-inertia-visual-title">150 kg betonu na 1m²</div>
                <div class="rk-inertia-visual-desc">Magazynuje ciepło zapobiegając taktowaniu sprężarki</div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkCurveSlider');
    
    // UI Elements
    var weathVal = document.getElementById('rkWeathVal');
    var curveTemp = document.getElementById('rkCurveTemp');
    var curvePow = document.getElementById('rkCurvePow');
    var curveCop = document.getElementById('rkCurveCop');

    // Baza danych dopasowana do oryginalnej tabeli
    var curveData = {
        1: { w: '-15°C', color: '#60a5fa', t: '35', p: '100', c: '3.1', cColor: '#ffffff' },
        2: { w: '0°C',   color: '#cbd5e1', t: '30', p: '65',  c: '4.1', cColor: 'var(--rk-curve-green)' },
        3: { w: '+7°C',  color: '#f59e0b', t: '26', p: '35',  c: '5.4', cColor: 'var(--rk-curve-green)' },
        4: { w: '+12°C', color: '#ef4444', t: '24', p: '15',  c: '6.3', cColor: 'var(--rk-curve-green)' }
    };

    function updateSimulator(step) {
        var data = curveData[step];
        if (data) {
            // Aktualizacja pogody
            weathVal.textContent = data.w;
            weathVal.style.color = data.color;
            
            // Aktualizacja metryk bez znaków specjalnych w logice JS
            curveTemp.innerHTML = data.t + '<span class="rk-metric-unit">°C</span>';
            curvePow.innerHTML = data.p + '<span class="rk-metric-unit">%</span>';
            
            curveCop.textContent = data.c;
            curveCop.style.color = data.cColor;
        }
    }

    slider.addEventListener('input', function() {
        updateSimulator(this.value);
    });

    // Uruchomienie początkowe (wartość 2 = 0°C)
    updateSimulator(2);
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-blue: #0ea5e9;
    --rk-flow-blue-light: #e0f2fe;
    --rk-flow-navy: #1e293b;
    --rk-flow-cyan: #06b6d4;
    --rk-flow-red: #ef4444;
    --rk-flow-border: #e2e8f0;
    --rk-flow-bg: #ffffff;
    --rk-flow-text: #475569;
}

.rk-flow-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-flow-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-flow-blue);
    overflow: hidden;
}

/* Sekcja Nagłówka */
.rk-flow-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-flow-border);
}

.rk-flow-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-flow-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-flow-text);
    margin: 0;
}

/* Interaktywny Symulator Hydrauliczny */
.rk-flow-simulator {
    padding: 35px 45px;
    background: var(--rk-flow-navy);
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-flow-simulator::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(14, 165, 233, 0.2), transparent 50%);
    pointer-events: none;
}

.rk-flow-formula {
    background: rgba(0,0,0,0.3);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 30px;
    position: relative;
    z-index: 2;
}

.rk-flow-formula-text {
    font-family: monospace;
    font-size: 20px;
    color: #38bdf8;
    text-align: center;
    font-weight: 700;
    margin-bottom: 10px;
}

.rk-flow-formula-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.6;
    text-align: center;
}

.rk-flow-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: relative;
    z-index: 2;
}

.rk-flow-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-flow-label {
    font-size: 15px;
    font-weight: 700;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-flow-value-badge {
    background: var(--rk-flow-blue);
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 18px;
    font-weight: 800;
}

.rk-flow-range {
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: #334155;
    outline: none;
    -webkit-appearance: none;
}

.rk-flow-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-flow-blue);
    box-shadow: 0 0 15px rgba(14, 165, 233, 0.5);
    transition: transform 0.1s;
}

.rk-flow-range::-webkit-slider-thumb:active { transform: scale(1.15); }

.rk-flow-results {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 25px;
}

.rk-flow-metric {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s;
}

.rk-flow-metric-title {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 8px;
}

.rk-flow-metric-val {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
}

.rk-flow-metric-unit {
    font-size: 16px;
    color: #38bdf8;
}

/* Konsekwencje Projektowe - Akordeon */
.rk-flow-consequences {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-flow-consequences h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 25px 0;
}

.rk-flow-acc-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-flow-acc-item {
    background: #ffffff;
    border: 1px solid var(--rk-flow-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-flow-acc-item.active {
    border-color: var(--rk-flow-blue);
    box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.15);
}

.rk-flow-acc-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    cursor: pointer;
}

.rk-flow-icon-box {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--rk-flow-blue-light);
    color: var(--rk-flow-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-flow-acc-item.active .rk-flow-icon-box {
    background: var(--rk-flow-blue);
    color: #ffffff;
}

.rk-flow-acc-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-flow-dark);
    margin: 0;
    flex: 1;
}

.rk-flow-chevron {
    color: #94a3b8;
    transition: transform 0.3s;
}

.rk-flow-acc-item.active .rk-flow-chevron {
    transform: rotate(180deg);
    color: var(--rk-flow-blue);
}

.rk-flow-acc-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-flow-acc-inner {
    padding: 0 25px 25px 89px; /* wyrównanie do tekstu, omijając ikonę */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-flow-text);
}

.rk-flow-acc-inner a {
    color: var(--rk-flow-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mocne CTA na końcu */
.rk-flow-cta {
    padding: 45px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-flow-border);
}

.rk-flow-cta h3 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 15px 0;
}

.rk-flow-cta p {
    font-size: 16px;
    color: var(--rk-flow-text);
    max-width: 600px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-flow-cyan);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(6, 182, 212, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #0891b2;
    box-shadow: 0 20px 35px -5px rgba(6, 182, 212, 0.5);
}

.rk-btn-massive svg {
    transition: transform 0.3s;
}

.rk-btn-massive:hover svg {
    transform: translateX(5px);
}

/* Mobile */
@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-simulator, .rk-flow-consequences, .rk-flow-cta { padding: 30px 20px; }
    .rk-flow-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-flow-acc-inner { padding: 0 20px 20px 20px; }
    .rk-flow-acc-trigger { padding: 15px; gap: 15px; }
    .rk-flow-icon-box { width: 36px; height: 36px; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Jak niska temperatura zasilania wpływa na projekt ogrzewania podłogowego?",
    "description": "Zobacz, dlaczego spadek różnicy temperatur Delta T wymusza trzykrotny wzrost przepływu masowego wody. Analiza oporów hydraulicznych i średnic rur.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-projekt",
    "name": "Wymagane Przepływy Hydrauliczne dla Pomp Ciepła (Delta T 5K)",
    "description": "Zestawienie parametrów fizycznych demonstrujące drastyczny wzrost wymagań względem średnicy rur oraz wydajności pomp obiegowych przy przejściu z układu wysokotemperaturowego na niskotemperaturowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wymagane przepływy masowe pompy ciepła",
      "dobór średnicy rur do podłogówki",
      "opory hydrauliczne pętli grzewczej",
      "kalkulator przepływu wody w ogrzewaniu",
      "zagęszczenie stref brzegowych przy przeszkleniach"
    ],
    "measurementTechnique": "Obliczanie strumienia objętościowego na podstawie prawa zachowania energii: V_dot = Q / (ρ * c_p * Delta T) z wariantowaniem różnicy temperatur zasilanie/powrót.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek Delta T z 15K na 5K wymusza przepływ ok. 4,3 l/min dla pętli 1500W.",
        "Przepływy powyżej 3,5 l/min w rurze 16x2 generują opory krytyczne >20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-projekt",
    "name": "Kalkulator Przepływów i Oporów Liniowych",
    "description": "Narzędzie interaktywne symulujące szok hydrauliczny w instalacji przy obniżeniu parametru Delta T, edukujące instalatorów i inwestorów o konieczności profesjonalnego obliczania OZC.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="wplyw-na-projekt">
    <div class="rk-flow-header">
        <h2>Jak niska temperatura zasilania wpływa na projekt ogrzewania podłogowego?</h2>
        <p>Wprowadzenie parametru zasilania 35°C obliguje projektanta do całkowitego odejścia od metod szacunkowych ("na oko") na rzecz rygorystycznych obliczeń hydraulicznych i termicznych. Projekt ogrzewania podłogowego pod pompę ciepła musi być bezpośrednią pochodną obliczeniowego zapotrzebowania na moc cieplną (OZC) wykonanego według normy PN-EN 12831.</p>
    </div>

    <div class="rk-flow-simulator">
        <div class="rk-flow-formula">
            <div class="rk-flow-formula-text">V_dot = Q / (ρ * c_p * Delta T)</div>
            <div class="rk-flow-formula-desc">
                Gdzie <strong>V_dot</strong> to strumień objętościowy (przepływ), <strong>Q</strong> to obciążenie cieplne, a <strong>Delta T</strong> to różnica temperatur między zasilaniem a powrotem.
            </div>
        </div>

        <div class="rk-flow-controls">
            <div class="rk-flow-slider-header">
                <span class="rk-flow-label">Ustaw Delta T układu:</span>
                <span class="rk-flow-value-badge" id="rkDeltaTVal">5K (Pompa Ciepła)</span>
            </div>
            <input type="range" min="5" max="15" value="5" step="5" class="rk-flow-range" id="rkDeltaTSlider">
        </div>

        <div class="rk-flow-results">
            <div class="rk-flow-metric">
                <div class="rk-flow-metric-title">Wymagany przepływ (dla Q=1500W)</div>
                <div class="rk-flow-metric-val" id="rkFlowVal">4.3 <span class="rk-flow-metric-unit">l/min</span></div>
            </div>
            <div class="rk-flow-metric" id="rkAlertBox">
                <div class="rk-flow-metric-title">Status Hydrauliki</div>
                <div class="rk-flow-metric-val" id="rkAlertVal" style="color: var(--rk-flow-red); font-size: 20px; white-space: normal; line-height: 1.3;">Szok Hydrauliczny!</div>
            </div>
        </div>
    </div>

    <div class="rk-flow-consequences">
        <h3>4 twarde konsekwencje projektowe:</h3>
        
        <div class="rk-flow-acc-list">
            <!-- Konsekwencja 1 -->
            <div class="rk-flow-acc-item rk-cons-item">
                <button class="rk-flow-acc-trigger" aria-expanded="false">
                    <div class="rk-flow-icon-box">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
                    </div>
                    <h4 class="rk-flow-acc-title">Wymuszona zmiana średnicy rur</h4>
                    <svg class="rk-flow-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-flow-acc-content">
                    <div class="rk-flow-acc-inner">
                        Podstawowa rura 16x2 mm przy przepływach przekraczających 3,5 l/min generuje gigantyczne opory liniowe i szum. Projektant musi drastycznie skrócić obwody do 80-90 m, albo świadomie zaprojektować <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">rurę o większej średnicy</a> (np. 18x2 lub 20x2 mm) dla długich pętli w salonie, aby opory nie przekroczyły bariery 20 kPa.
                    </div>
                </div>
            </div>

            <!-- Konsekwencja 2 -->
            <div class="rk-flow-acc-item rk-cons-item">
                <button class="rk-flow-acc-trigger" aria-expanded="false">
                    <div class="rk-flow-icon-box">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><circle cx="12" cy="12" r="3"></circle><line x1="12" y1="2" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="22"></line><line x1="20" y1="12" x2="22" y2="12"></line><line x1="2" y1="12" x2="4" y2="12"></line></svg>
                    </div>
                    <h4 class="rk-flow-acc-title">Potężna pompa obiegowa</h4>
                    <svg class="rk-flow-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-flow-acc-content">
                    <div class="rk-flow-acc-inner">
                        Zwiększenie przepływów sprawia, że sumaryczny wydatek dla domu 150 m² uderza w pułap 1,8–2,2 m³/h. <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Dobór pompy obiegowej</a> wymaga precyzyjnego wyznaczenia punktu pracy, aby jej wysokość podnoszenia (rzędu 6-7 m słupa wody) zagwarantowała odpowiednią dawkę wody na każdym rotametrze bez zdławienia.
                    </div>
                </div>
            </div>

            <!-- Konsekwencja 3 -->
            <div class="rk-flow-acc-item rk-cons-item">
                <button class="rk-flow-acc-trigger" aria-expanded="false">
                    <div class="rk-flow-icon-box">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <h4 class="rk-flow-acc-title">Eliminacja układów mieszających</h4>
                    <svg class="rk-flow-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-flow-acc-content">
                    <div class="rk-flow-acc-inner">
                        Wysokie przepływy oznaczają, że układ z pompą ciepła projektuje się jako bezpośredni. Odrzucamy wszystkie zawory trójdrogowe czy grupy mieszające przy rozdzielaczach. Cała instalacja musi oddychać pełnym przekrojem na jednym, stabilnym parametrze zasilania bez zbędnego "wąskiego gardła".
                    </div>
                </div>
            </div>

            <!-- Konsekwencja 4 (Nowa) -->
            <div class="rk-flow-acc-item rk-cons-item">
                <button class="rk-flow-acc-trigger" aria-expanded="false">
                    <div class="rk-flow-icon-box">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                    </div>
                    <h4 class="rk-flow-acc-title">Zagęszczenie stref przy dużych przeszkleniach</h4>
                    <svg class="rk-flow-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-flow-acc-content">
                    <div class="rk-flow-acc-inner">
                        Ponieważ temperatura zasilania jest "zablokowana" na 35°C, nie możemy dogrzać zimnego salonu podając cieplejszą wodę pod duże okna tarasowe typu HS. <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">Projekt do domu z przeszkleniami</a> wymusza fizyczne zlokalizowanie osobnych, dedykowanych pętli brzegowych o skrajnie gęstym rozstawie (np. co 7,5 cm), aby pokryć punktowe straty ciepła.
                    </div>
                </div>
            </div>

        </div>
    </div>

    <!-- Mocne CTA -->
    <div class="rk-flow-cta">
        <h3>Twój dom nie wybacza błędów hydraulicznych</h3>
        <p>Instalacja bez obliczeń to loteria. Przy niskiej temperaturze i potężnych przepływach nie ma miejsca na ułożenie rur "tak jak zawsze". Zainwestuj w inżynierski fundament, który uchroni Cię przed zimnymi posadzkami i zniszczoną sprężarką.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROJEKT OGRZEWANIA POD POMPĘ CIEPŁA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Obsługa symulatora przepływów
    var slider = document.getElementById('rkDeltaTSlider');
    var badge = document.getElementById('rkDeltaTVal');
    var flowVal = document.getElementById('rkFlowVal');
    var alertBox = document.getElementById('rkAlertBox');
    var alertVal = document.getElementById('rkAlertVal');

    function updateFlowSim(delta) {
        var d = parseInt(delta, 10);
        
        // Brak operatorów '&&' w warunkach
        if (d === 15) {
            badge.textContent = '15K (Stary Kocioł)';
            badge.style.background = '#64748b';
            flowVal.innerHTML = '1.4 <span class="rk-flow-metric-unit">l/min</span>';
            alertBox.style.background = 'rgba(255,255,255,0.05)';
            alertVal.textContent = 'Standardowe Opory';
            alertVal.style.color = '#94a3b8';
            slider.style.background = '#64748b';
        }
        if (d === 10) {
            badge.textContent = '10K (Kocioł Kondens.)';
            badge.style.background = '#0284c7';
            flowVal.innerHTML = '2.1 <span class="rk-flow-metric-unit">l/min</span>';
            alertBox.style.background = 'rgba(255,255,255,0.05)';
            alertVal.textContent = 'Bezpieczny Przepływ';
            alertVal.style.color = '#38bdf8';
            slider.style.background = '#0284c7';
        }
        if (d === 5) {
            badge.textContent = '5K (Pompa Ciepła)';
            badge.style.background = 'var(--rk-flow-red)';
            flowVal.innerHTML = '4.3 <span class="rk-flow-metric-unit">l/min</span>';
            alertBox.style.background = 'rgba(239, 68, 68, 0.15)';
            alertVal.innerHTML = 'Szok Hydrauliczny!<br><span style="font-size:14px; color:#f87171;">(Krytyczny opór w rurze 16x2)</span>';
            alertVal.style.color = 'var(--rk-flow-red)';
            slider.style.background = 'var(--rk-flow-red)';
        }
    }

    slider.addEventListener('input', function() {
        updateFlowSim(this.value);
    });

    // Inicjalizacja bazowa
    updateFlowSim(5);


    // Obsługa akordeonu konsekwencji
    var triggers = document.querySelectorAll('.rk-flow-acc-trigger');
    
    triggers.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            var isExpanded = this.getAttribute('aria-expanded') === 'true';

            // Zamykanie reszty
            var allItems = document.querySelectorAll('.rk-cons-item');
            allItems.forEach(function(otherItem) {
                if (otherItem !== item) {
                    otherItem.classList.remove('active');
                    otherItem.querySelector('.rk-flow-acc-trigger').setAttribute('aria-expanded', 'false');
                    otherItem.querySelector('.rk-flow-acc-content').style.maxHeight = null;
                }
            });

            // Toggle
            if (isExpanded === false) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                content.style.maxHeight = content.scrollHeight + "px";
            }
            if (isExpanded === true) {
                item.classList.remove('active');
                this.setAttribute('aria-expanded', 'false');
                content.style.maxHeight = null;
            }
        });
    });

});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-navy: #1e293b;
    --rk-algo-blue: #3b82f6;
    --rk-algo-cyan: #06b6d4;
    --rk-algo-green: #10b981;
    --rk-algo-red: #ef4444;
    --rk-algo-orange: #f59e0b;
    --rk-algo-border: #e2e8f0;
    --rk-algo-bg: #ffffff;
    --rk-algo-text: #334155;
    --rk-algo-light: #f8fafc;
}

.rk-algo-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-algo-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid var(--rk-algo-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-algo-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-algo-dark) 0%, var(--rk-algo-navy) 100%);
    color: #ffffff;
    position: relative;
}

.rk-algo-header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 4px;
    background: linear-gradient(90deg, var(--rk-algo-blue), var(--rk-algo-cyan));
}

.rk-algo-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-algo-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Panel Suwaków - Input */
.rk-algo-inputs {
    padding: 35px 45px;
    background: var(--rk-algo-light);
    border-bottom: 1px solid var(--rk-algo-border);
}

.rk-algo-input-group {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-algo-border);
    margin-bottom: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-algo-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-algo-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-algo-dark);
}

.rk-algo-val-badge {
    background: var(--rk-algo-blue);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 16px;
}

.rk-algo-range {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    -webkit-appearance: none;
}

.rk-algo-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-algo-blue);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
.rk-algo-range::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Wyniki Algorytmu - Kroki */
.rk-algo-steps {
    padding: 35px 45px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-step-card {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px;
    border-radius: 16px;
    background: var(--rk-algo-light);
    border: 2px solid var(--rk-algo-border);
    transition: all 0.3s;
}

.rk-algo-step-num {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--rk-algo-navy);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-algo-step-content {
    flex: 1;
}

.rk-algo-step-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-algo-step-result {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.rk-algo-step-unit {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-algo-blue);
}

.rk-algo-step-desc {
    font-size: 13px;
    color: #64748b;
    margin-top: 5px;
    line-height: 1.4;
}

/* Stany Ostrzegawcze */
.rk-algo-step-card.warning {
    border-color: var(--rk-algo-red);
    background: #fef2f2;
}
.rk-algo-step-card.warning .rk-algo-step-num { background: var(--rk-algo-red); }
.rk-algo-step-card.warning .rk-algo-step-result { color: var(--rk-algo-red); }

/* Sekcja Rozszerzona Analiza Ekonomiczna */
.rk-algo-eco {
    padding: 40px 45px;
    background: var(--rk-algo-dark);
    color: #ffffff;
}

.rk-algo-eco h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-eco-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-eco-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.rk-algo-eco-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
}
.rk-eco-1::before { background: var(--rk-algo-green); }
.rk-eco-2::before { background: var(--rk-algo-orange); }
.rk-eco-3::before { background: var(--rk-algo-red); }

.rk-algo-eco-title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 10px;
    color: #ffffff;
}

.rk-algo-eco-data {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 15px;
}

.rk-eco-stat {
    display: flex;
    flex-direction: column;
}

.rk-eco-stat-lbl {
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 4px;
}

.rk-eco-stat-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-algo-cyan);
}

.rk-algo-eco-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #cbd5e1;
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 15px;
}

.rk-algo-eco-desc a {
    color: var(--rk-algo-cyan);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-algo-header, .rk-algo-inputs, .rk-algo-steps, .rk-algo-eco { padding: 30px 20px; }
    .rk-algo-header h2 { font-size: 24px; }
    .rk-algo-step-card { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-algo-step-result { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Algorytm obliczeniowy doboru parametrów podłogówki i analiza opłacalności",
    "description": "Zrozum krok po kroku inżynierski algorytm wyznaczania strumienia cieplnego, przepływu wody i strat ciśnienia w podłogówce. Zobacz jak błędy OZC niszczą rentowność pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-algorytm",
    "name": "Wskaźniki Projektowe i Ekonomiczne Ogrzewania Płaszczyznowego 2026",
    "description": "Baza danych symulacyjnych obliczających czynną powierzchnię, gęstość strumienia oraz opory hydrauliczne pętli w zestawieniu z kosztami eksploatacyjnymi budynków.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm obliczeniowy doboru parametrów podłogówki",
      "obliczenie strat ciśnienia ogrzewania podłogowego",
      "kalkulator przepływu wody w ogrzewaniu podłogowym",
      "wymagana gęstość strumienia cieplnego",
      "koszty eksploatacji ogrzewania podłogowego z pompą ciepła w starym domu"
    ],
    "measurementTechnique": "Wykorzystanie równań z normy PN-EN 12831 (straty cieplne) oraz bilansu hydraulicznego do estymacji kosztów cyklu życia (LCC) instalacji na przestrzeni 15 lat.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bariera technologiczna 80 W/m2 warunkująca konieczność dogrzewania ściennego.",
        "Korekta obciążenia cieplnego przez współczynnik strat dystrybucyjnych Q x 1.15."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-algorytm",
    "name": "Kalkulator Algorytmu OZC i Opłacalności Podłogówki",
    "description": "Interaktywne narzędzie inżynierskie pozwalające użytkownikowi wprowadzić parametry pomieszczenia i na żywo śledzić kroki obliczeniowe układu niskotemperaturowego.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container" id="algorytm-obliczeniowy">
    <div class="rk-algo-header">
        <h2>Algorytm obliczeniowy doboru parametrów podłogówki</h2>
        <p>Aby system grzewczy utrzymał bezpieczny parametr zasilania 35°C zachowując pełen komfort termiczny, projektant nie może wróżyć z fusów. Zobacz na żywo, jak dane z <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" style="color:var(--rk-algo-cyan);">audytu cieplnego</a> przechodzą przez 5 rygorystycznych kroków inżynierskich zgodnie z europejską normą <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color:var(--rk-algo-cyan);">PN-EN 12831</a>.</p>
    </div>

    <div class="rk-algo-inputs">
        <div class="rk-algo-input-group">
            <div class="rk-algo-label-row">
                <span class="rk-algo-label">Powierzchnia całkowita pokoju</span>
                <span class="rk-algo-val-badge" id="rkValAtot">25 m²</span>
            </div>
            <input type="range" min="10" max="60" value="25" step="1" class="rk-algo-range" id="rkRangeAtot">
        </div>

        <div class="rk-algo-input-group">
            <div class="rk-algo-label-row">
                <span class="rk-algo-label">Zabudowa stała (szafy, wyspa)</span>
                <span class="rk-algo-val-badge" id="rkValAzab">5 m²</span>
            </div>
            <input type="range" min="0" max="20" value="5" step="1" class="rk-algo-range" id="rkRangeAzab">
        </div>

        <div class="rk-algo-input-group">
            <div class="rk-algo-label-row">
                <span class="rk-algo-label">Strata ciepła pokoju (z OZC)</span>
                <span class="rk-algo-val-badge" id="rkValQ">1200 W</span>
            </div>
            <input type="range" min="300" max="3500" value="1200" step="50" class="rk-algo-range" id="rkRangeQ">
        </div>
    </div>

    <div class="rk-algo-steps">
        
        <!-- Krok 1 -->
        <div class="rk-algo-step-card">
            <div class="rk-algo-step-num">1</div>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-title">Skorygowane obciążenie cieplne (Q_obl)</div>
                <div class="rk-algo-step-result"><span id="rkResQobl">1380</span> <span class="rk-algo-step-unit">W</span></div>
                <div class="rk-algo-step-desc">Q * 1.15 (Dodajemy 15% naddatku na sprawność regulacji i straty dystrybucyjne w posadzce).</div>
            </div>
        </div>

        <!-- Krok 2 -->
        <div class="rk-algo-step-card">
            <div class="rk-algo-step-num">2</div>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-title">Czynna powierzchnia grzewcza (A_cz)</div>
                <div class="rk-algo-step-result"><span id="rkResAcz">20</span> <span class="rk-algo-step-unit">m²</span></div>
                <div class="rk-algo-step-desc">Odejmujemy stałą zabudowę meblową. Podłogówka nie grzeje pod szafkami.</div>
            </div>
        </div>

        <!-- Krok 3 -->
        <div class="rk-algo-step-card" id="rkCardQwym">
            <div class="rk-algo-step-num">3</div>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-title">Wymagana gęstość strumienia (q_wym)</div>
                <div class="rk-algo-step-result"><span id="rkResQwym">69</span> <span class="rk-algo-step-unit">W/m²</span></div>
                <div class="rk-algo-step-desc" id="rkDescQwym">Wynik optymalny. Podłoga odda odpowiednią moc przy parametrze 35°C.</div>
            </div>
        </div>

        <!-- Krok 4 -->
        <div class="rk-algo-step-card">
            <div class="rk-algo-step-num">4</div>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-title">Natężenie przepływu wody (m)</div>
                <div class="rk-algo-step-result"><span id="rkResM">237</span> <span class="rk-algo-step-unit">kg/h (l/h)</span></div>
                <div class="rk-algo-step-desc">Dla projektowego spadku temperatury Delta T = 5K. Od tego zależy nastawa rotametru.</div>
            </div>
        </div>

        <!-- Krok 5 -->
        <div class="rk-algo-step-card">
            <div class="rk-algo-step-num">5</div>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-title">Długość rury (L) przy rozstawie co 10 cm</div>
                <div class="rk-algo-step-result"><span id="rkResL">215</span> <span class="rk-algo-step-unit">mb</span></div>
                <div class="rk-algo-step-desc">Wymaga podziału na 3 pętle! Maksymalna bezpieczna długość jednej pętli rury 16x2 to 80m.</div>
            </div>
        </div>

    </div>

    <!-- Rozszerzona Analiza Ekonomiczna -->
    <div class="rk-algo-eco">
        <h3>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza ekonomiczna: Opłacalność i koszty eksploatacji (Perspektywa 15 lat)
        </h3>
        
        <div class="rk-algo-eco-grid">
            
            <div class="rk-algo-eco-card rk-eco-1">
                <div class="rk-algo-eco-title">Dom Nowy WT 2021 (Projekt OZC + Podłogówka)</div>
                <div class="rk-algo-eco-data">
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Zasilanie</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-green);">32-35°C</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Sezonowy SCOP</span>
                        <span class="rk-eco-stat-val">4.6</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Koszt prądu 15 lat</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-green);">~ 26 000 PLN</span>
                    </div>
                </div>
                <div class="rk-algo-eco-desc">
                    Idealne dopasowanie gęstości strumienia. Pompa ciepła pracuje na minimalnych obrotach, co drastycznie obniża awaryjność. Zobacz więcej o <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">obliczaniu zwrotu z inwestycji</a>.
                </div>
            </div>

            <div class="rk-algo-eco-card rk-eco-2">
                <div class="rk-algo-eco-title">Dom Termomodernizowany (Rzadki rozstaw rur)</div>
                <div class="rk-algo-eco-data">
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Zasilanie</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-orange);">42-45°C</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Sezonowy SCOP</span>
                        <span class="rk-eco-stat-val">3.4</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Koszt prądu 15 lat</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-orange);">~ 35 200 PLN</span>
                    </div>
                </div>
                <div class="rk-algo-eco-desc">
                    Zaoszczędzenie na projekcie i ułożenie rur co 20 cm wymusza wyższe parametry źródła. Jeśli zastanawiasz się nad <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">podłogówką w remontowanym domu</a>, zagęszczenie pętli to konieczność dla rentowności.
                </div>
            </div>

            <div class="rk-algo-eco-card rk-eco-3">
                <div class="rk-algo-eco-title">Brak Modernizacji (Stare Grzejniki + Pompa Ciepła)</div>
                <div class="rk-algo-eco-data">
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Zasilanie</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-red);">55°C</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Sezonowy SCOP</span>
                        <span class="rk-eco-stat-val">2.6</span>
                    </div>
                    <div class="rk-eco-stat">
                        <span class="rk-eco-stat-lbl">Koszt prądu 15 lat</span>
                        <span class="rk-eco-stat-val" style="color:var(--rk-algo-red);">~ 46 100 PLN</span>
                    </div>
                </div>
                <div class="rk-algo-eco-desc">
                    Zmuszanie sprężarki do wysokiego ciśnienia skraplania zabija jej efektywność. Brak profesjonalnego audytu sprawia, że instalacja staje się obciążeniem, a <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">mity o niewydolnej pompie ciepła</a> stają się rzeczywistością portfela.
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Suwaki Input
    var rAtot = document.getElementById('rkRangeAtot');
    var vAtot = document.getElementById('rkValAtot');
    
    var rAzab = document.getElementById('rkRangeAzab');
    var vAzab = document.getElementById('rkValAzab');
    
    var rQ = document.getElementById('rkRangeQ');
    var vQ = document.getElementById('rkValQ');

    // Wyniki
    var resQobl = document.getElementById('rkResQobl');
    var resAcz = document.getElementById('rkResAcz');
    
    var cardQwym = document.getElementById('rkCardQwym');
    var resQwym = document.getElementById('rkResQwym');
    var descQwym = document.getElementById('rkDescQwym');
    
    var resM = document.getElementById('rkResM');
    
    var resL = document.getElementById('rkResL');
    var descL = resL.parentElement.nextElementSibling;

    function calculateAlgorithm() {
        var aTot = parseInt(rAtot.value, 10);
        var aZab = parseInt(rAzab.value, 10);
        var qStrata = parseInt(rQ.value, 10);

        vAtot.textContent = aTot + ' m²';
        vAzab.textContent = aZab + ' m²';
        vQ.textContent = qStrata + ' W';

        // Bezpieczna logika zapobiegająca błędnym wartościom przed obliczeniami
        if (aZab > aTot - 2) {
            aZab = aTot - 2; // Zawsze zostaw min 2m2 czynne
            rAzab.value = aZab;
            vAzab.textContent = aZab + ' m²';
        }

        // KROK 1: Q_obl = Q * 1.15
        var qObl = Math.round(qStrata * 1.15);
        resQobl.textContent = qObl;

        // KROK 2: A_cz = A_tot - A_zab
        var aCz = aTot - aZab;
        resAcz.textContent = aCz;

        // KROK 3: q_wym = Q_obl / A_cz
        var qWym = Math.round(qObl / aCz);
        resQwym.textContent = qWym;

        // Ostrzeżenie normatywne (Bez użycia operatora AND/OR)
        if (qWym > 80) {
            cardQwym.classList.add('warning');
            descQwym.textContent = 'KRYTYCZNE: Parametr zasilania 35°C nie pokryje strat! Należy dogęścić rury strefą brzegową (co 7,5 cm) lub zastosować ogrzewanie ścienne.';
        }
        if (qWym <= 80) {
            cardQwym.classList.remove('warning');
            descQwym.textContent = 'Wynik optymalny. Posadzka swobodnie odda tę moc przy bezpiecznym zasilaniu 35°C.';
        }

        // KROK 4: Przepływ m = Q_obl / (1.163 * 5)
        var mPrzeplyw = Math.round(qObl / (1.163 * 5));
        resM.textContent = mPrzeplyw;

        // KROK 5: Długość rury L = (A_cz * 10) + 15 (15 to stała na podejścia)
        var lRury = Math.round((aCz * 10) + 15);
        resL.textContent = lRury;

        // Dynamiczny opis pętli w zależności od długości
        if (lRury <= 90) {
            descL.textContent = 'Idealna długość dla 1 pętli rury 16x2. Opory ciśnienia zachowane w normie.';
        }
        if (lRury > 90) {
            var iloscPetli = Math.ceil(lRury / 80);
            descL.textContent = 'Przekroczono limit oporów! Wymaga podziału na ' + iloscPetli + ' osobne pętle lub zastosowania rury o większej średnicy.';
        }
    }

    rAtot.addEventListener('input', calculateAlgorithm);
    rAzab.addEventListener('input', calculateAlgorithm);
    rQ.addEventListener('input', calculateAlgorithm);

    // Initial run
    calculateAlgorithm();
});
</script>



<style>
:root {
    --rk-eco-dark: #0f172a;
    --rk-eco-blue: #0ea5e9;
    --rk-eco-bg: #ffffff;
    --rk-eco-border: #e2e8f0;
    --rk-eco-text: #334155;
    
    --rk-eco-red: #ef4444;
    --rk-eco-red-bg: #fef2f2;
    --rk-eco-orange: #f97316;
    --rk-eco-orange-bg: #fff7ed;
    --rk-eco-green: #10b981;
    --rk-eco-green-bg: #f0fdf4;
}

.rk-eco-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-eco-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-eco-border);
    overflow: hidden;
}

/* Sekcja Nagłówka */
.rk-eco-header {
    padding: 40px 45px 30px;
    background: linear-gradient(145deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-eco-border);
}

.rk-eco-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-eco-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-eco-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-eco-text);
    margin: 0;
}

/* Interaktywny Moduł Oszczędności */
.rk-eco-dashboard {
    padding: 35px 45px;
    background: #ffffff;
}

.rk-eco-variants {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-eco-variant-btn {
    flex: 1;
    padding: 20px 15px;
    background: #f8fafc;
    border: 2px solid var(--rk-eco-border);
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-eco-variant-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-eco-variant-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    transition: all 0.3s;
}

.rk-eco-variant-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-eco-dark);
}

/* Stany aktywne dla poszczególnych wariantów */
.rk-eco-variant-btn.active[data-var="A"] {
    border-color: var(--rk-eco-red);
    background: var(--rk-eco-red-bg);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.2);
}
.rk-eco-variant-btn.active[data-var="A"] .rk-eco-variant-icon { color: var(--rk-eco-red); }

.rk-eco-variant-btn.active[data-var="B"] {
    border-color: var(--rk-eco-orange);
    background: var(--rk-eco-orange-bg);
    box-shadow: 0 8px 20px -5px rgba(249, 115, 22, 0.2);
}
.rk-eco-variant-btn.active[data-var="B"] .rk-eco-variant-icon { color: var(--rk-eco-orange); }

.rk-eco-variant-btn.active[data-var="C"] {
    border-color: var(--rk-eco-green);
    background: var(--rk-eco-green-bg);
    box-shadow: 0 8px 20px -5px rgba(16, 185, 129, 0.2);
}
.rk-eco-variant-btn.active[data-var="C"] .rk-eco-variant-icon { color: var(--rk-eco-green); }

/* Panel z wynikami */
.rk-eco-results {
    background: #0f172a;
    border-radius: 20px;
    padding: 35px;
    color: #ffffff;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    position: relative;
    overflow: hidden;
}

.rk-eco-results::before {
    content: '';
    position: absolute;
    top: -50%; right: -50%; width: 100%; height: 100%;
    background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 60%);
    pointer-events: none;
}

.rk-eco-metric {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-eco-metric-label {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.rk-eco-metric-value {
    font-size: 28px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-eco-metric-unit {
    font-size: 16px;
    color: #cbd5e1;
    font-weight: 600;
}

.rk-eco-metric.highlight .rk-eco-metric-value {
    font-size: 38px;
}

/* Wniosek */
.rk-eco-conclusion {
    padding: 35px 45px;
    background: var(--rk-eco-green-bg);
    border-top: 1px solid rgba(16, 185, 129, 0.2);
}

.rk-eco-conclusion h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-eco-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-eco-conclusion p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-eco-text);
    margin: 0;
}

.rk-eco-conclusion a {
    color: var(--rk-eco-green);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Responsywność - Mobile (Pionowy układ, brak scrolla bocznego) */
@media (max-width: 768px) {
    .rk-eco-header, .rk-eco-dashboard, .rk-eco-conclusion { padding: 25px 20px; }
    .rk-eco-variants { flex-direction: column; gap: 12px; }
    .rk-eco-variant-btn { flex-direction: row; text-align: left; padding: 15px; }
    .rk-eco-results { grid-template-columns: 1fr; gap: 25px; padding: 25px; }
    .rk-eco-metric.highlight .rk-eco-metric-value { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-ekonomia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Analiza ekonomiczna: Porównanie kosztów eksploatacji ogrzewania dla domu 150 m²",
    "description": "Zestawienie twardych danych i kosztów eksploatacji ogrzewania podłogowego. Zobacz jak gęstość ułożenia rur wpływa na roczne zużycie prądu przez pompę ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-ekonomia",
    "name": "Symulacja kosztów eksploatacji ogrzewania podłogowego 2026",
    "description": "Model danych porównujący parametry fizyczne i koszty zużycia energii elektrycznej pompy ciepła w zależności od zastosowanego systemu oddawania ciepła (grzejniki vs podłogówka).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt ogrzewania domu 2026",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "zużycie prądu pompa ciepła",
      "opłacalność pompy ciepła"
    ],
    "measurementTechnique": "Kalkulacja oparta na zapotrzebowaniu cieplnym 10 000 kWh rocznie dla budynku 150 m², przy zmiennym współczynniku SCOP i stałej cenie 0,80 PLN/kWh.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Grzejniki (55°C): SCOP 2.6, Roczny koszt 3076 PLN.",
        "Podłogówka rzadka 20cm (45°C): SCOP 3.4, Roczny koszt 2352 PLN.",
        "Podłogówka idealna 10cm (35°C): SCOP 4.6, Roczny koszt 1739 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-ekonomia",
    "name": "Pulpit Analizy Rentowności (ROI) Rozstawu Rur",
    "description": "Interaktywny symulator pozwalający użytkownikowi na natychmiastowe porównanie 15-letnich kosztów eksploatacji instalacji w zależności od przyjętego standardu projektowego.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript"
  }
]
</script>

<div class="rk-eco-container" id="analiza-ekonomiczna">
    <div class="rk-eco-header">
        <h2>Analiza ekonomiczna: Porównanie kosztów eksploatacji ogrzewania dla domu 150 m²</h2>
        <p>Poniższe zestawienie przedstawia twarde dane liczbowe dla budynku o powierzchni 150 m² i rocznym zapotrzebowaniu na ciepło wynoszącym 10 000 kWh (zgodnie z WT 2021). Sprawdź, jak przyjęty w projekcie rodzaj i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw instalacji płaszczyznowej</a> wpływa na rachunki, przyjmując cenę energii elektrycznej na poziomie 0,80 PLN/kWh.</p>
    </div>

    <div class="rk-eco-dashboard">
        <div class="rk-eco-variants" id="rkVariantSelector">
            <button class="rk-eco-variant-btn" data-var="A">
                <div class="rk-eco-variant-icon" style="color: var(--rk-eco-red);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14.5V9a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5.5"></path><path d="M4 19v-4.5"></path><path d="M20 19v-4.5"></path><path d="M8 19v-6"></path><path d="M12 19v-6"></path><path d="M16 19v-6"></path></svg>
                </div>
                <div class="rk-eco-variant-title">Wariant A:<br>Stare grzejniki</div>
            </button>
            <button class="rk-eco-variant-btn" data-var="B">
                <div class="rk-eco-variant-icon" style="color: var(--rk-eco-orange);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="2"></rect><path d="M7 8v8"></path><path d="M17 8v8"></path></svg>
                </div>
                <div class="rk-eco-variant-title">Wariant B:<br>Podłogówka co 20 cm</div>
            </button>
            <button class="rk-eco-variant-btn active" data-var="C">
                <div class="rk-eco-variant-icon" style="color: var(--rk-eco-green);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h18"></path><path d="M3 6h18"></path><path d="M3 18h18"></path><path d="M8 3v18"></path><path d="M16 3v18"></path></svg>
                </div>
                <div class="rk-eco-variant-title">Wariant C:<br>Ideały projektowe 10 cm</div>
            </button>
        </div>

        <div class="rk-eco-results">
            <div class="rk-eco-metric">
                <div class="rk-eco-metric-label">Średnia Temp. Zasilania</div>
                <div class="rk-eco-metric-value" id="rkValTemp" style="color: #60a5fa;">32<span class="rk-eco-metric-unit">°C (max 35°C)</span></div>
            </div>
            <div class="rk-eco-metric">
                <div class="rk-eco-metric-label">Sezonowy SCOP</div>
                <div class="rk-eco-metric-value" id="rkValScop" style="color: #cbd5e1;">4.6</div>
            </div>
            <div class="rk-eco-metric">
                <div class="rk-eco-metric-label">Roczne Zużycie Prądu</div>
                <div class="rk-eco-metric-value" id="rkValPower">2174<span class="rk-eco-metric-unit">kWh</span></div>
            </div>
            <div class="rk-eco-metric highlight">
                <div class="rk-eco-metric-label">Koszty w perspektywie 15 lat</div>
                <div class="rk-eco-metric-value" id="rkValCost" style="color: var(--rk-eco-green);">26 085<span class="rk-eco-metric-unit">PLN</span></div>
            </div>
        </div>
    </div>

    <div class="rk-eco-conclusion">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Twarde dane liczbowe i opłacalność zagęszczenia rur
        </h3>
        <p>Wniosek z analizy jest bezlitosny dla amatorskich rozwiązań. Inwestycja w Wariant C (czyli zagęszczenie rozstawu pętli do projektowych 10 cm, co zwiększa koszt zakupu rur PE-RT o ok. 1800 PLN dla całego domu) gwarantuje najszybszy <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji</a> – zwraca się w pełni po niecałych 1,5 sezonu grzewczego. Przez kolejne lata system generuje czysty zysk, brutalnie tnąc <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania</a> i krytycznie odciążając sprężarkę pompy ciepła.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-eco-variant-btn');
    
    // Elementy UI do aktualizacji
    var vTemp = document.getElementById('rkValTemp');
    var vScop = document.getElementById('rkValScop');
    var vPower = document.getElementById('rkValPower');
    var vCost = document.getElementById('rkValCost');

    // Baza danych
    var ecoData = {
        'A': {
            tempHtml: '55<span class="rk-eco-metric-unit">°C</span>',
            tempColor: 'var(--rk-eco-red)',
            scop: '2.6',
            power: '3846',
            cost: '46 140',
            costColor: 'var(--rk-eco-red)'
        },
        'B': {
            tempHtml: '45<span class="rk-eco-metric-unit">°C</span>',
            tempColor: 'var(--rk-eco-orange)',
            scop: '3.4',
            power: '2941',
            cost: '35 280',
            costColor: 'var(--rk-eco-orange)'
        },
        'C': {
            tempHtml: '32<span class="rk-eco-metric-unit">°C (max 35°C)</span>',
            tempColor: '#60a5fa', // Jasny niebieski dla komfortu
            scop: '4.6',
            power: '2174',
            cost: '26 085',
            costColor: 'var(--rk-eco-green)'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset stylów przycisków
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Aktywacja wciśniętego
            this.classList.add('active');
            
            var variant = this.getAttribute('data-var');
            var data = ecoData[variant];
            
            // Bezpieczne wstrzykiwanie wartości bez && i skomplikowanej logiki
            if (data) {
                vTemp.innerHTML = data.tempHtml;
                vTemp.style.color = data.tempColor;
                
                vScop.textContent = data.scop;
                
                vPower.innerHTML = data.power + '<span class="rk-eco-metric-unit">kWh</span>';
                
                vCost.innerHTML = data.cost + '<span class="rk-eco-metric-unit">PLN</span>';
                vCost.style.color = data.costColor;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-green: #10b981;
    --rk-err-green-light: #f0fdf4;
    --rk-err-blue: #0284c7;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

.rk-err-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-err-border);
    border-top: 5px solid var(--rk-err-red);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    padding: 35px 40px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-header p {
    font-size: 16px;
    color: var(--rk-err-gray);
    margin: 0;
    line-height: 1.6;
}

.rk-err-icon-alert {
    color: var(--rk-err-red);
    flex-shrink: 0;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0.4)); }
    50% { filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.7)); }
    100% { filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0.4)); }
}

/* Lista błędów - wyłącznie 1 kolumna */
.rk-err-list {
    padding: 30px 40px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: #f8fafc;
}

.rk-err-card {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-err-card.active {
    border-color: var(--rk-err-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.1);
}

/* Przycisk akordeonu */
.rk-err-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.rk-err-title-box {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-num {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--rk-err-red-light);
    color: var(--rk-err-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    flex-shrink: 0;
}

.rk-err-card.active .rk-err-num {
    background: var(--rk-err-red);
    color: #ffffff;
}

.rk-err-trigger h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
}

.rk-err-chevron {
    color: var(--rk-err-gray);
    transition: transform 0.3s;
}

.rk-err-card.active .rk-err-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-red);
}

/* Zawartość rozwiniętego błędu */
.rk-err-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-inner {
    padding: 0 25px 25px;
}

/* Interaktywny przełącznik Diagnoza / Rozwiązanie */
.rk-err-switch-box {
    background: #f1f5f9;
    padding: 6px;
    border-radius: 12px;
    display: flex;
    gap: 5px;
    margin-bottom: 20px;
    margin-top: 10px;
}

.rk-err-btn {
    flex: 1;
    padding: 10px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-gray);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-err-btn.active-amateur {
    background: #ffffff;
    color: var(--rk-err-red);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.rk-err-btn.active-pro {
    background: #ffffff;
    color: var(--rk-err-green);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* Bloki tekstowe zależne od przełącznika */
.rk-err-desc {
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
    padding: 15px;
    border-radius: 12px;
    display: none; /* Sterowane z JS */
}

.rk-err-desc.visible {
    display: block;
    animation: fadeIn 0.3s ease;
}

.rk-err-desc.amateur-view {
    background: var(--rk-err-red-light);
    border-left: 4px solid var(--rk-err-red);
}

.rk-err-desc.pro-view {
    background: var(--rk-err-green-light);
    border-left: 4px solid var(--rk-err-green);
}

.rk-err-desc a {
    color: var(--rk-err-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-list { padding: 25px 20px; }
    .rk-err-header h2 { font-size: 22px; }
    .rk-err-trigger { padding: 15px; }
    .rk-err-trigger h3 { font-size: 15px; }
    .rk-err-inner { padding: 0 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Najczęstsze błędy instalacyjne uderzające w parametr 35°C",
    "description": "Katalog najpoważniejszych błędów wykonawczych w instalacjach podłogowych. Zobacz, jak zawory mieszające, zbyt długie pętle i rzadki rozstaw niszczą efektywność pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-bledy",
    "name": "Rejestr Strat Sprawności Układu Niskotemperaturowego 2026",
    "description": "Zbiór danych diagnostycznych określających negatywny wpływ błędów hydraulicznych (zbyt długie pętle, zawory mieszające, rzadki rozstaw) na współczynnik COP pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu ogrzewania podłogowego",
      "zbyt rzadki rozstaw rur w ogrzewaniu podłogowym",
      "zawór mieszający a pompa ciepła",
      "maksymalna długość pętli ogrzewania podłogowego",
      "pękanie wylewki na podłogówce"
    ],
    "measurementTechnique": "Analiza spadku współczynnika COP oraz wzrostu oporów hydraulicznych rzędu >40 kPa w wyniku nieprawidłowych praktyk instalacyjnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obecność zaworu 3D dławi przepływ wymuszając 45°C na źródle ciepła.",
        "Pętle powyżej 120m generują ΔT > 12K blokując prawidłowy przepływ.",
        "Rozstaw co 20 cm uniemożliwia pracę na projektowym parametrze 35°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-bledy",
    "name": "Diagnosta Błędów Instalacyjnych HVAC",
    "description": "Interaktywny panel analizujący przyczyny i skutki złych praktyk instalacyjnych z możliwością przełączenia na prawidłowe rozwiązanie inżynierskie OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="panel-bledow">
    <div class="rk-err-header">
        <h2>
            <svg class="rk-err-icon-alert" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Najczęstsze błędy instalacyjne uderzające w parametr 35°C
        </h2>
        <p>Instalacja grzewcza to nie zbiór przypadkowych rur. Rozwiń poszczególne panele i przełącz widok, aby sprawdzić, co niszczy pompę ciepła, a jak wygląda standard inżynierski.</p>
    </div>

    <div class="rk-err-list">
        
        <!-- Błąd 1 -->
        <div class="rk-err-card rk-diagnostic-item">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-title-box">
                    <div class="rk-err-num">1</div>
                    <h3>Montaż układów mieszających przy rozdzielaczach</h3>
                </div>
                <svg class="rk-err-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-inner">
                    <div class="rk-err-switch-box">
                        <button class="rk-err-btn active-amateur" data-target="err1-am">Błąd Wykonawczy</button>
                        <button class="rk-err-btn" data-target="err1-pro">Standard Projektowy</button>
                    </div>
                    <div id="err1-am" class="rk-err-desc amateur-view visible">
                        Pseudo-instalatorzy z przyzwyczajenia do kotłów węglowych montują zawory termostatyczne 3D (układy pompocentryczne). Zawór ten dławi naturalny przepływ i powoduje, że pompa ciepła musi produkować wodę o temperaturze 45°C, aby za <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworem mieszającym</a> uzyskać na podłogę pożądane 35°C. Drastycznie obniża to COP całego układu.
                    </div>
                    <div id="err1-pro" class="rk-err-desc pro-view">
                        <strong>Rozwiązanie inżynierskie:</strong> Eliminujemy mieszacze. System z pompą ciepła projektuje się jako bezpośredni i wysokoprzepływowy. Pompa z własną automatyką precyzyjnie generuje wodę na poziomie 35°C i tłoczy ją prosto w pętle grzewcze, minimalizując opory ciśnienia.
                    </div>
                </div>
            </div>
        </div>

        <!-- Błąd 2 -->
        <div class="rk-err-card rk-diagnostic-item">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-title-box">
                    <div class="rk-err-num">2</div>
                    <h3>Zbyt długie pętle grzewcze (powyżej 120 m)</h3>
                </div>
                <svg class="rk-err-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-inner">
                    <div class="rk-err-switch-box">
                        <button class="rk-err-btn active-amateur" data-target="err2-am">Błąd Wykonawczy</button>
                        <button class="rk-err-btn" data-target="err2-pro">Standard Projektowy</button>
                    </div>
                    <div id="err2-am" class="rk-err-desc amateur-view visible">
                        Chęć zaoszczędzenia na rozdzielaczu kończy się zwijaniem gigantycznych obwodów. Wykonanie pętli z rury 16x2 o długości np. 140 metrów generuje opory hydrauliczne rzędu 45 kPa. Pompa obiegowa nie jest w stanie przepchnąć wody, różnica temperatur przekracza dopuszczalne normy, a połowa pokoju zostaje całkowicie zimna.
                    </div>
                    <div id="err2-pro" class="rk-err-desc pro-view">
                        <strong>Rozwiązanie inżynierskie:</strong> Ścisłe trzymanie się wyliczeń na bazie OZC. <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli</a> dla rury 16x2 nie powinna przekraczać 80–90 m, a opory pojedynczej pętli muszą mieścić się w okolicach 20 kPa, co zapewnia optymalny spadek temperatury na poziomie 5K.
                    </div>
                </div>
            </div>
        </div>

        <!-- Błąd 3 -->
        <div class="rk-err-card rk-diagnostic-item">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-title-box">
                    <div class="rk-err-num">3</div>
                    <h3>Brak wykonania dylatacji i izolacji brzegowej</h3>
                </div>
                <svg class="rk-err-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-inner">
                    <div class="rk-err-switch-box">
                        <button class="rk-err-btn active-amateur" data-target="err3-am">Błąd Wykonawczy</button>
                        <button class="rk-err-btn" data-target="err3-pro">Standard Projektowy</button>
                    </div>
                    <div id="err3-am" class="rk-err-desc amateur-view visible">
                        Pomijanie taśmy dylatacyjnej przy ścianach oraz brak nacięć jastrychu w strefach progów drzwiowych to klasyka gatunku amatorów. Betony grzewcze silnie pracują termicznie. Zablokowana siła rozszerzalności potrafi całkowicie zerwać ułożone płytki ceramiczne lub nawet zgnieść rury.
                    </div>
                    <div id="err3-pro" class="rk-err-desc pro-view">
                        <strong>Rozwiązanie inżynierskie:</strong> Rygorystyczny montaż 8-10 mm grubej pianki obwodowej na styku wszystkich pionowych ścian. Dodatkowo projekt przewiduje strefy podziału wylewki w drzwiach – to jest fundament <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">prawidłowej dylatacji</a> zabezpieczający okładziny przed zniszczeniem.
                    </div>
                </div>
            </div>
        </div>

        <!-- Błąd 4 (Nowy dłuuugi ogon) -->
        <div class="rk-err-card rk-diagnostic-item">
            <button class="rk-err-trigger" aria-expanded="false">
                <div class="rk-err-title-box">
                    <div class="rk-err-num">4</div>
                    <h3>Zbyt rzadki rozstaw rur w ogrzewaniu podłogowym</h3>
                </div>
                <svg class="rk-err-chevron" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-err-content">
                <div class="rk-err-inner">
                    <div class="rk-err-switch-box">
                        <button class="rk-err-btn active-amateur" data-target="err4-am">Błąd Wykonawczy</button>
                        <button class="rk-err-btn" data-target="err4-pro">Standard Projektowy</button>
                    </div>
                    <div id="err4-am" class="rk-err-desc amateur-view visible">
                        Oszczędności na rurze rzędu kilkuset złotych poprzez ułożenie pętli co 20 cm zamiast projektowych 10 cm. Efekt? Aby przekazać z tak małej powierzchni wymiany odpowiednią moc cieplną do pokoju, sprężarka jest zmuszona podnieść temperaturę zasilania do 40-45°C. To bezpowrotnie niszczy sezonowy współczynnik SCOP i generuje ogromne nadpłaty za prąd.
                    </div>
                    <div id="err4-pro" class="rk-err-desc pro-view">
                        <strong>Rozwiązanie inżynierskie:</strong> Dobieramy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur precyzyjnie z obliczeń</a>. Dla systemów z pompą ciepła i temperaturą 35°C układamy gęsto (z reguły co 10 cm). Wyższy koszt materiału zwraca się w pierwszym roku w postaci najniższych możliwych rachunków i idealnego komfortu termicznego.
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Obsługa akordeonu
    var triggers = document.querySelectorAll('.rk-err-trigger');
    
    triggers.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var card = this.parentElement;
            var content = this.nextElementSibling;
            var isExpanded = this.getAttribute('aria-expanded') === 'true';

            // Zamykanie innych kart
            var allCards = document.querySelectorAll('.rk-diagnostic-item');
            allCards.forEach(function(otherCard) {
                if (otherCard !== card) {
                    otherCard.classList.remove('active');
                    otherCard.querySelector('.rk-err-trigger').setAttribute('aria-expanded', 'false');
                    otherCard.querySelector('.rk-err-content').style.maxHeight = null;
                }
            });

            // Logika Toggle (bezpieczny kod, bez operatora "and")
            if (isExpanded === false) {
                card.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                // timeout potrzebny przy display:none dzieci
                setTimeout(function(){
                    content.style.maxHeight = content.scrollHeight + 50 + "px";
                }, 10);
            }
            if (isExpanded === true) {
                card.classList.remove('active');
                this.setAttribute('aria-expanded', 'false');
                content.style.maxHeight = null;
            }
        });
    });

    // Obsługa wewnętrznych przełączników Diagnoza/Rozwiązanie
    var switchBtns = document.querySelectorAll('.rk-err-btn');
    
    switchBtns.forEach(function(switchBtn) {
        switchBtn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            var container = this.closest('.rk-err-inner');
            var buttons = container.querySelectorAll('.rk-err-btn');
            var views = container.querySelectorAll('.rk-err-desc');

            // Reset guzików i widoków w danym bloku
            buttons.forEach(function(b) {
                b.classList.remove('active-amateur');
                b.classList.remove('active-pro');
            });
            views.forEach(function(v) {
                v.classList.remove('visible');
            });

            // Aktywacja klikniętego elementu
            var isAmateurTarget = targetId.indexOf('-am') > -1;
            
            if (isAmateurTarget === true) {
                this.classList.add('active-amateur');
            }
            if (isAmateurTarget === false) {
                this.classList.add('active-pro');
            }

            document.getElementById(targetId).classList.add('visible');
            
            // Przelicz ponownie wysokość akordeonu po zmianie treści
            var contentWrap = this.closest('.rk-err-content');
            contentWrap.style.maxHeight = contentWrap.scrollHeight + 50 + "px";
        });
    });

});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-navy: #1e293b;
    --rk-case-teal: #0d9488;
    --rk-case-teal-light: #ccfbf1;
    --rk-case-red: #ef4444;
    --rk-case-red-light: #fef2f2;
    --rk-case-gray: #64748b;
    --rk-case-slate: #f1f5f9;
    --rk-case-border: #e2e8f0;
    --rk-case-bg: #ffffff;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-case-teal);
    overflow: hidden;
}

/* Nagłówek */
.rk-case-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, var(--rk-case-navy) 100%);
    color: #ffffff;
    position: relative;
}

.rk-case-header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 5px;
    background: linear-gradient(90deg, var(--rk-case-teal), #2dd4bf);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(45, 212, 191, 0.2);
    color: #2dd4bf;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(45, 212, 191, 0.3);
}

.rk-case-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-case-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Sekcja Opowieści (Story) */
.rk-case-story {
    padding: 35px 45px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-profile {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed var(--rk-case-border);
}

.rk-case-avatar {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: var(--rk-case-slate);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-case-teal);
    flex-shrink: 0;
}

.rk-case-profile-info h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-case-dark);
}

.rk-case-profile-info p {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-case-gray);
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-case-text {
    font-size: 15px;
    line-height: 1.8;
    color: #475569;
}

.rk-case-text a {
    color: var(--rk-case-teal);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny Symulator Decyzji */
.rk-case-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-case-interactive h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 20px 0;
    text-align: center;
}

.rk-case-switches {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-switch-btn {
    flex: 1;
    padding: 18px 20px;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    background: #ffffff;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-case-switch-btn:hover {
    background: var(--rk-case-slate);
}

.rk-case-switch-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-dark);
}

.rk-case-switch-subtitle {
    font-size: 12px;
    color: var(--rk-case-gray);
    font-weight: 600;
}

/* Stany Aktywne Przełączników */
.rk-case-switch-btn.active[data-choice="bad"] {
    border-color: var(--rk-case-red);
    background: var(--rk-case-red-light);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}
.rk-case-switch-btn.active[data-choice="bad"] .rk-case-switch-title { color: var(--rk-case-red); }

.rk-case-switch-btn.active[data-choice="good"] {
    border-color: var(--rk-case-teal);
    background: var(--rk-case-teal-light);
    box-shadow: 0 10px 20px -5px rgba(13, 148, 136, 0.2);
}
.rk-case-switch-btn.active[data-choice="good"] .rk-case-switch-title { color: var(--rk-case-teal); }

/* Panel Wyników */
.rk-case-results {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-case-metric {
    padding: 15px 20px;
    border-radius: 12px;
    background: var(--rk-case-slate);
    border-left: 4px solid transparent;
    transition: all 0.3s;
}

.rk-case-m-lbl {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-case-gray);
    margin-bottom: 5px;
}

.rk-case-m-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Wniosek Dynamiczny */
.rk-case-conclusion {
    margin-top: 25px;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-case-border);
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    font-weight: 500;
}

.rk-case-conclusion strong {
    font-weight: 800;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-story, .rk-case-interactive { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-switches { flex-direction: column; gap: 12px; }
    .rk-case-switch-btn { flex-direction: row; padding: 15px; justify-content: space-between; }
    .rk-case-switch-title { font-size: 14px; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-case-profile { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Studium Przypadku: Jak Michał z Zamościa uratował pompę ciepła przed awarią?",
    "description": "Analiza błędów instalacyjnych w nowym domu 160 m² w woj. lubelskim. Porównanie amatorskiego rozstawu rur z inżynierskim projektem OZC na parametr 35°C.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-case-study",
    "name": "Zestawienie Kosztów Eksploatacji i Parametrów: Dom 160m2 Zamość",
    "description": "Baza danych porównująca dwa warianty wykonawcze dla tego samego budynku: instalację amatorską (rzadki rozstaw) oraz inżynierską (optymalizacja dla zasilania 35°C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego i jak ich uniknąć",
      "ile styropianu pod ogrzewanie podłogowe",
      "rekuperacja i ogrzewanie podłogowe czy to się opłaca",
      "koszt ogrzewania domu 2026",
      "zużycie prądu pompa ciepła dom 160m2"
    ],
    "measurementTechnique": "Porównanie ofert rynkowych na podstawie projektowego zapotrzebowania cieplnego budynku WT 2021 oraz wyliczeń COP dla zmiennych temperatur zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Instalatora: Rury co 20 cm, zasilanie wymuszone 45°C, wzrost zużycia energii o 35%.",
        "Wariant Inżyniera: Rury co 10 cm, zasilanie optymalne 35°C, maksymalna żywotność sprężarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-case-study",
    "name": "Symulator Decyzji Inwestycyjnych: Zamość",
    "description": "Moduł decyzyjny pozwalający na interaktywne porównanie skutków technicznych i finansowych wyboru tańszej usługi instalatorskiej względem profesjonalnego projektu OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="studium-przypadku">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Case Study (Studium Przypadku)
        </div>
        <h2>Jak Michał z Zamościa uniknął pułapki "pana majstra"?</h2>
        <p>Teoria termodynamiki jest ważna, ale nic nie przemawia do wyobraźni tak, jak portfel sąsiada. Przeanalizujmy prawdziwą historię z placu budowy z województwa lubelskiego, gdzie decyzja o rezygnacji z projektu omal nie doprowadziła do katastrofy finansowej.</p>
    </div>

    <div class="rk-case-story">
        <div class="rk-case-profile">
            <div class="rk-case-avatar">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
            </div>
            <div class="rk-case-profile-info">
                <h3>Michał, Zamość (woj. lubelskie)</h3>
                <p>
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
                    Nowy dom 160 m² (Gazobeton + duże okna w salonie)
                </p>
            </div>
        </div>
        
        <div class="rk-case-text">
            Michał kończył budowę wymarzonego domu w Zamościu. Zastanawiał się, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu dać pod podłogówkę</a> i czy <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja z podłogówką się opłaca</a>. Lokalny hydraulik z polecenia zaoferował mu kompleksowy montaż z powietrzną pompą ciepła. "Panie Michale, nie ma co przepłacać za projekty, rzuci się rurki co 20 centymetrów, damy sprzęgło z mieszaczem i zawsze będzie ciepło, od lat tak robię" – usłyszał inwestor. 
            <br><br>
            Instynkt jednak podpowiedział Michałowi, by przed wylaniem jastrychu zgłosić się do inżynierów. Przeprowadziliśmy audyt OZC dla jego domu. Wynik był bezlitosny – sprawdź poniżej, co by się stało, gdyby zaufał wykonawcy, i jak wyglądały <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu</a>, których ostatecznie udało się uniknąć.
        </div>
    </div>

    <div class="rk-case-interactive">
        <h3>Symulacja Decyzji dla Domu 160 m²</h3>
        
        <div class="rk-case-switches">
            <button class="rk-case-switch-btn active" data-choice="bad">
                <span class="rk-case-switch-title">Wizja Lokalnego Majstra</span>
                <span class="rk-case-switch-subtitle">"Panie, tak zawsze robiłem"</span>
            </button>
            <button class="rk-case-switch-btn" data-choice="good">
                <span class="rk-case-switch-title">Projekt Inżynierski OZC</span>
                <span class="rk-case-switch-subtitle">Wyliczenia na parametr 35°C</span>
            </button>
        </div>

        <div class="rk-case-results">
            <div class="rk-case-grid">
                
                <div class="rk-case-metric" id="rkCaseM1">
                    <div class="rk-case-m-lbl">Rozstaw rur (gęstość)</div>
                    <div class="rk-case-m-val" id="rkValV1">Co 20 cm w całym domu</div>
                </div>
                
                <div class="rk-case-metric" id="rkCaseM2">
                    <div class="rk-case-m-lbl">Wymagane zasilanie z pompy</div>
                    <div class="rk-case-m-val" id="rkValV2" style="color: var(--rk-case-red);">45°C - 48°C</div>
                </div>
                
                <div class="rk-case-metric" id="rkCaseM3">
                    <div class="rk-case-m-lbl">Roczny COP (Sprawność)</div>
                    <div class="rk-case-m-val" id="rkValV3" style="color: var(--rk-case-red);">Skrajnie niski (ok. 3.0)</div>
                </div>
                
                <div class="rk-case-metric" id="rkCaseM4">
                    <div class="rk-case-m-lbl">Wizja zładu wody</div>
                    <div class="rk-case-m-val" id="rkValV4">Wymuszony zbędny bufor</div>
                </div>

            </div>

            <div class="rk-case-conclusion" id="rkCaseConc">
                <strong>Skutek finansowy w 2026 roku:</strong> Rzadki rozstaw rur nie jest w stanie pokryć strat ciepła z dużych okien w salonie Michała przy niskiej temperaturze wody. Pompa ciepła musiałaby tłoczyć prawie 48°C. W efekcie <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania tego domu</a> byłby o około <strong>35% wyższy</strong> każdego roku, a żywotność sprężarki spadłaby o połowę z powodu ciągłego przeciążenia układu mieszającego.
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-case-switch-btn');
    
    // Pola wyników
    var box1 = document.getElementById('rkCaseM1');
    var val1 = document.getElementById('rkValV1');
    
    var box2 = document.getElementById('rkCaseM2');
    var val2 = document.getElementById('rkValV2');
    
    var box3 = document.getElementById('rkCaseM3');
    var val3 = document.getElementById('rkValV3');
    
    var box4 = document.getElementById('rkCaseM4');
    var val4 = document.getElementById('rkValV4');
    
    var conclusion = document.getElementById('rkCaseConc');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var choice = this.getAttribute('data-choice');

            // Reset guzików
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            this.classList.add('active');

            // Logika bez &&
            if (choice === 'bad') {
                box1.style.borderLeftColor = 'var(--rk-case-red)';
                val1.textContent = 'Co 20 cm w całym domu';
                val1.style.color = 'var(--rk-case-dark)';
                
                box2.style.borderLeftColor = 'var(--rk-case-red)';
                val2.textContent = '45°C - 48°C';
                val2.style.color = 'var(--rk-case-red)';
                
                box3.style.borderLeftColor = 'var(--rk-case-red)';
                val3.textContent = 'Skrajnie niski (ok. 3.0)';
                val3.style.color = 'var(--rk-case-red)';
                
                box4.style.borderLeftColor = 'var(--rk-case-red)';
                val4.textContent = 'Wymuszony zbędny bufor';
                val4.style.color = 'var(--rk-case-dark)';

                conclusion.innerHTML = '<strong>Skutek finansowy:</strong> Rzadki rozstaw rur nie jest w stanie pokryć strat ciepła z dużych okien w salonie Michała przy niskiej temperaturze wody. Pompa ciepła musiałaby tłoczyć prawie 48°C. W efekcie <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania tego domu</a> byłby o około <strong>35% wyższy</strong> każdego roku, a żywotność sprężarki spadłaby o połowę z powodu ciągłego przeciążenia układu mieszającego.';
            }
            
            if (choice === 'good') {
                box1.style.borderLeftColor = 'var(--rk-case-teal)';
                val1.textContent = 'Co 10 cm (Strefy co 7.5 cm)';
                val1.style.color = 'var(--rk-case-dark)';
                
                box2.style.borderLeftColor = 'var(--rk-case-teal)';
                val2.textContent = 'Sztywno 35°C';
                val2.style.color = 'var(--rk-case-teal)';
                
                box3.style.borderLeftColor = 'var(--rk-case-teal)';
                val3.textContent = 'Maksymalny (powyżej 4.6)';
                val3.style.color = 'var(--rk-case-teal)';
                
                box4.style.borderLeftColor = 'var(--rk-case-teal)';
                val4.textContent = 'Układ bezpośredni (zład rur)';
                val4.style.color = 'var(--rk-case-dark)';

                conclusion.innerHTML = '<strong>Skutek finansowy:</strong> Dzięki wyliczeniom zagęściliśmy rury przy oknach i w łazienkach, utrzymując odstęp 10 cm w reszcie domu. Michał pozbył się drogiego bufora, pompa ładuje wodę 35°C bezpośrednio w podłogę. Inwestycja w większą ilość rury zwróciła się po pierwszej zimie. System pracuje bezszelestnie na minimalnym obciążeniu sprężarki.';
            }
        });
    });
    
    // Inicjalizacja domyślna wywoływana ręcznie do ostylowania lewej ramki
    box1.style.borderLeftColor = 'var(--rk-case-red)';
    box2.style.borderLeftColor = 'var(--rk-case-red)';
    box3.style.borderLeftColor = 'var(--rk-case-red)';
    box4.style.borderLeftColor = 'var(--rk-case-red)';
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-navy: #1e293b;
    --rk-auth-slate: #334155;
    --rk-auth-blue: #0284c7;
    --rk-auth-sky: #e0f2fe;
    --rk-auth-border: #e2e8f0;
    --rk-auth-bg: #ffffff;
    --rk-auth-text: #475569;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-auth-blue);
    border-left: 8px solid var(--rk-auth-blue);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-auth-header {
    padding: 35px 40px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-auth-header p {
    font-size: 16px;
    color: var(--rk-auth-text);
    margin: 0;
    line-height: 1.6;
}

/* Główny układ: Profil + Interaktywne Porady */
.rk-auth-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
}

/* Lewa Kolumna - Profil Eksperta */
.rk-auth-profile {
    background: #ffffff;
    padding: 35px 30px;
    border-right: 1px solid var(--rk-auth-border);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-auth-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-auth-sky);
    margin-bottom: 20px;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
}

.rk-auth-name {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 5px 0;
}

.rk-auth-role {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 15px;
    margin-top: auto;
}

.rk-auth-social-link {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #f1f5f9;
    color: var(--rk-auth-slate);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    /* Brak animacji zgodnie z wytycznymi - tylko szybka zmiana koloru tła */
}

.rk-auth-social-link:hover {
    background: var(--rk-auth-blue);
    color: #ffffff;
}

/* Prawa Kolumna - Interaktywne Cytaty (Tabsy) */
.rk-auth-content {
    padding: 35px 40px;
    background: #fafafa;
}

.rk-auth-tabs-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    border-bottom: 2px solid var(--rk-auth-border);
    padding-bottom: 15px;
}

.rk-auth-tab-btn {
    background: transparent;
    border: none;
    padding: 10px 15px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-slate);
    cursor: pointer;
    border-radius: 8px;
    /* Brak animacji, statyczne kliknięcie */
}

.rk-auth-tab-btn.active {
    background: var(--rk-auth-dark);
    color: #ffffff;
}

.rk-auth-tab-btn:hover:not(.active) {
    background: #e2e8f0;
}

.rk-auth-tab-panel {
    display: none; /* Domyślnie ukryte, przełączane JS-em bez animacji */
}

.rk-auth-tab-panel.active {
    display: block;
}

.rk-auth-quote-mark {
    font-size: 60px;
    color: var(--rk-auth-sky);
    line-height: 0.5;
    margin-bottom: -15px;
    font-family: serif;
}

.rk-auth-quote-text {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-auth-dark);
    font-weight: 600;
    margin: 0 0 20px 0;
    font-style: italic;
}

.rk-auth-quote-text strong {
    color: var(--rk-auth-blue);
    font-weight: 800;
}

.rk-auth-fact-box {
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    border-left: 4px solid var(--rk-auth-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
}

.rk-auth-fact-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-auth-slate);
    margin-bottom: 5px;
}

.rk-auth-fact-text {
    font-size: 14px;
    color: var(--rk-auth-text);
    margin: 0;
    font-weight: 500;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-auth-header { padding: 25px 20px; }
    .rk-auth-layout { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-content { padding: 25px 20px; }
    .rk-auth-tabs-nav { flex-direction: column; border-bottom: none; gap: 8px; }
    .rk-auth-tab-btn { text-align: left; background: #f1f5f9; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Zdaniem eksperta: Inż. Robert Kucharski o projektowaniu instalacji niskotemperaturowych",
    "description": "Złote zasady i inżynierskie podsumowanie Roberta Kucharskiego dotyczące projektowania instalacji płaszczyznowych, doboru pomp ciepła i unikania błędów wykonawczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC / Projektant Instalacji Ogrzewania",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-ekspert",
    "name": "Manifest Inżynierski: Normy i Fakty Ogrzewania Podłogowego",
    "description": "Baza wiedzy z zakresu fizyki budowli zawierająca zbiór twardych wskaźników determinujących opłacalność oraz awaryjność nowoczesnych układów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "Robert Kucharski projektowanie ogrzewania podłogowego",
      "złote zasady ogrzewania podłogowego z pompą ciepła",
      "błędy instalatorów pomp ciepła",
      "koszty eksploatacji ogrzewania podłogowego z pompą ciepła",
      "obliczenia ozc a wydajność pompy"
    ],
    "measurementTechnique": "Weryfikacja rynkowych standardów wykonawczych na podstawie tysięcy zrealizowanych projektów, pomiarów termowizyjnych oraz rachunków inwestorów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Fizyki nie oszukasz: Przekroczenie 35°C drastycznie degraduje sprawność sprężarki.",
        "Materiały nie wybaczają: Powyżej 45°C wylewka anhydrytowa traci właściwości strukturalne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-ekspert",
    "name": "Interaktywny Asystent Wiedzy Eksperckiej",
    "description": "Panel umożliwiający błyskawiczne przełączanie kluczowych wniosków inżynierskich przypisanych do poszczególnych etapów realizacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="opinia-eksperta">
    
    <div class="rk-auth-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path><path d="M9 12l2 2 4-4"></path></svg>
            Zdaniem eksperta: Robert Kucharski o parametrze 35°C
        </h2>
        <p>Za każdym prawidłowo dobranym przepływem i parametrem COP stoją twarde obliczenia. Odrzuć fora internetowe i sprawdź, jakie są inżynierskie fakty poparte tysiącami zrealizowanych projektów OZC.</p>
    </div>

    <div class="rk-auth-layout">
        
        <!-- Kolumna Profilu -->
        <div class="rk-auth-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Ekspert HVAC" class="rk-auth-photo">
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-role">Inżynier HVAC / CEO</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener" class="rk-auth-social-link" title="Obserwuj na Facebooku">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener" class="rk-auth-social-link" title="Połącz na LinkedIn">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener" class="rk-auth-social-link" title="Obserwuj na X">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M4 4l11.73 14.86L20 20H15.11L9.2 11.96 4 4zm2 2h3l9 12h-3L6 6z"></path></svg>
                </a>
            </div>
        </div>

        <!-- Kolumna Treści (Tabsy statyczne) -->
        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs-nav" id="rkAuthTabs">
                <button class="rk-auth-tab-btn active" data-tab="tab-projekt">Projektowanie OZC</button>
                <button class="rk-auth-tab-btn" data-tab="tab-wykonawstwo">Wykonawstwo</button>
                <button class="rk-auth-tab-btn" data-tab="tab-ekonomia">Ekonomia</button>
            </div>

            <div class="rk-auth-tab-content">
                
                <!-- Tab 1: Projektowanie -->
                <div class="rk-auth-tab-panel active" id="tab-projekt">
                    <div class="rk-auth-quote-mark">"</div>
                    <p class="rk-auth-quote-text">
                        Możesz kupić najdroższą pompę ciepła na rynku, ale to fizyka budynku zadecyduje o rachunkach. Bez rzetelnego obliczenia OZC dla każdego pokoju osobno i bez wyznaczenia gęstości strumienia cieplnego, zgadujesz. <strong>Temperatura zasilania na poziomie 35°C to nie przypadek, to wynik rygorystycznego projektu rur ułożonych z reguły co 10 cm.</strong> Jeśli ktoś mówi Ci, że projekt jest zbędny – uciekaj.
                    </p>
                    <div class="rk-auth-fact-box">
                        <div class="rk-auth-fact-title">Kluczowy Wskaźnik Projektowy</div>
                        <p class="rk-auth-fact-text">Podłogówka projektowana "na oko" i ułożona co 20 cm wymusi na urządzeniu grzanie do ponad 45°C. Zniszczy to wydajność i całkowicie mija się z celem montażu pompy ciepła.</p>
                    </div>
                </div>

                <!-- Tab 2: Wykonawstwo -->
                <div class="rk-auth-tab-panel" id="tab-wykonawstwo">
                    <div class="rk-auth-quote-mark">"</div>
                    <p class="rk-auth-quote-text">
                        Największym błędem, z jakim spotykam się na budowach, są pętle ułożone z ponad 120-metrowych odcinków i układy z zaworami mieszającymi zmontowane z przyzwyczajenia do kotłów na węgiel. <strong>Pompa ciepła wymaga potężnego zładu wody i ogromnych przepływów.</strong> Dławienie jej mieszaczami to zakładanie Porsche opon od Fiata 126p i dziwienie się, że silnik wyje.
                    </p>
                    <div class="rk-auth-fact-box">
                        <div class="rk-auth-fact-title">Reguła Wykonawcza</div>
                        <p class="rk-auth-fact-text">Opory hydrauliczne długiej pętli (powyżej 90m dla rury 16x2) powodują, że powrót jest drastycznie wychłodzony, pompa obiegowa nie daje rady, a salon pozostaje zimny mimo pracującej sprężarki.</p>
                    </div>
                </div>

                <!-- Tab 3: Ekonomia -->
                <div class="rk-auth-tab-panel" id="tab-ekonomia">
                    <div class="rk-auth-quote-mark">"</div>
                    <p class="rk-auth-quote-text">
                        Często klienci pytają mnie o koszty eksploatacji ogrzewania podłogowego. Prawda jest brutalna: <strong>Pieniądze oszczędzone na etapie zagęszczenia rur oddasz zakładowi energetycznemu w pierwszym roku użytkowania.</strong> Zmuszanie systemu do pracy na 45-50°C powoduje spadek współczynnika SCOP, podwajając roczne koszty energii w porównaniu do standardu 35°C.
                    </p>
                    <div class="rk-auth-fact-box">
                        <div class="rk-auth-fact-title">Perspektywa Finansowa</div>
                        <p class="rk-auth-fact-text">W perspektywie 15-letniej, brak optymalizacji rozstawu rur i krzywej grzewczej potrafi narazić inwestora na straty przewyższające wartość całej kotłowni.</p>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabBtns = document.querySelectorAll('.rk-auth-tab-btn');
    var tabPanels = document.querySelectorAll('.rk-auth-tab-panel');

    tabBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-tab');

            // Reset stanów
            tabBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            tabPanels.forEach(function(p) {
                p.classList.remove('active');
            });

            // Aktywacja wybranego - natychmiastowe działanie (bez animacji)
            this.classList.add('active');
            var targetPanel = document.getElementById(targetId);
            
            // Bezpieczna logika w czystym JS (bez &&)
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
    --rk-faq-text: #334155;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-faq-blue);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 35px 45px 25px;
    background: linear-gradient(to right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-faq-border);
    position: relative;
}

.rk-faq-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: var(--rk-faq-blue);
}

.rk-faq-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-faq-header svg {
    color: var(--rk-faq-blue);
    flex-shrink: 0;
}

/* Lista Akordeonowa - 1 kolumna (wymóg) */
.rk-faq-list {
    padding: 20px 45px 45px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: #ffffff;
    border: 2px solid var(--rk-faq-border);
    border-radius: 16px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 25px;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background 0.2s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-hover);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
}

.rk-faq-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s, color 0.3s;
}

.rk-faq-item.active .rk-faq-icon {
    background: var(--rk-faq-blue);
    color: #ffffff;
    transform: rotate(180deg);
}

.rk-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-faq-answer-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-answer-inner {
    border-top-color: var(--rk-faq-light-blue);
    padding-top: 20px;
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-faq-answer-inner a:hover {
    color: #0369a1;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { padding: 25px 20px; }
    .rk-faq-header h2 { font-size: 22px; }
    .rk-faq-list { padding: 15px 20px 30px; }
    .rk-faq-question { padding: 18px 20px; font-size: 15px; }
    .rk-faq-answer-inner { padding: 0 20px 20px; font-size: 14px; }
    .rk-faq-icon { width: 28px; height: 28px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "5 pytań o temperaturę zasilania 35°C (FAQ)",
    "description": "Baza wiedzy i odpowiedzi inżynierskich na najczęstsze pytania dotyczące niskiej temperatury zasilania pompy ciepła, parametrów podłogówki oraz wpływu na posadzki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy temperatura zasilania 35°C wystarczy do ogrzania domu podczas mrozów -20°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, w budynku spełniającym standardy WT 2021 prawidło zaprojektowana podłogówka o rozstawie rur co 10 cm w pełni pokrywa straty ciepła przy temperaturze zasilania 35°C. Wynika to z dużej powierzchni grzewczej posadzki, która bez problemu oddaje wtedy wymagane 40–50 W/m²."
        }
      },
      {
        "@type": "Question",
        "name": "Czy letnia podłoga o temperaturze 25°C nie wywoła uczucia chłodu w pomieszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, temperatura skóry na stopach człowieka to około 29–30°C, więc posadzka o temperaturze 24–25°C jest postrzegana przez organizm jako neutralna i niezwykle komfortowa. Eliminuje to negatywne zjawisko gorących stóp oraz puchnięcia nóg, które występowało w starych instalacjach wysokotemperaturowych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rzadki rozstaw rur co 20 cm można skompensować wyższym przepływem na rotametrach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, zwiększenie przepływu powyżej wartości projektowych wygeneruje ogromny szum hydrauliczny w instalacji oraz przekroczy maksymalne parametry pracy wbudowanej pompy obiegowej. Jedyną skuteczną metodą na rzadki rozstaw jest podniesienie temperatury zasilania do 45°C, co jednak obniży sprawność COP pompy o około 25%."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego pompa ciepła rzekomo nie lubi się z tradycyjnymi grzejnikami?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pompa ciepła technicznie obsłuży grzejniki, ale wymuszenie temperatury zasilania 55°C drastycznie podnosi ciśnienie skraplania czynnika chłodniczego w sprężarce. Powoduje to spadek współczynnika SCOP do okolic 2,4–2,6, przez co koszty rachunków za energię elektryczną rosną o blisko 40–50% w stosunku do podłogówki."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy zasilaniu 35°C można bezpiecznie stosować podłogę z paneli laminowanych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, nowoczesne panele posiadają dedykowane oznaczenia producentów potwierdzające niską oporność cieplną (poniżej 0,15 m²K/W). Przy temperaturze zasilania 35°C panele nagrzewają się do bezpiecznych 24–25°C, co zapobiega ich wysuszaniu, emisji szkodliwych substancji oraz powstawaniu szczelin."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset",
    "name": "Baza Wiedzy Niskotemperaturowej: Parametry Pracy i Komfortu 2026",
    "description": "Inżynierskie zestawienie faktów obalające mity internetowe, zawierające konkretne wartości dotyczące przepływów, temperatury odczuwalnej oraz doboru okładzin dla wodnego ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura zasilania ogrzewania podłogowego",
      "przepływy na rotametrach a szum hydrauliczny",
      "współczynnik SCOP pompy przy grzejnikach",
      "ogrzewanie podłogowe a zdrowie domowników",
      "zasilanie podłogówki pod panele podłogowe"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych z rzeczywistymi warunkami fizjologicznymi człowieka oraz fizyką instalacji grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagane oddawanie mocy 40-50 W/m² realizowane przy zasilaniu 35°C.",
        "Komfort termiczny dla stóp określony precyzyjnie na 24-25°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp",
    "name": "Interaktywny Asystent Ekspercki FAQ",
    "description": "Rozwijany moduł odpowiedzi inżynierskich pozwalający użytkownikowi na błyskawiczne rozwiązywanie wątpliwości dotyczących parowania pomp ciepła z systemami podłogowymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-35-stopni">
    <div class="rk-faq-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            5 pytań o temperaturę zasilania 35°C (FAQ)
        </h2>
    </div>

    <div class="rk-faq-list">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy temperatura zasilania 35°C wystarczy do ogrzania domu podczas mrozów -20°C?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, w budynku spełniającym standardy WT 2021 prawidło zaprojektowana podłogówka o rozstawie rur co 10 cm w pełni pokrywa straty ciepła przy temperaturze zasilania 35°C. Wynika to z dużej powierzchni grzewczej posadzki, która bez problemu oddaje wtedy wymagane 40–50 W/m², o czym szerzej mówimy w kontekście <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperatury układu</a>.
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy letnia podłoga o temperaturze 25°C nie wywoła uczucia chłodu w pomieszczeniu?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Nie, temperatura skóry na stopach człowieka to około 29–30°C, więc posadzka o temperaturze 24–25°C jest postrzegana przez organizm jako neutralna i niezwykle komfortowa. Eliminuje to negatywne zjawisko "gorących stóp" oraz puchnięcia nóg, co czyni ten system zdecydowanie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">najzdrowszym wyborem grzewczym</a> względem starych instalacji wysokotemperaturowych.
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy rzadki rozstaw rur co 20 cm można skompensować wyższym przepływem na rotametrach?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Nie, zwiększenie przepływu powyżej wartości projektowych wygeneruje ogromny szum hydrauliczny w instalacji oraz przekroczy maksymalne parametry pracy wbudowanej pompy obiegowej. Jedyną skuteczną metodą na rzadki rozstaw jest podniesienie temperatury zasilania do 45°C, co jednak obniży sprawność COP pompy o około 25%. Warto zawsze prawidłowo odczytywać parametry na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach rozdzielacza</a>.
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Dlaczego pompa ciepła rzekomo nie lubi się z tradycyjnymi grzejnikami?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Pompa ciepła technicznie obsłuży grzejniki, ale wymuszenie temperatury zasilania 55°C drastycznie podnosi ciśnienie skraplania czynnika chłodniczego w sprężarce. Powoduje to spadek współczynnika SCOP do okolic 2,4–2,6, przez co koszty rachunków za energię elektryczną rosną o blisko 40–50% w stosunku do instalacji płaszczyznowych. Wymaga to specjalnego podejścia do <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">łączenia obu układów</a>.
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy przy zasilaniu 35°C można bezpiecznie stosować podłogę z paneli laminowanych?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, nowoczesne panele posiadają dedykowane oznaczenia producentów potwierdzające niską oporność cieplną (poniżej 0,15 m²K/W). Przy temperaturze zasilania 35°C panele nagrzewają się do bezpiecznych 24–25°C, co zapobiega ich wysuszaniu, emisji szkodliwych substancji oraz powstawaniu szczelin. Rozwiewa to ostatecznie wątpliwości, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">co kłaść na jastrych</a> grzewczy.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqQuestions = document.querySelectorAll('.rk-faq-question');

    faqQuestions.forEach(function(question) {
        question.addEventListener('click', function() {
            var item = this.parentElement;
            var answer = this.nextElementSibling;
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne otwarte zakładki (opcjonalne, zapewnia czystość interfejsu)
            var allItems = document.querySelectorAll('.rk-faq-item');
            allItems.forEach(function(otherItem) {
                if (otherItem !== item) {
                    otherItem.classList.remove('active');
                    otherItem.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                    otherItem.querySelector('.rk-faq-answer').style.maxHeight = null;
                }
            });

            // Całkowicie bezpieczna logika "toggle" (brak &&)
            if (isActive === false) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
            if (isActive === true) {
                item.classList.remove('active');
                this.setAttribute('aria-expanded', 'false');
                answer.style.maxHeight = null;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-sky: #e0f2fe;
    --rk-dl-green: #10b981;
    --rk-dl-gray: #64748b;
    --rk-dl-border: #e2e8f0;
    --rk-dl-bg: #ffffff;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-dl-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-dl-header {
    padding: 35px 40px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-header p {
    font-size: 16px;
    color: var(--rk-dl-gray);
    margin: 0;
    line-height: 1.6;
}

/* Sekcja Główna - Layout 2 kolumny na desktop */
.rk-dl-body {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Miniatura */
.rk-dl-thumbnail-box {
    padding: 30px;
    background: #f1f5f9;
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-dl-image {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border: 4px solid #ffffff;
    object-fit: cover;
    display: block;
}

.rk-dl-badge {
    margin-top: 15px;
    background: var(--rk-dl-navy);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa Kolumna - Akcje i Opis */
.rk-dl-actions-box {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-dl-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-dl-gray);
    margin: 0 0 25px 0;
}

.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 25px;
}

/* Przyciski statyczne - bez animacji hover, tylko zmiana koloru tła */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 25px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
    cursor: pointer;
    border: none;
    width: 100%;
    box-sizing: border-box;
}

.rk-dl-btn-pdf {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: 2px solid var(--rk-dl-blue);
}

.rk-dl-btn-pdf:hover {
    background: #0369a1;
    border-color: #0369a1;
}

.rk-dl-btn-img {
    background: #ffffff;
    color: var(--rk-dl-dark);
    border: 2px solid var(--rk-dl-border);
}

.rk-dl-btn-img:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

/* Komunikat o pobraniu ukryty domyślnie */
.rk-dl-success-msg {
    display: none;
    padding: 15px;
    background: #dcfce7;
    border-left: 4px solid var(--rk-dl-green);
    border-radius: 0 8px 8px 0;
    color: #065f46;
    font-size: 14px;
    font-weight: 700;
}

.rk-dl-success-msg.show {
    display: block;
}

/* Stopka - Prawa autorskie */
.rk-dl-footer {
    padding: 20px 40px;
    background: var(--rk-dl-navy);
    color: #94a3b8;
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
    border-top: 1px solid var(--rk-dl-dark);
}

.rk-dl-footer strong {
    color: #ffffff;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-actions-box, .rk-dl-footer { padding: 25px 20px; }
    .rk-dl-header h2 { font-size: 22px; }
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-thumbnail-box { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 20px; }
    .rk-dl-image { max-width: 250px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Pobierz darmowe materiały: Infografika i parametry projektowe",
    "description": "Zestawienie wizualne najważniejszych parametrów dla ogrzewania podłogowego. Pobierz infografikę edukacyjną w formacie PDF lub wyświetl obraz w pełnej rozdzielczości.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Niska-temperatura-zasilania-pompy-ciepla-%E2%80%93-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-infografika",
    "name": "Infografika: Parametry Niskotemperaturowe Ogrzewania Podłogowego 35°C",
    "description": "Wizualne zestawienie techniczne ilustrujące zależności między temperaturą zasilania a współczynnikiem COP pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika temperatura zasilania pompy ciepła",
      "parametry podłogówki schemat",
      "współczynnik COP tabela pdf",
      "krzywa grzewcza wykres pdf",
      "błędy instalacyjne ogrzewania obrazek"
    ],
    "measurementTechnique": "Kondensacja danych technicznych i wyliczeniowych OZC z normy PN-EN 12831 do wektorowej reprezentacji graficznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Skrócone kompendium zasad wyznaczania rozstawu rur podłogowych.",
        "Ilustracja obrazująca wpływ 45°C na żywotność wylewki i sprężarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp-pobieranie",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej (Download Center)",
    "description": "Narzędzie webowe udostępniające weryfikowalne materiały edukacyjne (PDF, WEBP) oparte o twarde obliczenia branży HVAC.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="materialy-do-pobrania">
    
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Pobierz darmowe materiały: Infografika i parametry projektowe
        </h2>
        <p>Wiedza inżynierska nie powinna zostawać tylko na ekranie. Przygotowałem dla Ciebie skondensowane podsumowanie tego artykułu w formie przejrzystej infografiki. Zabierz ją na budowę lub pokaż swojemu instalatorowi.</p>
    </div>

    <div class="rk-dl-body">
        
        <!-- Lewa Kolumna: Miniatura -->
        <div class="rk-dl-thumbnail-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Niska-temperatura-zasilania-pompy-ciepla-%E2%80%93-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp" alt="Miniatura: Niska temperatura zasilania pompy ciepła" class="rk-dl-image" loading="lazy">
            <div class="rk-dl-badge">Podgląd Materiału</div>
        </div>

        <!-- Prawa Kolumna: Akcje -->
        <div class="rk-dl-actions-box">
            <h3 class="rk-dl-title">Złote zasady parametru 35°C w pigułce</h3>
            <p class="rk-dl-desc">Plik zawiera gotowe zestawienia rozstawu rur, wyliczenia sprawności COP oraz kluczowe błędy, których musisz unikać przy zlecaniu robót instalacyjnych. Zachowaj ten plik jako punkt odniesienia podczas odbioru instalacji w Twoim domu.</p>
            
            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Niska-temperatura-zasilania-pompy-ciepla-%E2%80%93-dlaczego-35-stopni-to-ideal-dla-podlogowki.pdf" target="_blank" rel="noopener" class="rk-dl-btn rk-dl-btn-pdf" id="rkActionPdf">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    Pobierz dokument PDF (Wysoka jakość)
                </a>
                
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Niska-temperatura-zasilania-pompy-ciepla-%E2%80%93-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp" target="_blank" rel="noopener" class="rk-dl-btn rk-dl-btn-img" id="rkActionImg">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz grafikę w nowej karcie
                </a>
            </div>

            <div class="rk-dl-success-msg" id="rkSuccessMessage">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="vertical-align: middle; margin-right: 5px;"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Plik otworzy się w nowym oknie. Dziękuję za zaufanie do materiałów Projekt-Ogrzewania.pl.
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong> <br>
        Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPdf = document.getElementById('rkActionPdf');
    var btnImg = document.getElementById('rkActionImg');
    var successMsg = document.getElementById('rkSuccessMessage');

    // Funkcja pokazująca komunikat po kliknięciu bez znaków && i bez animacji
    function showSuccessMessage() {
        if (successMsg !== null) {
            successMsg.className = 'rk-dl-success-msg show';
        }
    }

    if (btnPdf !== null) {
        btnPdf.addEventListener('click', showSuccessMessage);
    }
    
    if (btnImg !== null) {
        btnImg.addEventListener('click', showSuccessMessage);
    }
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

.rk-final-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-sum-blue);
    overflow: hidden;
}

/* Wstęp sekcji podsumowującej */
.rk-final-header {
    padding: 40px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-final-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-final-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
    margin: 0 0 15px 0;
}

.rk-final-header strong {
    color: var(--rk-sum-dark);
    font-weight: 800;
}

/* Symulator interaktywny */
.rk-final-interactive {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #f8fafc, #f1f5f9);
}

.rk-sim-dashboard {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 30px -5px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-sum-border);
}

.rk-sim-controls {
    margin-bottom: 30px;
}

.rk-sim-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin-bottom: 15px;
    font-size: 18px;
}

.rk-sim-slider-value {
    background: var(--rk-sum-blue);
    color: white;
    padding: 5px 15px;
    border-radius: 999px;
    font-size: 20px;
}

.rk-range {
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: #e2e8f0;
    outline: none;
    -webkit-appearance: none;
    transition: all 0.3s;
}

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--rk-sum-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.rk-range::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Wyniki symulatora */
.rk-sim-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-metric-card {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid var(--rk-sum-border);
    text-align: center;
    transition: all 0.4s ease;
}

.rk-metric-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.rk-metric-value {
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 5px;
    transition: color 0.3s;
}

.rk-metric-desc {
    font-size: 13px;
    font-weight: 600;
}

/* Tagi pod SEO */
.rk-tags-section {
    padding: 20px 50px 0;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(2, 132, 199, 0.2);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-sum-blue);
    color: #ffffff;
}

/* Sekcja CTA */
.rk-final-cta {
    padding: 40px 50px;
    background: #ffffff;
    text-align: center;
}

.rk-cta-wrapper {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    border-radius: 20px;
    padding: 40px 30px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-cta-wrapper::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(2,132,199,0.15) 0%, transparent 60%);
}

.rk-cta-wrapper h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-cta-wrapper p {
    color: #cbd5e1;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 auto 30px auto;
    max-width: 600px;
    position: relative;
    z-index: 2;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-sum-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}

.rk-btn-cta:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-final-header, .rk-final-interactive, .rk-tags-section, .rk-final-cta {
        padding: 30px 20px;
    }
    .rk-sim-metrics {
        grid-template-columns: 1fr; /* Pionowy układ na mobile */
        gap: 15px;
    }
    .rk-final-header h2 { font-size: 24px; }
    .rk-btn-cta { width: 100%; padding: 16px 20px; font-size: 15px; }
    .rk-sim-slider-label { flex-direction: column; gap: 10px; align-items: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Podsumowanie – dlaczego 35°C to technologiczny ideał?",
    "description": "Zrozumienie zależności między temperaturą zasilania a współczynnikiem COP. Zobacz dlaczego projekt ogrzewania definiuje wydajność pompy ciepła na lata.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-11",
    "dateModified": "2026-07-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset",
    "name": "Wskaźnik COP i Kosztów Eksploatacji przy Zasilaniu 35°C vs 45°C",
    "description": "Dane z symulacji ukazujące drastyczny spadek współczynnika SCOP oraz wzrost kosztów rachunków za prąd przy nieprawidłowo zaprojektowanym rozstawie rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik COP pompy ciepła",
      "temperatura zasilania podłogówki",
      "zużycie prądu pompa ciepła",
      "koszty ogrzewania 2026",
      "sprawność sprężarki"
    ],
    "measurementTechnique": "Algorytm korelacji temperatury czynnika chłodniczego z ciśnieniem skraplania i poborem mocy sprężarki w warunkach A2W35-A2W45.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Punkt pracy 35°C: Idealny COP 4.6, minimalne obciążenie instalacji i rachunki.",
        "Punkt pracy 45°C: Krytyczny spadek COP do 3.1, ryzyko przegrzewu i wysokie koszty."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp",
    "name": "Symulator Fizyki Instalacji Niskotemperaturowej",
    "description": "Interaktywny panel pozwalający inwestorowi na symulację zmian współczynnika efektywności COP pompy ciepła w zależności od zadanej temperatury zasilania na rozdzielaczu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="podsumowanie-35">
    <div class="rk-final-header">
        <h2>Podsumowanie – dlaczego 35°C to technologiczny ideał?</h2>
        <p>Parametr zasilania <strong>35°C</strong> nie jest chwilową modą rynkową, lecz wynikiem czystej optymalizacji inżynierskiej. Stanowi on barierę ochronną dla Twojego budżetu (maksymalny współczynnik COP/SCOP), gwarantuje bezawaryjną pracę sprężarki przez długie lata oraz chroni delikatne materiały wykończeniowe (wylewki, drewno, panele) przed destrukcją termiczną.</p>
        <p>Pamiętaj jednak o złotej zasadzie: <strong>pompą ciepła steruje fizyka, a fizyką instalacji steruje projekt</strong>. Próba ułożenia ogrzewania podłogowego bez dokładnych wyliczeń hydraulicznych, bez <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" target="_blank" rel="noopener">znajomości OZC budynku</a> i bez precyzyjnie określonych pętli to najprostsza droga do podniesienia temperatury zasilania do 45°C i bezpowrotnego zmarnowania potencjału pompy ciepła. Inwestycja w rzetelny projekt inżynierski to jedyna gwarancja, że Twoja instalacja będzie pracować na idealnym, ultra-oszczędnym parametrze 35°C.</p>
    </div>

    <div class="rk-final-interactive">
        <div class="rk-sim-dashboard">
            <div class="rk-sim-controls">
                <div class="rk-sim-slider-label">
                    <span>Ustaw temperaturę zasilania:</span>
                    <span class="rk-sim-slider-value" id="rkSimTempValue">35°C</span>
                </div>
                <input type="range" min="30" max="45" value="35" step="1" class="rk-range" id="rkTempSlider">
            </div>

            <div class="rk-sim-metrics">
                <div class="rk-metric-card" id="rkCardCOP">
                    <div class="rk-metric-title">Szacunkowy COP (Sprawność)</div>
                    <div class="rk-metric-value" id="rkValCOP">4.6</div>
                    <div class="rk-metric-desc" id="rkDescCOP" style="color: var(--rk-sum-green);">Maksymalna wydajność sprężarki</div>
                </div>
                <div class="rk-metric-card" id="rkCardStan">
                    <div class="rk-metric-title">Stan Instalacji / Portfel</div>
                    <div class="rk-metric-value" id="rkValStan" style="font-size: 24px;">Bezpieczny</div>
                    <div class="rk-metric-desc" id="rkDescStan" style="color: var(--rk-sum-gray);">Niskie rachunki, chroniona wylewka</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># niska temperatura zasilania pompy ciepła</span>
        <span class="rk-mat-tag"># optymalna temperatura zasilania ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># współczynnik COP pompy ciepła a rachunki</span>
        <span class="rk-mat-tag"># obliczenia OZC pod pompę ciepła</span>
        <span class="rk-mat-tag"># projekt instalacji ogrzewania płaszczyznowego</span>
        <span class="rk-mat-tag"># zabezpieczenie wylewki przed pękaniem</span>
        <span class="rk-mat-tag"># ekonomiczne sterowanie krzywą grzewczą</span>
        <span class="rk-mat-tag"># profesjonalny projekt ogrzewania podłogowego</span>
    </div>

    <div class="rk-final-cta">
        <div class="rk-cta-wrapper">
            <h3>Buduj świadomie, nie płać za błędy</h3>
            <p>Ten artykuł to tylko wierzchołek góry lodowej. Na moim blogu rozkładam na czynniki pierwsze zaawansowane parametry hydrauliczne, omawiam ukryte pułapki rzadkiego orurowania i pokazuję, jak profesjonalny projekt optymalizuje każdy m² Twojej posadzki pod pompę ciepła.</p>
            <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
                CZYTAJ DALEJ NA BLOGU
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkTempSlider');
    var tempValDisplay = document.getElementById('rkSimTempValue');
    
    // Zmienne DOM
    var cardCOP = document.getElementById('rkCardCOP');
    var valCOP = document.getElementById('rkValCOP');
    var descCOP = document.getElementById('rkDescCOP');
    
    var cardStan = document.getElementById('rkCardStan');
    var valStan = document.getElementById('rkValStan');
    var descStan = document.getElementById('rkDescStan');

    function updateSimulation(temp) {
        tempValDisplay.textContent = temp + '°C';

        // Używamy bezpiecznych instrukcji warunkowych bez znaków "&&" ograniczając problemy z parserami
        if (temp <= 35) {
            valCOP.textContent = '4.6';
            valCOP.style.color = 'var(--rk-sum-green)';
            descCOP.textContent = 'Maksymalna wydajność sprężarki';
            descCOP.style.color = 'var(--rk-sum-green)';
            cardCOP.style.borderColor = 'var(--rk-sum-green)';

            valStan.textContent = 'Bezpieczny';
            valStan.style.color = 'var(--rk-sum-green)';
            descStan.textContent = 'Niskie rachunki, chroniona wylewka';
            cardStan.style.borderColor = 'var(--rk-sum-border)';
            slider.style.background = 'var(--rk-sum-blue)';
        }
        
        if (temp > 35) {
            if (temp <= 40) {
                valCOP.textContent = '3.8';
                valCOP.style.color = 'var(--rk-sum-gold)';
                descCOP.textContent = 'Zauważalny spadek efektywności';
                descCOP.style.color = 'var(--rk-sum-gold)';
                cardCOP.style.borderColor = 'var(--rk-sum-gold)';

                valStan.textContent = 'Uwaga na koszty';
                valStan.style.color = 'var(--rk-sum-gold)';
                descStan.textContent = 'Rachunki rosną, sprężarka taktuje';
                cardStan.style.borderColor = 'var(--rk-sum-border)';
                slider.style.background = 'var(--rk-sum-gold)';
            }
        }
        
        if (temp > 40) {
            valCOP.textContent = '3.1';
            valCOP.style.color = 'var(--rk-sum-red)';
            descCOP.textContent = 'Krytycznie niskie SCOP';
            descCOP.style.color = 'var(--rk-sum-red)';
            cardCOP.style.borderColor = 'var(--rk-sum-red)';

            valStan.textContent = 'Niebezpieczeństwo';
            valStan.style.color = 'var(--rk-sum-red)';
            descStan.textContent = 'Ryzyko pęknięć wylewki i ogromne rachunki';
            cardStan.style.borderColor = 'var(--rk-sum-red)';
            slider.style.background = 'var(--rk-sum-red)';
        }
    }

    slider.addEventListener('input', function() {
        var temp = parseInt(this.value, 10);
        updateSimulation(temp);
    });

    // Inicjalizacja bazowa
    updateSimulation(35);
});
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* RWD - Mobile */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article-wsparcie",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
      },
      "headline": "Wspieraj rzetelną inżynierię HVAC: Projekt-Ogrzewania.pl w Twoich źródłach",
      "description": "Dodaj nasze inżynierskie poradniki o pompach ciepła i optymalizacji ogrzewania podłogowego (parametr 35°C) do preferowanych wyników wyszukiwania Google.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-11",
      "dateModified": "2026-07-11"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset-wsparcie",
      "name": "Preferencje Eksperckich Źródeł HVAC - Baza Wiedzy Niskotemperaturowej",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla twardych, inżynierskich treści o pompach ciepła.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "projektowanie instalacji niskotemperaturowych",
        "zaufane źródła google hvac",
        "ekspert ogrzewania podłogowego",
        "optymalna temperatura pompy ciepła",
        "rzetelne poradniki budowlane"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle powiązanych z merytorycznymi artykułami o optymalizacji OZC i pomp ciepła.",
      "mainEntity": "Optymalizacja zaangażowania użytkownika szukającego rzetelnej wiedzy o temperaturze zasilania 35°C poprzez widget preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapplication-wsparcie",
      "name": "Widget Preferencji Źródeł OZC i HVAC",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik, integrująca ustawienia preferowanych źródeł Google z eksperckim portalem inżynieryjnym.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">Niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 10:11:32 +0000</pubDate>
				<category><![CDATA[Błędy budowlane]]></category>
		<category><![CDATA[Błędy instalacyjne]]></category>
		<category><![CDATA[Domy drewniane]]></category>
		<category><![CDATA[Domy szkieletowe]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty budowy domu]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy zabudowy suchej]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[błędy instalacyjne]]></category>
		<category><![CDATA[dom drewniany]]></category>
		<category><![CDATA[dom szkieletowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[lamele aluminiowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4030</guid>

					<description><![CDATA[<p>Planowanie instalacji grzewczej w budynku o lekkiej konstrukcji drewnianej wymaga zupełnie innego podejścia niż w tradycyjnym budownictwie murowanym. Niska bezwładność cieplna, brak ciężkich ścian akumulujących energię oraz ryzyko przeciążenia stropów sprawiają, że standardowe schematy instalatorów często tutaj zawodzą. W tym artykule bierzemy pod lupę temat, jakim jest ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki, na które najczęściej wpadają inwestorzy. Dowiesz się, dlaczego system suchy deklasuje ciężką wylewkę, jak uniknąć kosztownego przewymiarowania rur, dlaczego optymalizacja temperatury zasilania jest kluczowa dla żywotności pompy ciepła, oraz o co dokładnie zapytać wykonawcę przed podpisaniem umowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-gold: #eab308;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-red: #ef4444;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-intro-border);
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.1);
    overflow: hidden;
}

/* Górna część - Hook i Szybka odpowiedź */
.rk-intro-header {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
}

.rk-intro-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-intro-hook {
    font-size: 18px;
    font-weight: 600;
    color: #cbd5e1;
    margin: 0 0 30px 0;
    line-height: 1.6;
    border-left: 4px solid var(--rk-intro-gold);
    padding-left: 20px;
}

/* Moduł "Szybka Odpowiedź" */
.rk-quick-answer {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 25px 30px;
}

.rk-qa-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-intro-gold);
    margin: 0 0 15px 0;
    letter-spacing: 1px;
}

.rk-quick-answer p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #f8fafc;
}

.rk-quick-answer strong {
    color: #38bdf8;
    font-weight: 800;
}

/* Dolna część - Mapa Artykułu (Interaktywna) */
.rk-intro-nav-wrapper {
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-nav-title {
    padding: 25px 50px 0 50px;
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-intro-nav {
    display: flex;
    padding: 20px 50px;
    gap: 15px;
}

.rk-intro-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 800;
    font-size: 15px;
    color: #64748b;
    text-align: left;
    /* BRAK ANIMACJI - natychmiastowa zmiana stanu */
}

.rk-intro-btn:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: var(--rk-intro-dark);
}

.rk-intro-btn.active {
    background: var(--rk-intro-blue);
    border-color: var(--rk-intro-blue);
    color: #ffffff;
}

.rk-intro-btn svg {
    flex-shrink: 0;
}

/* Obszar paneli informacyjnych */
.rk-intro-content {
    padding: 35px 50px;
    background: #ffffff;
}

.rk-intro-panel {
    display: none;
    /* BRAK ANIMACJI */
}

.rk-intro-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-intro-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin: 0 0 15px 0;
}

.rk-intro-panel a {
    color: var(--rk-intro-blue);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-intro-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-feature-card {
    background: #f8fafc;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 12px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.rk-feature-icon {
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.rk-feature-text h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-feature-text p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-nav-title, .rk-intro-nav, .rk-intro-content { padding: 25px 20px; }
    .rk-intro-nav { flex-direction: column; gap: 10px; }
    .rk-intro-btn { width: 100%; padding: 15px 20px; }
    .rk-intro-features { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki",
    "description": "Kompendium wiedzy: dlaczego lekki szkielet drewniany wymaga zasilania 28-32°C oraz systemów suchych. Sprawdź, jak unikać błędów niszczących COP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wstep",
    "name": "Kluczowe Parametry Ogrzewania Podłogowego w Lekkim Szkielecie",
    "description": "Zestawienie wytycznych brzegowych dotyczących temperatur, mocy jednostkowej oraz zaleceń statycznych dla drewnianych konstrukcji domów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w domu szkieletowym",
      "niska bezwładność cieplna budynku",
      "temperatura zasilania podłogówki 30 stopni",
      "spadek efektywności cop pompy ciepła",
      "system suchy ogrzewania podłogowego wady i zalety"
    ],
    "measurementTechnique": "Określenie brzegowych parametrów wydajnościowych (zakres 28-32 C) i obciążeniowych (40-60 W/m2) na bazie fizyki cieplnej konstrukcji lekkich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagana temperatura zasilania czynnika grzewczego: 28 do 32 stopni Celsjusza.",
        "Maksymalne bezpieczne obciążenie jednostkowe posadzki: od 40 do 60 W/m2.",
        "Współczynnik przenikania ciepła ścian U w szkielecie: poniżej 0,12 W/m2K.",
        "Brak zrównoważenia OZC skutkuje drastycznym spadkiem sprawności (COP) pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora HVAC",
    "description": "Narzędzie wprowadzające inwestora w tematykę artykułu, agregujące dostęp do kalkulatorów obciążeń, symulatorów hydrauliki i diagramów strat ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-article-intro">
    
    <!-- Hook i Szybka Odpowiedź -->
    <div class="rk-intro-header">
        <h2>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki</h2>
        
        <div class="rk-intro-hook">
            Większość wykonawców przenosi nawyki z budownictwa murowanego na lekkie konstrukcje drewniane. To najszybsza droga do pękania posadzek, przegrzewania wnętrz i uszkodzenia pompy ciepła. Poznaj inną fizykę budowli.
        </div>
        
        <div class="rk-quick-answer">
            <div class="rk-qa-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                Szybka odpowiedź eksperta
            </div>
            <p>Ogrzewanie podłogowe w domu szkieletowym to ultra-niskotemperaturowy system płaszczyznowy. Wymaga on drastycznej redukcji temperatury zasilania do zakresu <strong>28–32°C</strong> oraz precyzyjnego ograniczenia obciążenia jednostkowego do <strong>40–60 W/m²</strong>. Kluczem do sukcesu jest rezygnacja z ciężkich betonowych wylewek na rzecz systemów suchych oraz projektowanie przepływów na twardych liczbach, a nie na tzw. &#8222;oku&#8221; instalatora.</p>
        </div>
    </div>

    <!-- Mapa Artykułu / Teaser Narzędzi -->
    <div class="rk-intro-nav-wrapper">
        <h3 class="rk-intro-nav-title">Co znajdziesz w tym kompendium? Wybierz sekcję:</h3>
        <div class="rk-intro-nav">
            <button class="rk-intro-btn active" onclick="switchIntroPanel('introTheory', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                Fizyka Szkieletu
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introTools', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Kalkulatory i Symulatory
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introErrors', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Diagnoza Błędów
            </button>
        </div>
    </div>

    <!-- Panele informacyjne -->
    <div class="rk-intro-content">
        
        <!-- Panel 1: Fizyka -->
        <div class="rk-intro-panel" id="introTheory" style="display: block;">
            <h3>Lekki szkielet to inna gra</h3>
            <p>W przeciwieństwie do tradycyjnego budownictwa murowanego, lekki szkielet drewniany charakteryzuje się niemal zerową bezwładnością cieplną oraz skrajnie niskim oporem cieplnym przegród (współczynnik przenikania U wynosi często poniżej 0,12 W/m²·K). Zrozumienie, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>, pozwoli Ci uniknąć zjawiska uciążliwego &#8222;przegrzewania&#8221; domu przy pierwszych promieniach słonecznych.</p>
        </div>

        <!-- Panel 2: Narzędzia -->
        <div class="rk-intro-panel" id="introTools">
            <h3>Sprawdź parametry swojego domu na żywo</h3>
            <p>Ten artykuł to nie tylko sucha teoria. Przewijając w dół, uzyskasz dostęp do wbudowanych interaktywnych narzędzi, dzięki którym samodzielnie wykonasz podstawowy audyt planowanej inwestycji.</p>
            <div class="rk-intro-features">
                <div class="rk-feature-card">
                    <div class="rk-feature-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                    </div>
                    <div class="rk-feature-text">
                        <h4>Symulator OZC</h4>
                        <p>Dowiedz się dokładnie, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a> i przelicz moc dla swojego metrażu.</p>
                    </div>
                </div>
                <div class="rk-feature-card">
                    <div class="rk-feature-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-feature-text">
                        <h4>Kalkulator Parametrów</h4>
                        <p>Zoptymalizuj rozstaw rur, aby <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania pompy ciepła (do 35 stopni)</a> stała się faktem.</p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel 3: Błędy -->
        <div class="rk-intro-panel" id="introErrors">
            <h3>Wyeliminuj patologie wykonawcze</h3>
            <p>Zastosowanie klasycznych, ciężkich jastrychów cementowych bez uprzedniej analizy statycznej belek, oraz brak hydraulicznego zrównoważenia pętli, to najczęstsze błędy &#8222;fachowców&#8221;. Prowadzą one bezpośrednio do pękania wykończenia posadzek, braku sterowalności oraz drastycznego spadku efektywności (COP) pompy ciepła. W tym materiale obalamy mity i pokazujemy rozwiązania ratujące portfel.</p>
        </div>

    </div>
</div>

<script>
function switchIntroPanel(panelId, btnElement) {
    // 1. Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-intro-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // 3. Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-intro-content');
    var allPanels = contentArea.getElementsByClassName('rk-intro-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie celu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-wgt-dark: #0f172a;
    --rk-wgt-blue: #0284c7;
    --rk-wgt-blue-light: #f0f9ff;
    --rk-wgt-gold: #eab308;
    --rk-wgt-bg: #ffffff;
    --rk-wgt-border: #e2e8f0;
    --rk-wgt-text: #475569;
    --rk-wgt-red: #ef4444;
    --rk-wgt-red-bg: #fef2f2;
    --rk-wgt-green: #10b981;
    --rk-wgt-green-bg: #f0fdf4;
}

.rk-wgt-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wgt-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-wgt-border);
    overflow: hidden;
}

/* Header */
.rk-wgt-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-wgt-border);
}

.rk-wgt-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-wgt-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-wgt-header p {
    font-size: 16px;
    color: var(--rk-wgt-text);
    line-height: 1.7;
    margin: 0;
}

/* Interaktywny Panel Wyboru (Poziomo na desktop, pionowo na mobile) */
.rk-wgt-nav {
    display: flex;
    flex-direction: row;
    background: #f8fafc;
    padding: 25px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-wgt-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 20px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-wgt-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-tech-btn:hover {
    background: var(--rk-wgt-blue-light);
    border-color: #cbd5e1;
}

.rk-tech-btn.active {
    border-color: var(--rk-wgt-blue);
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    transform: translateY(-3px);
}

.rk-tech-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 12px;
    transition: all 0.3s;
}

.rk-tech-btn.active .rk-tech-icon {
    background: var(--rk-wgt-blue);
    color: #ffffff;
}

.rk-tech-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

.rk-tech-btn.active .rk-tech-title {
    color: var(--rk-wgt-dark);
}

/* Wizualizator Metryk (Kafelki) */
.rk-wgt-dashboard {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

.rk-dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-metric-card {
    padding: 25px 20px;
    border-radius: 16px;
    border: 2px solid;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.4s ease;
}

.rk-metric-card svg {
    margin-bottom: 12px;
}

.rk-metric-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.rk-metric-val {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
}

/* Dynamiczne stany kafelków */
.state-good {
    background: var(--rk-wgt-green-bg);
    border-color: rgba(16, 185, 129, 0.3);
}
.state-good svg { color: var(--rk-wgt-green); }
.state-good .rk-metric-val { color: var(--rk-wgt-green); }

.state-warn {
    background: #fef9c3;
    border-color: rgba(234, 179, 8, 0.4);
}
.state-warn svg { color: var(--rk-wgt-gold); }
.state-warn .rk-metric-val { color: #ca8a04; }

.state-bad {
    background: var(--rk-wgt-red-bg);
    border-color: rgba(239, 68, 68, 0.3);
}
.state-bad svg { color: var(--rk-wgt-red); }
.state-bad .rk-metric-val { color: var(--rk-wgt-red); }

/* Treść inżynieryjna - Układ jednokolumnowy */
.rk-wgt-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-wgt-section {
    margin-bottom: 40px;
}

.rk-wgt-section:last-child {
    margin-bottom: 0;
}

.rk-wgt-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-wgt-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-wgt-section h3 svg {
    color: var(--rk-wgt-blue);
}

.rk-wgt-section p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-wgt-text);
    margin: 0 0 15px 0;
}

.rk-wgt-section ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
    color: var(--rk-wgt-text);
}

.rk-wgt-section li {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 10px;
}

.rk-wgt-section li strong {
    color: var(--rk-wgt-dark);
}

.rk-wgt-section a {
    color: var(--rk-wgt-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-wgt-alert {
    background: var(--rk-wgt-red-bg);
    border-left: 4px solid var(--rk-wgt-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

.rk-wgt-alert p {
    margin: 0;
    color: #991b1b;
}

.rk-wgt-info {
    background: #f8fafc;
    border-left: 4px solid var(--rk-wgt-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-wgt-header, .rk-wgt-nav, .rk-wgt-dashboard, .rk-wgt-content { padding: 25px 20px; }
    
    /* Na mobile nawigacja układa się w pionie (jeden pod drugim) */
    .rk-wgt-nav { flex-direction: column; gap: 12px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-title { font-size: 16px; }
    
    /* Na mobile kafelki również jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-metric-card { flex-direction: row; justify-content: flex-start; gap: 15px; padding: 15px 20px; text-align: left; }
    .rk-metric-card svg { margin-bottom: 0; width: 32px; height: 32px; }
    .rk-metric-label { margin-bottom: 0; }
    
    .rk-wgt-section h3 { font-size: 20px; align-items: flex-start; }
    .rk-wgt-section h3 svg { flex-shrink: 0; margin-top: 3px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wylewka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?",
    "description": "Zestawienie obciążeń stropowych i wilgoci technologicznej. Sprawdź, dlaczego wylewka cementowa to zagrożenie dla drewna C24, a system suchy to konieczność.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wylewki",
    "name": "Obciążenia Statyczne i Wilgotnościowe Stropów Drewnianych",
    "description": "Baza danych parametrów granicznych dla drewnianych konstrukcji stropowych w odniesieniu do wylewek i suchych systemów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe w domu szkieletowym",
      "system suchy ogrzewania podłogowego waga",
      "ile waży jastrych cementowy",
      "wilgoć technologiczna w drewnie C24",
      "ogrzewanie na drewnianym stropie"
    ],
    "measurementTechnique": "Porównanie parametrów obciążeniowych (kg/m2) i objętości wody technologicznej w oparciu o normy PN-EN 1995-1-1 oraz PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Waga ~30 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych Anhydrytowy (40 mm): Waga ~100 kg/m2, Wilgoć ok. 1000 litrów, Reakcja 2-3 godz.",
        "Jastrych Cementowy (65 mm): Waga ~150 kg/m2, Wilgoć 1000-2500 litrów, Reakcja 4-6 godz."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wylewki",
    "name": "Wizualizator Obciążeń i Wilgoci Stropu Drewnianego",
    "description": "Interaktywne narzędzie prezentujące w czasie rzeczywistym ryzyka statyczne oraz poziomy wilgoci wprowadzanej do budynku zależnie od dobranej wylewki.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wgt-container" id="rk-floor-analyzer">
    
    <div class="rk-wgt-header">
        <h2>Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?</h2>
        <p>Bezpośrednia odpowiedź: <strong>Nie, dom szkieletowy nie wymaga klasycznej, ciężkiej wylewki cementowej.</strong> Najbardziej rekomendowaną technologią jest ultra-lekki system suchy zgodny z normą PN-EN 1264-4, który całkowicie eliminuje nadmierne obciążenie drewnianego stropu.</p>
    </div>

    <!-- Interaktywny Selektor -->
    <div class="rk-wgt-nav">
        <button class="rk-tech-btn active" onclick="updateFloorData('dry', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <span class="rk-tech-title">System Suchy<br>(Lamele Aluminiowe)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('anh', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
            </div>
            <span class="rk-tech-title">Jastrych Anhydryt.<br>(Płynny, 40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
            </div>
            <span class="rk-tech-title">Jastrych Cement.<br>(Tradycyjny, 65 mm)</span>
        </button>
    </div>

    <!-- Dashboard Parametrów -->
    <div class="rk-wgt-dashboard">
        <div class="rk-dash-grid">
            <div class="rk-metric-card state-good" id="cardWeight">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                <div class="rk-metric-label">Masa / Obciążenie</div>
                <div class="rk-metric-val" id="txtWeight">~30 kg/m²</div>
            </div>
            <div class="rk-metric-card state-good" id="cardMoist">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                <div class="rk-metric-label">Wilgoć do budynku</div>
                <div class="rk-metric-val" id="txtMoist">0 litrów</div>
            </div>
            <div class="rk-metric-card state-good" id="cardReact">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                <div class="rk-metric-label">Czas reakcji</div>
                <div class="rk-metric-val" id="txtReact">30 - 60 min</div>
            </div>
        </div>
    </div>

    <!-- Treść Inżynieryjna -->
    <div class="rk-wgt-content">
        
        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
                Charakterystyka techniczna systemu suchego
            </h3>
            <p>W systemie suchym (np. KISAN Comfort Floor Dry) rury grzewcze układane są w profilowanych płytach styropianowych (EPS 200–300 o wytrzymałości na ściskanie przy 10% odkształceniu równym 200–300 kPa). Ciepło z rury przekazywane jest do aluminiowych lameli transmisyjnych, które pokrywają do 80-90% powierzchni. Dzięki temu rozkład temperatury na posadzce jest równomierny, mimo całkowitego braku betonowej warstwy akumulacyjnej. Jeśli zastanawiasz się, <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy w wodnym ogrzewaniu podłogowym</a>, to wiedz, że to obecnie najbezpieczniejsza metoda dla drewna.</p>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Dlaczego jastrych cementowy to zagrożenie?
            </h3>
            
            <div class="rk-wgt-alert">
                <p><strong>Woda technologiczna (wilgoć budowlana):</strong> Wykonanie mokrej wylewki wiąże się z wprowadzeniem do wnętrza domu szkieletowego od 1000 do nawet 2500 litrów wody!</p>
            </div>
            
            <ul>
                <li>Elementem nośnym jest tu certyfikowane drewno C24 o wilgotności maksymalnej 16-18% (zgodnie z normą PN-EN 1995-1-1).</li>
                <li>Tak gwałtowny wzrost wilgotności powietrza grozi potężnym pęcznieniem drewna i utratą parametrów wełny mineralnej w ścianach. Przeczytaj dokładnie, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wpływa na wilgotność powietrza w domu</a>.</li>
                <li><strong>Przeciążenie statyczne:</strong> Drewniane belki są projektowane na obciążenia 1,5 do 2,0 kN/m². Dodanie 150 kg/m² wylewki cementowej o grubości 65 mm konsumuje niemal cały zapas nośności stropu! Poznaj zasady, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>.</li>
            </ul>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                Alternatywa: Cienka wylewka anhydrytowa
            </h3>
            <div class="rk-wgt-info">
                <p>Jeśli inwestor mimo wszystko decyduje się na wylewkę płynną, dopuszczalny jest wyłącznie jastrych anhydrytowy (samopoziomujący) o bardzo wysokim współczynniku przewodzenia ciepła lambda powyżej 1,6 W/(mK).</p>
            </div>
            <p>Dzięki wysokiej wytrzymałości na zginanie (klasa F5/F7 według PN-EN 13813), minimalna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki betonowej na ogrzewanie podłogowe</a> nad samą rurką grzewczą może wynosić zaledwie 30 mm. Zmniejsza to masę metra kwadratowego posadzki do około 100 kg/m² i znacząco skraca czas schnięcia w porównaniu do cementu.</p>
        </div>

    </div>
</div>

<script>
function updateFloorData(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Elementy DOM
    var cardWeight = document.getElementById('cardWeight');
    var cardMoist = document.getElementById('cardMoist');
    var cardReact = document.getElementById('cardReact');
    
    var txtWeight = document.getElementById('txtWeight');
    var txtMoist = document.getElementById('txtMoist');
    var txtReact = document.getElementById('txtReact');

    // 3. Logika zmiany danych (bez ampersandów)
    if (techId === 'dry') {
        txtWeight.textContent = '~30 kg/m²';
        cardWeight.className = 'rk-metric-card state-good';
        
        txtMoist.textContent = '0 litrów';
        cardMoist.className = 'rk-metric-card state-good';
        
        txtReact.textContent = '30 - 60 min';
        cardReact.className = 'rk-metric-card state-good';
    }
    
    if (techId === 'anh') {
        txtWeight.textContent = '~100 kg/m²';
        cardWeight.className = 'rk-metric-card state-warn';
        
        txtMoist.textContent = '~1000 litrów';
        cardMoist.className = 'rk-metric-card state-warn';
        
        txtReact.textContent = '2 - 3 godz.';
        cardReact.className = 'rk-metric-card state-warn';
    }
    
    if (techId === 'cem') {
        txtWeight.textContent = '>150 kg/m²';
        cardWeight.className = 'rk-metric-card state-bad';
        
        txtMoist.textContent = 'Nawet 2500 L';
        cardMoist.className = 'rk-metric-card state-bad';
        
        txtReact.textContent = '4 - 6 godz.';
        cardReact.className = 'rk-metric-card state-bad';
    }
}
</script>



<style>
:root {
    --rk-ins-dark: #0f172a;
    --rk-ins-blue: #0284c7;
    --rk-ins-blue-light: #e0f2fe;
    --rk-ins-gold: #eab308;
    --rk-ins-bg: #ffffff;
    --rk-ins-border: #e2e8f0;
    --rk-ins-text: #475569;
    --rk-ins-red: #ef4444;
    --rk-ins-green: #10b981;
}

.rk-ins-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-ins-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-ins-border);
    overflow: hidden;
}

/* Header */
.rk-ins-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-ins-border);
}

.rk-ins-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-ins-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-ins-header p {
    font-size: 16px;
    color: var(--rk-ins-text);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-ins-header strong {
    color: var(--rk-ins-dark);
}

/* Panel Suwaków - Symulator */
.rk-ins-simulator {
    background: var(--rk-ins-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-ins-gold);
}

.rk-sim-title {
    font-size: 18px;
    font-weight: 800;
    color: #f8fafc;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-sim-title svg { color: #38bdf8; }

.rk-sim-control {
    background: rgba(255,255,255,0.05);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 15px;
}

.rk-slider-val-badge {
    background: #38bdf8;
    color: var(--rk-ins-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 18px;
}

/* Suwak stylizowany */
.rk-ins-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-ins-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-ins-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-ins-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Dashboard Wyników na żywo */
.rk-ins-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dash-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #94a3b8;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-ins-red);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Treść inżynieryjna (Rozwinięcie) */
.rk-ins-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-ins-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ins-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-ins-content h3 svg { color: var(--rk-ins-blue); }

.rk-ins-math-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-ins-blue);
    padding: 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
}

.rk-ins-math-line {
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-ins-dark);
    margin: 0 0 10px 0;
    background: #e2e8f0;
    padding: 5px 10px;
    display: inline-block;
    border-radius: 6px;
}

.rk-ins-content p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-ins-text);
    margin: 0 0 20px 0;
}

.rk-ins-content a {
    color: var(--rk-ins-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-ins-consequences {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
}

.rk-cons-box {
    padding: 25px;
    border-radius: 16px;
    background: #fef2f2;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.rk-cons-box h4 {
    color: var(--rk-ins-red);
    font-size: 17px;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-cons-box p {
    font-size: 15px;
    margin: 0;
    color: var(--rk-ins-text);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-ins-header, .rk-ins-simulator, .rk-ins-content { padding: 30px 20px; }
    .rk-ins-dashboard { grid-template-columns: 1fr; gap: 10px; }
    .rk-ins-consequences { grid-template-columns: 1fr; }
    .rk-dash-val { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?",
    "description": "Kalkulator izolacji podłoża. Sprawdź, dlaczego 18-20 cm styropianu to absolutne minimum, aby uniknąć 25% strat ciepła do gruntu i obniżenia COP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-izolacja",
    "name": "Parametry Izolacyjności Termicznej EPS pod Ogrzewanie Podłogowe",
    "description": "Baza parametrów fizycznych określających opór cieplny (R) i spadek efektywności cieplnej w zależności od grubości styropianu aplikowanego na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość styropianu pod podłogówkę",
      "opór cieplny izolacji fundamentu",
      "straty ciepła do gruntu",
      "współczynnik przewodzenia ciepła styropianu",
      "ogrzewanie podłogowe na gruncie"
    ],
    "measurementTechnique": "Modelowanie utraty ciepła z wykorzystaniem wzoru na opór cieplny R = d/lambda w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany opór cieplny R podłogi na gruncie przy pompie ciepła: powyżej 4,5 (m2*K)/W.",
        "Straty ciepła do gruntu przy grubości izolacji 10 cm osiągają poziom od 18% do 25%.",
        "Zalecana grubość EPS 100 lambda 0,031: 18 cm do 20 cm.",
        "Zastosowanie cieńszej izolacji wymusza podbicie temperatury zasilania do 40°C, co obniża współczynnik SCOP pompy o około 15%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-izolacja",
    "name": "Symulator Strat Ciepła do Gruntu",
    "description": "Interaktywny kalkulator szacujący ucieczkę energii grzewczej do fundamentu w zależności od dobranej grubości izolacji styropianowej EPS.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ins-container" id="rk-insulation-sim">
    <div class="rk-ins-header">
        <h2>Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?</h2>
        <p>Bezpośrednia odpowiedź: Na płycie fundamentowej lub stropie nad gruntem należy zastosować izolację termiczną o łącznym oporze cieplnym <strong>R rzędu 4,5 (m²·K)/W</strong> lub więcej. W praktyce oznacza to montaż minimum <strong>18–20 cm twardego styropianu</strong> klasy EPS 100-035 lub EPS 100-031 (grafitowego), co gwarantuje ograniczenie strat ciepła do gruntu do bezpiecznego poziomu 5–8% mocy instalacji.</p>
    </div>

    <!-- Symulator Na Żywo -->
    <div class="rk-ins-simulator">
        <h3 class="rk-sim-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Symulator ucieczki ciepła do gruntu
        </h3>
        
        <div class="rk-sim-control">
            <div class="rk-slider-label">
                <span>Wybierz grubość układanego styropianu (EPS grafit λ=0,031):</span>
                <span class="rk-slider-val-badge" id="insVal">20 cm</span>
            </div>
            <input type="range" class="rk-ins-range" id="insSlider" min="5" max="25" step="1" value="20" oninput="runInsSim()">
        </div>

        <div class="rk-ins-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Opór Cieplny (R)</div>
                <div class="rk-dash-val" id="resR" style="color: #38bdf8;">6.45</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Straty w dół (%)</div>
                <div class="rk-dash-val" id="resLoss" style="color: #10b981;">~6%</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wydajność pompy (COP)</div>
                <div class="rk-dash-val" id="resCop" style="color: #10b981;">Optymalna</div>
            </div>
            <div class="rk-dash-alert" id="insAlert">
                ⚠️ KRYTYCZNY BŁĄD IZOLACJI: Ucieczka energii do fundamentu jest gigantyczna. Płacisz za ogrzewanie ziemi pod budynkiem, a nie pokoju!
            </div>
        </div>
    </div>

    <!-- Wyjaśnienie inżynierskie i linki SEO -->
    <div class="rk-ins-content">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Wyliczenie strat ciepła z fizyki budowli
        </h3>
        
        <p>Zgodnie z normą PN-EN 1264-4, dla stropów graniczących z gruntem lub przestrzenią nieogrzewaną, minimalny opór cieplny izolacji wynosi R = 2,25 (m²·K)/W. Jednak przy dzisiejszych standardach i pompach ciepła dążymy do maksymalizacji efektywności, co stawia to wymaganie o wiele wyżej.</p>
        
        <div class="rk-ins-math-box">
            <div class="rk-ins-math-line">Wzór: R = Grubość (d) / Lambda (λ)</div>
            <div class="rk-ins-math-line">R = 0,18 m / 0,031 W/(m·K) = 5,80 (m²·K)/W</div>
            <p style="margin: 15px 0 0 0; font-size: 14px;">Dodając opory przejmowania ciepła posadzki, osiągamy znakomity współczynnik przenikania ciepła podłogi na gruncie U = 0,15 W/(m²·K).</p>
        </div>

        <p>Chcesz mieć pewność, że wykonawca nie zaniża norm? Dokładnie ten sam mechanizm fizyki stosuje się przy bardzo popularnych rozwiązaniach wylewanych wprost na ziemi – poznaj detale sprawdzając <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">ogrzewanie podłogowe w płycie fundamentowej</a>.</p>

        <div class="rk-ins-consequences">
            <div class="rk-cons-box">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Wzrost strat w grunt o 18–25%
                </h4>
                <p>Ciepło generowane przez rury migruje zawsze w kierunku o najmniejszym oporze termicznym. Zamiast iść w górę do pokoju, przy zbyt cienkim materiale izolacyjnym ogrzewasz beton pod budynkiem. Koniecznie sprawdź pełen zbiór zasad dotyczących tego, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> rekomendują inżynierowie.</p>
            </div>
            <div class="rk-cons-box">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Zapaść efektywności (SCOP)
                </h4>
                <p>Aby nadrobić ucieczkę energii w dół i zachować 20°C w pokoju, instalator podniesie Ci temperaturę zasilania z 30°C do np. 38°C. Pamiętaj, że ostateczny <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R (m²K)/W to klucz do efektywności</a>, a jego obniżenie powoduje roczny spadek sprawności pompy (COP) nawet o 15–20%.</p>
            </div>
        </div>
        
        <p style="margin-top: 25px;">Chcesz zobaczyć, jak decyzje o dociepleniu i precyzyjnych rozstawach wpływają bezpośrednio na Twoje portfele przez kolejne dekady? Przeanalizujmy <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rzeczywiste oszczędności na kosztach ogrzewania w skali roku</a> na przykładzie prawdziwego domu.</p>

    </div>
</div>

<script>
function runInsSim() {
    // 1. Pobranie danych wejściowych
    var thicknessCm = parseFloat(document.getElementById('insSlider').value);
    
    // 2. Aktualizacja labela nad suwakiem
    document.getElementById('insVal').textContent = thicknessCm + ' cm';
    
    // 3. Model matematyczny
    var thicknessM = thicknessCm / 100;
    var lambda = 0.031; // EPS 100 Grafit
    var resistance = thicknessM / lambda;
    
    // Uproszczony model strat ciepła w dół do celów demonstracyjnych
    // Założenie: 5 cm to ~35% strat, 10 cm to ~22%, 18 cm to ~7%, 25 cm to ~4%.
    var lossPercent = 0;
    var copStatus = "";
    var alertDisplay = "none";
    var lossColor = "";
    var copColor = "";

    // Logika warunkowa bez podwójnych ampersandów
    if (thicknessCm < 10) {
        lossPercent = 35 - (thicknessCm - 5) * 2; 
        copStatus = "Spadek -25%";
        alertDisplay = "block";
        lossColor = "#ef4444"; // Czerwony
        copColor = "#ef4444";
    } else {
        if (thicknessCm < 15) {
            lossPercent = 25 - (thicknessCm - 10) * 1.5;
            copStatus = "Spadek -15%";
            alertDisplay = "block";
            lossColor = "#eab308"; // Zółty/Gold
            copColor = "#eab308";
        } else {
            if (thicknessCm < 18) {
                lossPercent = 17 - (thicknessCm - 15) * 1.5;
                copStatus = "Dopuszczalna";
                alertDisplay = "none";
                lossColor = "#eab308"; 
                copColor = "#10b981"; // Zielony
            } else {
                lossPercent = 12 - (thicknessCm - 18) * 1;
                copStatus = "Optymalna";
                alertDisplay = "none";
                lossColor = "#10b981"; 
                copColor = "#10b981";
            }
        }
    }
    
    // Zabezpieczenie minimalnej wartości utraty (zawsze jakieś straty są)
    if (lossPercent < 4) {
        lossPercent = 4;
    }

    // 4. Aktualizacja Dashboardu
    document.getElementById('resR').textContent = resistance.toFixed(2);
    
    var elLoss = document.getElementById('resLoss');
    elLoss.textContent = '~' + Math.round(lossPercent) + '%';
    elLoss.style.color = lossColor;
    
    var elCop = document.getElementById('resCop');
    elCop.textContent = copStatus;
    elCop.style.color = copColor;
    
    document.getElementById('insAlert').style.display = alertDisplay;
}

// Inicjalizacja przy ładowaniu strony (ustawia domyślne 20 cm)
runInsSim();
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #f0f9ff;
    --rk-flow-gold: #eab308;
    --rk-flow-bg: #ffffff;
    --rk-flow-border: #e2e8f0;
    --rk-flow-text: #475569;
    --rk-flow-accent: #38bdf8;
    --rk-flow-green: #10b981;
}

.rk-flow-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-flow-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-flow-border);
    overflow: hidden;
}

/* Header Section */
.rk-flow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-flow-border);
}

.rk-flow-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-flow-header p {
    font-size: 16px;
    color: var(--rk-flow-text);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-flow-header .rk-highlight {
    display: inline-block;
    background: rgba(2, 132, 199, 0.1);
    color: var(--rk-flow-blue);
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 800;
    margin-top: 10px;
    font-size: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

.rk-flow-header a {
    color: var(--rk-flow-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny Kalkulator - Panel Sterowania */
.rk-flow-calc-box {
    display: flex;
    flex-direction: column;
    background: var(--rk-flow-dark);
}

.rk-flow-controls {
    padding: 35px 50px;
    border-bottom: 2px dashed rgba(255,255,255,0.15);
}

.rk-flow-controls h3 {
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-flow-controls h3 svg { color: var(--rk-flow-accent); }

.rk-slider-stack {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #94a3b8;
    font-size: 15px;
    font-weight: 700;
}

.rk-slider-val {
    background: var(--rk-flow-accent);
    color: var(--rk-flow-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Custom Sliders */
.rk-flow-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-flow-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-flow-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 12px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-flow-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Wyniki (Dashboard hydrauliczny) */
.rk-flow-results {
    padding: 35px 50px;
    background: #1e293b;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-result-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-result-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-result-value span {
    font-size: 16px;
    color: var(--rk-flow-accent);
    margin-left: 5px;
}

.rk-result-highlight { color: var(--rk-flow-green); }
.rk-result-warn { color: var(--rk-flow-gold); }

/* Tłumaczenie inżynierskie */
.rk-flow-explanation {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-flow-explanation h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 20px 0;
}

.rk-flow-step {
    background: #f8fafc;
    border-left: 4px solid var(--rk-flow-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 20px;
}

.rk-flow-step h4 {
    margin: 0 0 10px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-flow-dark);
}

.rk-flow-step p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-flow-text);
}

.rk-flow-math {
    display: inline-block;
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-weight: 700;
    color: #0f172a;
}

.rk-flow-explanation a {
    color: var(--rk-flow-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-controls, .rk-flow-results, .rk-flow-explanation { padding: 30px 20px; }
    .rk-flow-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-slider-stack { gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?",
    "description": "Zasady doboru rozstawu rur (10-15 cm) pod zasilanie 30/25°C. Obliczenia przepływów masowych, oporów i długości pętli PEX dla pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-hydraulika",
    "name": "Parametry Hydrauliczne Pętli Grzewczych PEX 16x2",
    "description": "Modele obliczeniowe dla przepływów masowych wody oraz długości pętli ogrzewania podłogowego przy zadanym spadku temperatury dT 5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli dla rury 16x2",
      "zakres pracy rotametrów rozdzielacza",
      "spadek temperatury zasilania a powrotu",
      "na ile pętli podzielić salon",
      "przepływ masowy wody wzór"
    ],
    "measurementTechnique": "Przeliczanie mocy cieplnej (W) na przepływ (l/min) przy użyciu ciepła właściwego wody 4186 J/(kgK) oraz algorytmu dzielenia długości rur pow. 100mb.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ masowy m = Q / (1,163 * dT).",
        "Zapotrzebowanie na rurę: 6,67 mb/m2 dla rozstawu 15 cm.",
        "Maksymalna długość pojedynczej pętli: 100-120 mb dla zachowania oporów < 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-hydraulika",
    "name": "Symulator Przepływów i Długości Pętli PEX",
    "description": "Kalkulator interaktywny wyliczający w czasie rzeczywistym wymaganą długość rur, ilość pętli oraz nastawy rotametrów na rozdzielaczu dla danego pomieszczenia.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-hydraulic-simulator">
    
    <div class="rk-flow-header">
        <h2>Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?</h2>
        <p>W lekkiej konstrukcji szkieletowej o jednostkowym zapotrzebowaniu rzędu <strong>25–40 W/m²</strong>, optymalny rozstaw rur to <strong>15 cm w pokojach</strong> oraz <strong>10 cm w łazienkach</strong>. Taki dobór gwarantuje możliwość pracy pompy ciepła na niskich parametrach zasilania 30/25°C, co jest kluczem do energooszczędności.</p>
        <p>Im mniejszy rozstaw rur (gęstsze ułożenie), tym większa powierzchnia wymiany i niższa wymagana temperatura wody. A musisz wiedzieć, że <strong>każde obniżenie temperatury zasilania o 1°C to wzrost sprawności COP pompy ciepła o 2,5–3%.</strong></p>
    </div>

    <!-- Symulator na żywo -->
    <div class="rk-flow-calc-box">
        
        <div class="rk-flow-controls">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                Symulator Przepływów i Długości Pętli (dT = 5K)
            </h3>
            <div class="rk-slider-stack">
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Powierzchnia salonu (A)</span>
                        <span class="rk-slider-val" id="fValArea">25 m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlArea" min="10" max="50" step="1" value="25" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Zapotrzebowanie (q)</span>
                        <span class="rk-slider-val" id="fValQ">35 W/m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlQ" min="20" max="60" step="1" value="35" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Rozstaw rur (W)</span>
                        <span class="rk-slider-val" id="fValSpacing">15 cm</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlSpacing" min="10" max="25" step="5" value="15" oninput="runFlowSim()">
                </div>
            </div>
        </div>

        <div class="rk-flow-results">
            <div class="rk-result-card">
                <div class="rk-result-title">Moc do dostarczenia</div>
                <div class="rk-result-value" id="resTotalQ">875<span>W</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Całkowity metraż rury</div>
                <div class="rk-result-value" id="resLength">167<span>mb</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Ilość niezależnych pętli</div>
                <div class="rk-result-value rk-result-warn" id="resLoops">2<span>pętle</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Nastawa rotametru (na pętlę)</div>
                <div class="rk-result-value rk-result-highlight" id="resFlow">1.25<span>l/min</span></div>
            </div>
        </div>

    </div>

    <!-- Tłumaczenie inżynierskie z linkami SEO -->
    <div class="rk-flow-explanation">
        <h3>Skąd wzięły się te wyniki? Przykład obliczeniowy</h3>
        
        <div class="rk-flow-step">
            <h4>1. Obliczenie przepływu masowego wody</h4>
            <p>Zapotrzebowanie salonu wynosi <span class="rk-flow-math" id="txtTotalQ">875 W</span>. Zakładamy rurę PEX 16x2 oraz <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury zasilania a powrotu</a> (tzw. delta T) na poziomie 5K. Dzielimy moc przez ciepło właściwe wody (1,163 Wh/kgK) i deltę T. Otrzymujemy całkowity przepływ rzędu <span class="rk-flow-math" id="txtTotalFlow">2.5 l/min</span>.</p>
        </div>

        <div class="rk-flow-step">
            <h4>2. Długość rury i dławienie hydrauliczne</h4>
            <p>Przy wybranym rozstawie całkowita rura wynosi <span class="rk-flow-math" id="txtLength">167 mb</span>. Ponieważ <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli dla rury 16x2</a> nie powinna przekraczać 100–120 mb (aby opory nie przekroczyły 20 kPa), musimy zaplanować, <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">na ile pętli podzielić salon</a>. Dzielimy pokój na <span class="rk-flow-math" id="txtLoops">2</span> równe obwody.</p>
        </div>

        <div class="rk-flow-step">
            <h4>3. Nastawa na rozdzielaczu</h4>
            <p>Dzieląc całkowity przepływ przez ilość pętli, otrzymujemy wymaganą nastawę wynoszącą <span class="rk-flow-math" id="txtLoopFlow">1.25 l/min</span>. Taka wartość idealnie trafia w optymalny <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zakres pracy rotametrów rozdzielacza</a> (które zazwyczaj precyzyjnie operują w widełkach 1,0 do 2,5 l/min).</p>
        </div>
    </div>

</div>

<script>
function runFlowSim() {
    // 1. Pobranie danych wejściowych
    var area = parseFloat(document.getElementById('fSlArea').value);
    var qUnit = parseFloat(document.getElementById('fSlQ').value);
    var spacingCm = parseFloat(document.getElementById('fSlSpacing').value);

    // 2. Aktualizacja labeli
    document.getElementById('fValArea').textContent = area + ' m²';
    document.getElementById('fValQ').textContent = qUnit + ' W/m²';
    document.getElementById('fValSpacing').textContent = spacingCm + ' cm';

    // 3. Obliczenia hydrauliczne
    var totalQ = Math.round(area * qUnit);
    
    // Przepływ = Q / (1.163 * dT). Zakładamy dT = 5K.
    // Wynik to kg/h. Dzielimy przez 60 by otrzymać l/min.
    var massFlowKgH = totalQ / (1.163 * 5);
    var totalFlowLMin = massFlowKgH / 60;
    
    // Długość rury: dla 10cm to 10 mb/m2, dla 15cm to ~6.67 mb/m2, dla 20cm to 5 mb/m2, dla 25cm to 4 mb/m2.
    var multiplier = 100 / spacingCm;
    var totalLength = Math.round(area * multiplier);
    
    // Ustalanie ilości pętli (nie przekraczamy ~100m na pętlę bezwzględnie)
    var loops = 1;
    if (totalLength > 100) {
        if (totalLength <= 200) {
            loops = 2;
        } else {
            if (totalLength <= 300) {
                loops = 3;
            } else {
                if (totalLength <= 400) {
                    loops = 4;
                } else {
                    loops = 5;
                }
            }
        }
    }
    
    // Przepływ na rotametr
    var flowPerLoop = totalFlowLMin / loops;

    // 4. Aktualizacja Dashboardu
    document.getElementById('resTotalQ').innerHTML = totalQ + '<span>W</span>';
    document.getElementById('resLength').innerHTML = totalLength + '<span>mb</span>';
    
    var elLoops = document.getElementById('resLoops');
    elLoops.innerHTML = loops + '<span>' + (loops === 1 ? 'pętla' : 'pętle') + '</span>';
    if(loops > 1) {
        elLoops.className = 'rk-result-value rk-result-warn';
    } else {
        elLoops.className = 'rk-result-value';
    }
    
    document.getElementById('resFlow').innerHTML = flowPerLoop.toFixed(2) + '<span>l/min</span>';

    // 5. Aktualizacja wartości w tekście (Dowód Inżynierski)
    document.getElementById('txtTotalQ').textContent = totalQ + ' W';
    document.getElementById('txtTotalFlow').textContent = totalFlowLMin.toFixed(2) + ' l/min';
    document.getElementById('txtLength').textContent = totalLength + ' mb';
    document.getElementById('txtLoops').textContent = loops;
    document.getElementById('txtLoopFlow').textContent = flowPerLoop.toFixed(2) + ' l/min';
}

// Uruchomienie na start (25 m2, 35 W/m2, 15 cm daje równe 875W, 167m rury, 2 pętle, 1.25 l/min)
runFlowSim();
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-light: #f0f9ff;
    --rk-comp-gold: #eab308;
    --rk-comp-bg: #ffffff;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #475569;
    --rk-comp-green: #10b981;
    --rk-comp-red: #ef4444;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-comp-border);
    overflow: hidden;
}

/* Sekcja nagłówkowa */
.rk-comp-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

.rk-comp-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-comp-header p {
    font-size: 16px;
    color: var(--rk-comp-text);
    line-height: 1.7;
    margin: 0;
}

.rk-comp-header a {
    color: var(--rk-comp-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny selektor technologii */
.rk-comp-selector {
    display: flex;
    flex-direction: row;
    background: #f1f5f9;
    padding: 20px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-comp-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 15px 10px;
    background: #ffffff;
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-tech-btn:hover {
    background: var(--rk-comp-blue-light);
}

.rk-tech-btn.active {
    border-color: var(--rk-comp-blue);
    background: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
    transform: translateY(-2px);
}

.rk-tech-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 10px;
    transition: all 0.3s;
}

.rk-tech-btn.active .rk-tech-icon {
    background: var(--rk-comp-blue);
    color: #ffffff;
}

.rk-tech-name {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

.rk-tech-btn.active .rk-tech-name {
    color: var(--rk-comp-dark);
}

/* Dashboard wyników (Kafelki) */
.rk-comp-dashboard {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    animation: fadeInDash 0.3s ease-in-out;
}

@keyframes fadeInDash {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

.rk-param-card {
    background: #f8fafc;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all 0.3s;
}

.rk-param-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-param-label svg {
    color: var(--rk-comp-blue);
}

.rk-param-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin: 0;
    line-height: 1.2;
}

/* Modyfikatory kolorystyczne dla wartości */
.val-good { color: var(--rk-comp-green); }
.val-warn { color: var(--rk-comp-gold); }
.val-bad { color: var(--rk-comp-red); }

/* Dolna sekcja opisowa */
.rk-comp-footer {
    padding: 0 50px 40px 50px;
    background: #ffffff;
}

.rk-comp-footer p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-comp-text);
    margin: 0;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-comp-border);
}

.rk-comp-footer a {
    color: var(--rk-comp-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-comp-footer a:hover {
    border-bottom-color: var(--rk-comp-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-dashboard, .rk-comp-footer { padding: 30px 20px; }
    
    /* Układ PIONOWY przycisków na mobile (żadnego scrolowania bocznego) */
    .rk-comp-selector { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-name { font-size: 15px; }
    
    /* Kafelki na mobile - jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-param-card { flex-direction: row; align-items: center; padding: 15px 20px; }
    .rk-param-label { margin-bottom: 0; }
    .rk-param-val { font-size: 18px; text-align: right; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów technicznych i kosztów",
    "description": "Zestawienie technologii posadzkowych pod kątem nośności stropu, czasu schnięcia, wilgoci technologicznej i kosztów robocizny.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-komparator",
    "name": "Porównanie Technologii Posadzkowych Ogrzewania Podłogowego",
    "description": "Baza danych parametrów fizycznych i kosztowych systemów grzewczych stosowanych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym",
      "czym jest system mokry w wodnym ogrzewaniu podłogowym",
      "wylewka betonowa na ogrzewanie podłogowe",
      "ile trwa montaż ogrzewania podłogowego",
      "podłogówka cena za m2 robocizny"
    ],
    "measurementTechnique": "Zestawienie inżynieryjne parametrów fizyko-chemicznych materiałów budowlanych oraz uśrednionych rynkowych kosztów wykonawstwa na 2026 rok.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System suchy EPS: Masa 25-35 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych anhydrytowy: Masa 95-110 kg/m2, Wilgoć ok. 10 litrów, Reakcja 120-180 min.",
        "Jastrych cementowy: Masa 145-165 kg/m2, Wilgoć ok. 22 litrów, Reakcja 240-360 min.",
        "System suchy maty Alu: Masa 12-15 kg/m2, Wilgoć 0 litrów, Reakcja 15-30 min."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-komparator",
    "name": "Interaktywny Komparator Technologii Podłogówki",
    "description": "Aplikacja webowa pozwalająca błyskawicznie przełączać i porównywać obciążenia stropów, koszty oraz bezwładność cieplną poszczególnych systemów posadzkowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-tech-comparator">
    <div class="rk-comp-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów</h2>
        <p>Wybór systemu rzutuje bezpośrednio na nośność konstrukcji stropu oraz dynamikę grzewczą. Przetestuj interaktywny komparator, aby zrozumieć wady i zalety tradycyjnych wylewek w zestawieniu z ultralekkimi zabudowami suchymi.</p>
    </div>

    <!-- Nawigacja / Przyciski wyboru -->
    <div class="rk-comp-selector">
        <button class="rk-tech-btn active" onclick="updateDashboard('eps', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <span class="rk-tech-name">System Suchy (Płyta EPS + Al)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('anh', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
            </div>
            <span class="rk-tech-name">Jastrych Anhydrytowy (40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
            </div>
            <span class="rk-tech-name">Jastrych Cementowy (65 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('mat', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            </div>
            <span class="rk-tech-name">System Suchy (Maty Alu)</span>
        </button>
    </div>

    <!-- Dashboard (Kafelki z wynikami) -->
    <div class="rk-comp-dashboard" id="dashContainer">
        <div class="rk-dash-grid">
            
            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="1" ry="1"></rect><path d="M12 8v8"></path></svg>
                    Grubość const.
                </div>
                <div class="rk-param-val" id="valThick">25–30 mm</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                    Obciążenie stropu
                </div>
                <div class="rk-param-val val-good" id="valWeight">25–35 kg/m²</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Przewodność cieplna
                </div>
                <div class="rk-param-val" id="valLambda">Bezpośrednia (Al)</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Czas reakcji
                </div>
                <div class="rk-param-val val-good" id="valReact">30–60 min</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                    Wilgoć technolog.
                </div>
                <div class="rk-param-val val-good" id="valMoist">0 litrów</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                    Czas schnięcia
                </div>
                <div class="rk-param-val val-good" id="valDry">0 dni</div>
            </div>

        </div>
    </div>

    <!-- Stopka informacyjna SEO z max 4 naturalnymi linkami -->
    <div class="rk-comp-footer">
        <p>Analizując powyższe dane inżynieryjne, odwieczny dylemat <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy w wodnym ogrzewaniu podłogowym</a> w przypadku domu z drewna rozwiązuje się sam. Decydując się na tradycyjną <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a>, musimy zaakceptować drastyczny spadek sterowalności temperaturą. Dodatkowo, przy planowaniu budżetu inwestycji, należy zawsze uwzględniać bieżącą <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">cenę robocizny za m²</a> instalacji oraz fizyczny fakt, <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">ile trwa montaż ogrzewania podłogowego</a>, aby uniknąć kilkutygodniowych przestojów związanych ze schnięciem betonowego jastrychu.</p>
    </div>
</div>

<script>
function updateDashboard(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Pobranie referencji do elementów DOM
    var valThick = document.getElementById('valThick');
    var valWeight = document.getElementById('valWeight');
    var valLambda = document.getElementById('valLambda');
    var valReact = document.getElementById('valReact');
    var valMoist = document.getElementById('valMoist');
    var valDry = document.getElementById('valDry');
    
    // Animacja przeładowania (restart animacji CSS)
    var grid = document.querySelector('.rk-dash-grid');
    grid.style.animation = 'none';
    grid.offsetHeight; // wyzwolenie reflow
    grid.style.animation = null;

    // 3. Logika przypisywania wartości (bez znaków ampersand/or)
    if (techId === 'eps') {
        valThick.textContent = '25–30 mm';
        
        valWeight.textContent = '25–35 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '30–60 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
    
    if (techId === 'anh') {
        valThick.textContent = '45–50 mm';
        
        valWeight.textContent = '95–110 kg/m²';
        valWeight.className = 'rk-param-val val-warn';
        
        valLambda.textContent = '1,6–1,8 W/(mK)';
        
        valReact.textContent = '120–180 min';
        valReact.className = 'rk-param-val val-warn';
        
        valMoist.textContent = 'Ok. 10 litrów/m²';
        valMoist.className = 'rk-param-val val-warn';
        
        valDry.textContent = '7–14 dni';
        valDry.className = 'rk-param-val val-warn';
    }
    
    if (techId === 'cem') {
        valThick.textContent = '65–75 mm';
        
        valWeight.textContent = '145–165 kg/m²';
        valWeight.className = 'rk-param-val val-bad';
        
        valLambda.textContent = '1,1–1,3 W/(mK)';
        
        valReact.textContent = '240–360 min';
        valReact.className = 'rk-param-val val-bad';
        
        valMoist.textContent = 'Ok. 22 litrów/m²';
        valMoist.className = 'rk-param-val val-bad';
        
        valDry.textContent = '28–42 dni';
        valDry.className = 'rk-param-val val-bad';
    }
    
    if (techId === 'mat') {
        valThick.textContent = '15–18 mm';
        
        valWeight.textContent = '12–15 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '15–30 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
}
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #f0f9ff;
    --rk-calc-gold: #eab308;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-code: #1e293b;
    --rk-calc-accent: #38bdf8;
    --rk-calc-alert: #ef4444;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

/* Header */
.rk-calc-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-calc-border);
    text-align: center;
}

.rk-calc-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-calc-header p {
    font-size: 16px;
    color: var(--rk-calc-text);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Interaktywny Panel Główny (Ciemny) */
.rk-live-panel {
    background: var(--rk-calc-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-gold);
}

.rk-live-title {
    font-size: 18px;
    font-weight: 800;
    color: #e2e8f0;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-live-title svg { color: var(--rk-calc-accent); }

/* Suwaki - Układ Pionowy */
.rk-sliders-wrapper {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-slider-val-badge {
    background: var(--rk-calc-accent);
    color: var(--rk-calc-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Suwaki stylizowane */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
    margin-top: 5px;
}
.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(234, 179, 8, 0.6);
    transition: transform 0.1s;
}
.rk-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* DASHBOARD WYNIKÓW NA ŻYWO (Nowość) */
.rk-dashboard {
    margin-top: 35px;
    padding-top: 30px;
    border-top: 1px dashed rgba(255, 255, 255, 0.15);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-dash-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-accent);
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-calc-alert);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Nawigacja kroków - układ pionowy */
.rk-calc-nav {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    padding: 30px 50px;
    gap: 12px;
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-nav-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin: 0 0 5px 0;
}

.rk-step-btn {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    padding: 16px 25px;
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    text-align: left;
}

.rk-step-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.rk-step-btn.active { border-color: var(--rk-calc-blue); background: var(--rk-calc-blue-light); box-shadow: 0 4px 12px rgba(2, 132, 199, 0.15); }

.rk-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 15px;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num { background: var(--rk-calc-blue); }
.rk-step-label { font-size: 16px; font-weight: 800; color: #64748b; transition: color 0.3s; }
.rk-step-btn.active .rk-step-label { color: var(--rk-calc-dark); }

/* Obszar zawartości (Wzory) */
.rk-calc-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-algo-panel {
    display: none;
    animation: fadeInStep 0.4s ease-out;
}

@keyframes fadeInStep {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-algo-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-panel h3 svg { color: var(--rk-calc-blue); }

.rk-math-box {
    background: var(--rk-calc-code);
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 25px;
    border-left: 4px solid var(--rk-calc-gold);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}

.rk-math-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 17px;
    color: #38bdf8;
    font-weight: 700;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.rk-math-live-result {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    color: #10b981;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid rgba(16, 185, 129, 0.3);
    font-size: 18px;
    margin-top: 10px;
}

.rk-math-desc {
    font-size: 14px;
    color: #94a3b8;
    margin: 0;
    font-style: italic;
}

.rk-algo-panel p { font-size: 16px; line-height: 1.7; color: var(--rk-calc-text); }
.rk-algo-panel a { color: var(--rk-calc-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Potężne CTA */
.rk-calc-cta {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid #334155;
}
.rk-calc-cta h3 { color: #ffffff; font-size: 26px; font-weight: 900; margin: 0 0 15px 0; }
.rk-calc-cta p { color: #94a3b8; font-size: 16px; line-height: 1.6; margin: 0 auto 30px auto; max-width: 650px; }

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #eab308;
    color: #0f172a;
    font-size: 15px;
    font-weight: 900;
    padding: 20px 30px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(234, 179, 8, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: #fde047;
    box-shadow: 0 15px 30px -5px rgba(234, 179, 8, 0.4);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-live-panel, .rk-calc-content, .rk-calc-cta { padding: 25px 20px; }
    .rk-dashboard { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .rk-dash-val { font-size: 20px; }
    .rk-calc-nav { padding: 20px; gap: 10px; }
    .rk-step-btn { padding: 15px 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-math-formula { font-size: 14px; }
    .rk-btn-massive { width: 100%; text-align: center; flex-direction: column; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-symulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Algorytm obliczeniowy do projektowania ogrzewania w domu szkieletowym na żywo",
    "description": "Interaktywny kalkulator inżynierski OZC. Przesuwaj wskaźniki powierzchni i izolacji, aby na żywo śledzić zmiany parametrów rur, temperatury posadzki i mocy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-kalkulator",
    "name": "Wzory Fizyki Budowli – Dynamiczna Termodynamika Ogrzewania",
    "description": "Zbiór inżynieryjnych wzorów obliczeniowych, z dynamicznym przeliczaniem gęstości strumienia cieplnego, temperatury powierzchni oraz rozstawu rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła budynku na żywo",
      "obliczenie rozstawu rur podłogówki m2",
      "wzór na temperaturę posadzki",
      "koszt ogrzewania domu szkieletowego",
      "obliczenia OZC norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczne obliczenia JavaScript na bazie norm PN-EN 1264 i PN-EN 12831 (symulacja parametrów wejściowych inwestora).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Obliczenie OZC w oparciu o suwak metrażu (A_pos) i izolacji budynku.",
        "Krok 2: Korekta na zyski solarne dla domów drewnianych (współczynnik 0,95).",
        "Krok 3: Wyznaczenie q (W/m2).",
        "Krok 4: Ustalenie fizjologicznej temperatury posadzki (max 29 stopni).",
        "Krok 5: Obliczenie potrzebnego metrażu rur PEX/PERT zależnie od suwaka rozstawu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-kalkulator",
    "name": "Live Symulator OZC i Hydrauliki Podłogowej",
    "description": "Interaktywna aplikacja webowa z suwakami czasu rzeczywistego, wizualizująca wpływ wielkości pomieszczenia i izolacji na parametry pracy pompy ciepła.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-interactive-wizard">
    <div class="rk-calc-header">
        <h2>Algorytm obliczeniowy OZC (Live Symulator)</h2>
        <p>Nie czytaj suchych wzorów – przelicz swój dom w czasie rzeczywistym. Zmień parametry suwakami poniżej i natychmiast zobacz wyniki na tablicy wskaźników. Poznaj fizykę swojego budynku.</p>
    </div>

    <!-- Panel Sterowania Na Żywo z Wbudowanym Dashboardem -->
    <div class="rk-live-panel">
        <h3 class="rk-live-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
            Krok 1: Wprowadź parametry pokoju
        </h3>
        
        <div class="rk-sliders-wrapper">
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Powierzchnia posadzki netto</span>
                    <span class="rk-slider-val-badge" id="valArea">20 m²</span>
                </div>
                <input type="range" class="rk-range" id="slArea" min="10" max="50" step="1" value="20" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Projektowe zapotrzebowanie (izolacja)</span>
                    <span class="rk-slider-val-badge" id="valQ">40 W/m²</span>
                </div>
                <input type="range" class="rk-range" id="slQ" min="20" max="80" step="5" value="40" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Rozstaw rur PEX/PERT</span>
                    <span class="rk-slider-val-badge" id="valSpacing">15 cm</span>
                </div>
                <input type="range" class="rk-range" id="slSpacing" min="10" max="25" step="5" value="15" oninput="runSim()">
            </div>
        </div>

        <!-- Nowość: DASHBOARD NA ŻYWO -->
        <div class="rk-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Moc całkowita</div>
                <div class="rk-dash-val" id="dashTotalQ">800 W</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wymagany Strumień</div>
                <div class="rk-dash-val" id="dashStrumien">38 W/m²</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Temp. Posadzki</div>
                <div class="rk-dash-val" id="dashTemp">23.5 °C</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Potrzebna Rura</div>
                <div class="rk-dash-val" id="dashRury">133 mb</div>
            </div>
            <div class="rk-dash-alert" id="dashAlert">
                ⚠️ BŁĄD PROJEKTOWY: Temperatura podłogi przekracza normatywne 29°C. Pomieszczenie będzie niekomfortowo gorące. Popraw izolację (Zapotrzebowanie)!
            </div>
        </div>
    </div>

    <!-- Nawigacja kroków (Jak to policzyliśmy?) -->
    <div class="rk-calc-nav">
        <p class="rk-calc-nav-title">Krok 2: Poznaj Inżynieryjne Obliczenia (Kliknij)</p>
        <button class="rk-step-btn active" onclick="showLiveStep('stOZC', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-label">Wyznaczenie straty ciepła pomieszczenia (Q_obl)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stKorekta', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-label">Korekta o zyski i bezwładność w szkielecie</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stStrumien', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-label">Obliczenie gęstości strumienia cieplnego (q)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stTemp', this)">
            <span class="rk-step-num">4</span>
            <span class="rk-step-label">Sprawdzenie granicznej temperatury posadzki</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stRury', this)">
            <span class="rk-step-num">5</span>
            <span class="rk-step-label">Zapotrzebowanie na rurę grzewczą (L_rury)</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-calc-content">
        
        <!-- Krok 1: OZC -->
        <div class="rk-algo-panel" id="stOZC" style="display: block;">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                Wyznaczenie straty ciepła pomieszczenia (Q_obl)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_obl = <span id="dynArea1">20</span> m² * <span id="dynQ1">40</span> W/m²</div>
                <div class="rk-math-live-result">= <span id="dynTotalQ">800</span> W</div>
                <p class="rk-math-desc" style="margin-top: 15px;">Uproszczony model przenikania (Norma PN-EN 12831).</p>
            </div>
            <p>To absolutny fundament. Im lepiej ocieplony jest Twój dom szkieletowy (wyższa jakość wełny), tym niższe zapotrzebowanie. Sprawdź, jak <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> w duecie obniżają ten parametr poprzez eliminację start wentylacyjnych.</p>
        </div>

        <!-- Krok 2: Korekta -->
        <div class="rk-algo-panel" id="stKorekta">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                Korekta o zyski i bezwładność
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_proj = <span id="dynTotalQ2">800</span> W * 0.95 (współcz. f_reg)</div>
                <div class="rk-math-live-result">= <span id="dynQproj">760</span> W</div>
            </div>
            <p>W domu szkieletowym ze względu na niską akumulacyjność ścian nie stosuje się "mocy na zapas". Taki zoptymalizowany <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania domu</a> na etapie projektu pozwala dobrać znacznie tańszą pompę ciepła o niższej mocy nominalnej.</p>
        </div>

        <!-- Krok 3: Strumień -->
        <div class="rk-algo-panel" id="stStrumien">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="2" x2="12" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Gęstość strumienia cieplnego (q)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">q = <span id="dynQproj2">760</span> W / <span id="dynArea2">20</span> m²</div>
                <div class="rk-math-live-result">= <span id="dynStrumien">38</span> W/m²</div>
            </div>
            <p>To wartość mocy, jaką faktycznie musimy wycisnąć z każdego metra kwadratowego podłogi. Jeśli wartość przekroczy 80 W/m², oznacza to, że sam system podłogowy może nie podołać w największe mrozy.</p>
        </div>

        <!-- Krok 4: Temp Posadzki -->
        <div class="rk-algo-panel" id="stTemp">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                Graniczna temperatura posadzki
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">t_f = 20°C (wnętrze) + ( <span id="dynStrumien2">38</span> / 10.8 alpha )</div>
                <div class="rk-math-live-result">= <span id="dynTemp">23.5</span> °C</div>
            </div>
            <p>Zgodnie z fizyką (norma PN-EN 1264), fizjologiczna granica komfortu wynosi 29°C.</p>
        </div>

        <!-- Krok 5: Rury -->
        <div class="rk-algo-panel" id="stRury">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Zapotrzebowanie na rurę grzewczą (L_rury)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">L_rury = <span id="dynArea3">20</span> m² / <span id="dynSpacingM">0.15</span> m (rozstaw)</div>
                <div class="rk-math-live-result">= <span id="dynRura">133</span> mb rury</div>
            </div>
            <p>Znając dokładną długość pętli, unikniesz dławienia przepływów. Jeśli wynik przekracza 100 metrów bieżących, pokój bezwzględnie wymaga podziału na dwie niezależne pętle. Zobacz jak to wpływa na <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a> w całej kotłowni.</p>
        </div>
    </div>

    <!-- Mocne CTA pod długi ogon na koniec -->
    <div class="rk-calc-cta">
        <h3>Nie ryzykuj własnych pieniędzy przez instalatorów "zgadywaczy"</h3>
        <p>Inwestycja w lekki dom szkieletowy wymaga żelaznych obliczeń inżynierskich. Wyeliminuj błędy, taktowanie pompy i duszne sypialnie opierając się na normatywnych wyliczeniach OZC i pełnej dokumentacji technicznej zawartej w profesjonalnym projekcie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            <span>ZAMÓW INŻYNIERSKI PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC ORAZ HYDRAULIKĄ</span>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
function showLiveStep(panelId, btnElement) {
    // Bezpieczne odwołanie do kontenera przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');
    
    // Obsługa paneli
    var contentArea = document.querySelector('.rk-calc-content');
    var allPanels = contentArea.getElementsByClassName('rk-algo-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function runSim() {
    // 1. Pobranie wartości z suwaków
    var area = parseFloat(document.getElementById('slArea').value);
    var qUnit = parseFloat(document.getElementById('slQ').value);
    var spacing = parseFloat(document.getElementById('slSpacing').value);
    
    // 2. Aktualizacja labeli nad suwakami
    document.getElementById('valArea').textContent = area + ' m²';
    document.getElementById('valQ').textContent = qUnit + ' W/m²';
    document.getElementById('valSpacing').textContent = spacing + ' cm';
    
    // 3. Obliczenia fizyki
    var qObl = area * qUnit;
    var qProj = Math.round(qObl * 0.95);
    var strumien = Math.round(qProj / area);
    var temp = (20 + (strumien / 10.8)).toFixed(1);
    var spacingM = spacing / 100;
    var rury = Math.round(area / spacingM);
    
    // 4. Aktualizacja Głównego Dashboardu
    document.getElementById('dashTotalQ').textContent = qObl + ' W';
    document.getElementById('dashStrumien').textContent = strumien + ' W/m²';
    
    var dashTempEl = document.getElementById('dashTemp');
    var dashAlert = document.getElementById('dashAlert');
    dashTempEl.textContent = temp + ' °C';
    
    if (parseFloat(temp) > 29) {
        dashTempEl.style.color = '#ef4444'; // Red alert
        dashAlert.style.display = 'block';
    } else {
        dashTempEl.style.color = '#38bdf8'; // Accent blue
        dashAlert.style.display = 'none';
    }
    
    document.getElementById('dashRury').textContent = rury + ' mb';

    // 5. Aktualizacja wzorów w zakładkach (Inżynieryjny dowód)
    document.getElementById('dynArea1').textContent = area;
    document.getElementById('dynQ1').textContent = qUnit;
    document.getElementById('dynTotalQ').textContent = qObl;
    
    document.getElementById('dynTotalQ2').textContent = qObl;
    document.getElementById('dynQproj').textContent = qProj;
    
    document.getElementById('dynQproj2').textContent = qProj;
    document.getElementById('dynArea2').textContent = area;
    document.getElementById('dynStrumien').textContent = strumien;
    
    document.getElementById('dynStrumien2').textContent = strumien;
    document.getElementById('dynTemp').textContent = temp;
    
    var spanTempEl = document.getElementById('dynTemp');
    if (parseFloat(temp) > 29) {
        spanTempEl.className = 'rk-dyn-warn';
    } else {
        spanTempEl.className = 'rk-dyn-text';
    }
    
    document.getElementById('dynArea3').textContent = area;
    document.getElementById('dynSpacingM').textContent = spacingM.toFixed(2);
    document.getElementById('dynRura').textContent = rury;
}

// Inicjalizacja przy ładowaniu
runSim();
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-red: #ef4444;
    --rk-diag-red-bg: #fef2f2;
    --rk-diag-green: #10b981;
    --rk-diag-green-bg: #f0fdf4;
    --rk-diag-bg: #ffffff;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-diag-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-diag-border);
    overflow: hidden;
}

.rk-diag-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-diag-border);
    text-align: center;
}

.rk-diag-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-diag-header p {
    font-size: 16px;
    color: var(--rk-diag-text);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Zakładki (Jedna kolumna, układ poziomy) */
.rk-diag-tabs {
    display: flex;
    flex-direction: row;
    padding: 20px 50px;
    gap: 15px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-diag-border);
    justify-content: space-between;
}

.rk-tab-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 10px;
    background: var(--rk-diag-bg);
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    text-align: center;
}

.rk-tab-btn:hover {
    background: #f1f5f9;
}

.rk-tab-btn.active {
    border-color: var(--rk-diag-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-tab-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    font-weight: 900;
    font-size: 14px;
    transition: all 0.3s;
}

.rk-tab-btn.active .rk-tab-num {
    background: var(--rk-diag-red);
    color: #ffffff;
}

.rk-tab-title {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
    transition: color 0.3s;
}

.rk-tab-btn.active .rk-tab-title {
    color: var(--rk-diag-dark);
}

/* Panele z treścią (Układ 1-kolumnowy) */
.rk-diag-content-area {
    padding: 40px 50px;
}

.rk-diag-panel {
    display: none;
    animation: slideDown 0.4s ease-out;
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-diag-panel h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Karty jedna pod drugą */
.rk-info-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-info-card {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid;
    position: relative;
}

.rk-card-bad {
    background: var(--rk-diag-red-bg);
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-card-good {
    background: var(--rk-diag-green-bg);
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.rk-card-header svg {
    width: 28px;
    height: 28px;
}

.rk-card-bad .rk-card-header svg { color: var(--rk-diag-red); }
.rk-card-good .rk-card-header svg { color: var(--rk-diag-green); }

.rk-card-header h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-card-bad h4 { color: var(--rk-diag-red); }
.rk-card-good h4 { color: var(--rk-diag-green); }

.rk-info-card p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-diag-text);
}

.rk-info-card a {
    color: var(--rk-diag-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-content-area { padding: 30px 20px; }
    .rk-diag-tabs { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tab-btn { flex-direction: row; justify-content: flex-start; padding: 15px; }
    .rk-tab-title { font-size: 15px; }
    .rk-diag-panel h3 { font-size: 20px; }
    .rk-info-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?",
    "description": "Interaktywne zestawienie najgroźniejszych błędów przy montażu ogrzewania w technologii szkieletowej: taktowanie pompy ciepła, brak strefowania i uszkodzenia paroizolacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-diagnoza",
    "name": "Katalog Błędów Instalacyjnych w Konstrukcji Szkieletowej",
    "description": "Baza danych inżynieryjnych zestawiająca błędy montażowe z normatywnymi rozwiązaniami technicznymi dedykowanymi dla budownictwa drewnianego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przewymiarowanie instalacji",
      "taktowanie pompy ciepła",
      "uszkodzenie paroizolacji",
      "brak strefowania",
      "najczęstsze błędy instalatora podłogówki"
    ],
    "measurementTechnique": "Analiza defektów montażowych w oparciu o fizykę cieplną budynków drewnianych i wytyczne układów pompowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Brak strefowania prowadzący do przegrzewania wnętrz od południa. Rozwiązanie: Termostaty z algorytmem TPI.",
        "Problem: Przewymiarowanie i zbyt gęsty rozstaw rur powodujące taktowanie sprężarki. Rozwiązanie: Zwiększenie rozstawu do 20 cm przy niskim OZC.",
        "Problem: Przebijanie folii paroizolacyjnej spinkami Tacker. Rozwiązanie: Klejenie systemowe i rezygnacja z mechanicznych uszkodzeń folii PE."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-diagnoza",
    "name": "Jednokolumnowy Interaktywny Diagnozer Błędów",
    "description": "Aplikacja pozwalająca inwestorowi na identyfikację patologii montażowych na budowie oraz poznanie poprawnej, inżynierskiej alternatywy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-error-viewer">
    <div class="rk-diag-header">
        <h2>Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?</h2>
        <p>Lata praktyki weryfikują radosną twórczość instalatorów. W domach o lekkiej konstrukcji szkieletowej konsekwencje powielania nawyków z murowanych budów są natychmiastowe i bardzo kosztowne. Zdiagnozuj i wyeliminuj problem przed wylaniem posadzki.</p>
    </div>

    <!-- Zakładki górne (Jedna kolumna na treści poniżej) -->
    <div class="rk-diag-tabs">
        <button class="rk-tab-btn active" onclick="showDiagPanel('diag1', this)">
            <span class="rk-tab-num">1</span>
            <span class="rk-tab-title">Brak strefowania</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag2', this)">
            <span class="rk-tab-num">2</span>
            <span class="rk-tab-title">Taktowanie pompy</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag3', this)">
            <span class="rk-tab-num">3</span>
            <span class="rk-tab-title">Dziurawienie folii</span>
        </button>
    </div>

    <!-- Obszar treści (Struktura stosu: Problem -> Rozwiązanie) -->
    <div class="rk-diag-content-area">
        
        <!-- Panel 1 -->
        <div class="rk-diag-panel" id="diag1" style="display: block;">
            <h3>Brak strefowania i sterowania pomieszczeniami</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Domy szkieletowe z dużymi przeszkleniami od południa nagrzewają się od słońca w ciągu 30–45 minut o kilka stopni. Jeśli pętle grzewcze salonu i sypialni północnej są połączone lub pracują bez termostatów pokojowych, w salonie temperatura szybko wzrośnie do dusznych 25°C, podczas gdy zacieniona sypialnia pozostanie niekomfortowo niedogrzana.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Bezwzględne stosowanie zaworów na każdej pętli rozdzielacza. Kluczem jest <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> z wykorzystaniem <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">inteligentnych termostatów TPI</a>. Automatyka analizuje bezwładność systemu i ucina zasilanie na ułamek sekundy przed tym, zanim nastąpi przegrzanie wywołane zyskami solarnymi.</p>
                </div>
            </div>
        </div>

        <!-- Panel 2 -->
        <div class="rk-diag-panel" id="diag2">
            <h3>Przewymiarowanie instalacji (Złoty standard: "co 10 cm")</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Zagęszczenie rur (rozstaw co 10 cm w całym domu) przy niskim zapotrzebowaniu na ciepło skutkuje brakiem możliwości zrzutu mocy. Sprężarka włącza się i wyłącza co 5 minut (taktowanie). Zjawisko to potrafi skrócić żywotność drogiej pompy ciepła o 50–70% oraz radykalnie obniżyć współczynnik COP.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Dobór oparty ściśle na obliczeniach strat ciepła (OZC). W strefach o zapotrzebowaniu poniżej 30 W/m² instalator powinien zastosować <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym równy 20 cm</a>, co gwarantuje długą, płynną i ekonomiczną pracę inwerterowej pompy ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Panel 3 -->
        <div class="rk-diag-panel" id="diag3">
            <h3>Uszkodzenie paroizolacji podczas montażu</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Montaż rur na stropie drewnianym przy użyciu spinek wbijanych przez taker bezpośrednio w poszycie. Spinki dziurawią folią paroizolacyjną. Przez setki otworów wilgoć z pomieszczeń wnika w głąb stropu, co wywołuje zjawisko kondensacji – w efekcie izolacja z wełny przestaje działać, a drewno zaczyna gnić.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Na stropach lekkich należy stosować maty z wypustkami bez mocowania mechanicznego do podłoża lub kleić płyty EPS specjalistycznymi pianoklejami o niskiej prężności. Przeczytaj koniecznie, jakie są pozostałe <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu ogrzewania podłogowego</a>, aby ochronić dom.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function showDiagPanel(panelId, btnElement) {
    // 1. Zabezpieczony reset zakładek (Tabs)
    var tabContainer = document.querySelector('.rk-diag-tabs');
    var allTabs = tabContainer.getElementsByClassName('rk-tab-btn');
    var i = 0;
    while (i < allTabs.length) {
        allTabs[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętej zakładki
    btnElement.classList.add('active');
    
    // 3. Zabezpieczony reset wszystkich paneli
    var contentArea = document.querySelector('.rk-diag-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-diag-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Płynne wyświetlenie docelowego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-step-dark: #0f172a;
    --rk-step-blue: #0284c7;
    --rk-step-blue-light: #e0f2fe;
    --rk-step-green: #10b981;
    --rk-step-bg: #ffffff;
    --rk-step-border: #e2e8f0;
    --rk-step-text: #334155;
    --rk-step-inactive: #f1f5f9;
}

.rk-pipeline-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-step-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-step-border);
    overflow: hidden;
}

.rk-pipeline-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-step-border);
}

.rk-pipeline-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-step-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-pipeline-header p {
    font-size: 16px;
    color: var(--rk-step-text);
    line-height: 1.6;
    margin: 0;
}

/* Interaktywny Stepper Nawigacyjny */
.rk-stepper-nav {
    display: flex;
    flex-direction: row;
    background: var(--rk-step-inactive);
    padding: 10px;
    gap: 10px;
    border-bottom: 1px solid var(--rk-step-border);
}

.rk-step-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
}

.rk-step-btn:hover {
    background: #e2e8f0;
}

.rk-step-btn.active {
    background: var(--rk-step-bg);
    border-color: var(--rk-step-blue);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-step-num {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 16px;
    border-radius: 50%;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-step-blue);
    box-shadow: 0 0 15px rgba(2, 132, 199, 0.4);
}

.rk-step-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
}

.rk-step-btn.active .rk-step-title {
    color: var(--rk-step-dark);
}

/* Panele Treści (1-kolumnowe) */
.rk-step-content-area {
    padding: 40px 50px;
    background: var(--rk-step-bg);
}

.rk-step-panel {
    display: none;
    animation: fadeInPanel 0.4s ease-out forwards;
}

.rk-step-panel.active {
    display: block;
}

@keyframes fadeInPanel {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-panel-top {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-panel-icon {
    width: 60px;
    height: 60px;
    background: var(--rk-step-blue-light);
    color: var(--rk-step-blue);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-panel-top h3 {
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-step-dark);
    margin: 0;
}

.rk-panel-body p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-step-text);
    margin: 0 0 20px 0;
}

.rk-panel-body ul {
    margin: 0;
    padding: 0 0 0 20px;
    color: var(--rk-step-text);
}

.rk-panel-body li {
    margin-bottom: 10px;
    line-height: 1.6;
}

.rk-panel-body a {
    color: var(--rk-step-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mocne CTA */
.rk-cta-wrapper {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-step-dark) 0%, #1e293b 100%);
    text-align: center;
    border-top: 1px solid #334155;
}

.rk-cta-wrapper h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-cta-wrapper p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-step-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-cta-btn:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-pipeline-header, .rk-step-content-area, .rk-cta-wrapper { padding: 30px 20px; }
    .rk-stepper-nav { flex-direction: column; }
    .rk-panel-top { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-cta-btn { width: 100%; font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-projekt-szkielet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?",
    "description": "Poznaj 3-stopniowy schemat inżynierski: od obliczeń OZC, przez hydraulikę PN-EN 1264, aż po integrację z pompą ciepła w domach szkieletowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-procedura",
    "name": "Procedura Projektowa Instalacji Płaszczyznowych w Szkielecie",
    "description": "Dokumentacja inżynierska obejmująca trzy filary projektu: OZC, hydraulikę i maszynownię (źródło ciepła).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "obliczenia OZC dla domu szkieletowego",
      "rozstaw rur w systemie suchym",
      "przepływy w rozdzielaczu l/min",
      "bufor ciepła w lekkiej podłogówce"
    ],
    "measurementTechnique": "Algorytmy normatywne PN-EN 12831 oraz PN-EN 1264 dla konstrukcji drewnianych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1: Obliczenie OZC dla każdego pomieszczenia z uwzględnieniem szczelności wiatrowej.",
        "Etap 2: Dobór hydrauliczny - długość pętli, opory i kryzowanie na rotametrach.",
        "Etap 3: Zabezpieczenie minimalnego przepływu dla defrostu pompy ciepła (bufor szeregowy)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-pipeline",
    "name": "Interaktywny Schemat Projektowy HVAC",
    "description": "Narzędzie edukacyjne ilustrujące chronologię prac projektowych dla instalacji grzewczych w lekkich konstrukcjach szkieletowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipeline-container" id="rk-project-pipeline">
    <div class="rk-pipeline-header">
        <h2>Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?</h2>
        <p>Każdy profesjonalny projekt w technologii szkieletowej musi bezwzględnie bazować na trójstopniowej strukturze, całkowicie odrębnej od schematów powielanych w domach murowanych. Odkryj kolejne etapy inżynierskiego procesu.</p>
    </div>

    <!-- Stepper Navigation -->
    <div class="rk-stepper-nav">
        <button class="rk-step-btn active" onclick="showStep('step1', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-title">Obliczenia OZC</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step2', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-title">Hydraulika systemu</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step3', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-title">Maszynownia</span>
        </button>
    </div>

    <!-- Content Area (Single Column) -->
    <div class="rk-step-content-area">
        
        <!-- Etap 1: OZC -->
        <div class="rk-step-panel active" id="step1">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                <h3>Obliczenie Zapotrzebowania na Ciepło (OZC)</h3>
            </div>
            <div class="rk-panel-body">
                <p>To absolutny fundament. Projektant musi wyznaczyć straty ciepła dla każdego pokoju osobno, co wprost odnosi się do <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normy PN-EN 12831</a>. Ze względu na wysoką szczelność domów szkieletowych (często wyposażonych w rekuperację), straty wentylacyjne są tu minimalne.</p>
                <ul>
                    <li>Dokładne modelowanie strat przez przegrody i wentylację mechaniczną.</li>
                    <li>Określenie szczytowej mocy dla każdego pomieszczenia wyrażonej w Watach.</li>
                    <li>Projekt wykonany bez profesjonalnego OZC to gwarancja źle działającej, przewymiarowanej instalacji.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 2: Hydraulika -->
        <div class="rk-step-panel" id="step2">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <h3>Projekt Hydrauliczny (PN-EN 1264)</h3>
            </div>
            <div class="rk-panel-body">
                <p>Na podstawie OZC następuje indywidualny dobór rozstawu rur. Projekt określa dokładną długość każdej pętli oraz nastawy wstępne na <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">rozdzielaczach</a> (przepływy w l/min), co stanowi kluczowy element wymogów <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy EN 1264</a>.</p>
                <ul>
                    <li>Wybór technologii (np. system suchy o niskiej masie strukturalnej).</li>
                    <li>Odrzucenie zasady "co 10 cm wszędzie" na rzecz analitycznego doboru rozstawów.</li>
                    <li>Równoważenie ciśnień zapobiegające sytuacji, w której najdłuższa pętla jest niedogrzana z powodu oporów hydraulicznych.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 3: Źródło -->
        <div class="rk-step-panel" id="step3">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Integracja ze Źródłem Ciepła</h3>
            </div>
            <div class="rk-panel-body">
                <p>Ponieważ lekka podłogówka posiada niewielką pojemność wodną, kluczowym wyzwaniem jest zapewnienie minimalnego przepływu wymaganego przez producenta pompy ciepła do przeprowadzenia procedury odszraniania parownika (defrost).</p>
                <ul>
                    <li>Brak konieczności instalowania stratnych układów z zaworami mieszającymi.</li>
                    <li>W systemach suchych stosuje się często dedykowany <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła wpięty szeregowo</a> (pojemność zaledwie 40–60 litrów).</li>
                    <li>Pozwala to na zachowanie bezpośredniego zasilania rozdzielaczy i maksymalnego współczynnika SCOP pompy ciepła.</li>
                </ul>
            </div>
        </div>

    </div>

    <!-- CTA do Projektów -->
    <div class="rk-cta-wrapper">
        <h3>Nie zgaduj z pompą ciepła i rurkami</h3>
        <p>Szkielet drewniany wymaga inżynierskiej precyzji, nie wykonawstwa "na oko". Zabezpiecz swój komfort i portfel już na etapie planowania, oddając obliczenia w ręce specjalistów.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
            ZAMÓW INDYWIDUALNY PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
function showStep(stepId, btnElement) {
    // 1. Zabezpieczone resetowanie przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętego przycisku
    btnElement.classList.add('active');
    
    // 3. Ukrywanie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-step-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-step-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].classList.remove('active');
        j++;
    }
    
    // 4. Wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(stepId);
    if (targetPanel !== null) {
        targetPanel.classList.add('active');
    }
}
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gold: #eab308;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-red: #ef4444;
    --rk-case-green: #10b981;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

/* Nagłówek i Profil Inwestora */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-persona-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-persona-avatar {
    width: 60px;
    height: 60px;
    background: var(--rk-case-gold);
    color: var(--rk-case-dark);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 24px;
    flex-shrink: 0;
}

.rk-persona-info h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.rk-persona-info p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Interaktywna Nawigacja (Oś czasu) */
.rk-case-timeline {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
    padding: 20px 50px;
    gap: 15px;
}

.rk-timeline-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

.rk-timeline-btn:hover {
    background: #f1f5f9;
}

.rk-timeline-btn.active {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-blue-light);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

.rk-step-indicator {
    width: 30px;
    height: 30px;
    background: #cbd5e1;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-timeline-btn.active .rk-step-indicator {
    background: var(--rk-case-blue);
}

.rk-timeline-text {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
}

.rk-timeline-btn.active .rk-timeline-text {
    color: var(--rk-case-dark);
}

/* Obszar Treści */
.rk-case-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-case-panel {
    display: none;
}

.rk-panel-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-panel-header svg {
    width: 32px;
    height: 32px;
}

.rk-panel-header h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0;
}

.rk-case-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-case-text);
    margin: 0 0 20px 0;
}

.rk-case-panel a {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Kafelki z danymi (Zestawienia) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

.rk-data-card {
    padding: 20px;
    border-radius: 16px;
    border: 1px solid;
    background: #f8fafc;
}

.rk-data-card.bad {
    background: #fef2f2;
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-data-card.good {
    background: #f0fdf4;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
}

.rk-data-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.bad .rk-data-val { color: var(--rk-case-red); }
.good .rk-data-val { color: var(--rk-case-green); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-timeline, .rk-case-content { padding: 30px 20px; }
    .rk-case-timeline { flex-direction: column; gap: 10px; }
    .rk-timeline-btn { width: 100%; padding: 15px; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-persona-card { flex-direction: column; text-align: center; }
    .rk-persona-info p { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku",
    "description": "Analiza rzeczywistego przypadku inwestora z Tarnowskich Gór. Zobacz, jak zmiana amatorskiego planu na inżynierski projekt OZC uratowała nośność stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-casestudy",
    "name": "Zestawienie Zwrotu z Inwestycji (ROI) dla Projektu Ogrzewania",
    "description": "Dane analityczne pochodzące z rzeczywistego wdrożenia systemu suchego w domu szkieletowym 130m2 w Tarnowskich Górach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompy ciepła",
      "kompleksowa wycena ogrzewania podłogowego wodnego na co przygotować budżet",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "projekt ogrzewania podłogowego z głowy vs projekt z obliczeniami",
      "taktowanie pompy ciepła w domu szkieletowym"
    ],
    "measurementTechnique": "Analiza porównawcza parametrów statycznych (obciążenie kN/m2) oraz symulacja kosztów eksploatacyjnych po wdrożeniu audytu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Inwestora: Wylewka 7 cm (obciążenie ok. 165 kg/m2), rury co 10 cm, brak OZC.",
        "Plan Inżynierski: System suchy (obciążenie 30 kg/m2), rozstaw rur 15-20 cm z OZC.",
        "Wynik wdrożenia: Uratowanie nośności stropu, płynna praca pompy ciepła (brak taktowania), optymalny zwrot z inwestycji po 6 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-casestudy",
    "name": "Interaktywny Dziennik Inwestycji",
    "description": "Aplikacja edukacyjna pozwalająca prześledzić etapy audytu i optymalizacji projektu instalacji grzewczej dla konkretnego przypadku budowlanego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-real-case">
    
    <!-- Nagłówek i Persona -->
    <div class="rk-case-header">
        <h2 class="rk-case-title">Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku</h2>
        
        <div class="rk-persona-card">
            <div class="rk-persona-avatar">T</div>
            <div class="rk-persona-info">
                <h3>Tomasz, 42 lata</h3>
                <p>
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                    Tarnowskie Góry (woj. śląskie) | Dom szkieletowy 130 m²
                </p>
            </div>
        </div>
    </div>

    <!-- Nawigacja (Oś czasu) -->
    <div class="rk-case-timeline">
        <button class="rk-timeline-btn active" onclick="switchCaseStep('caseStep1', this)">
            <div class="rk-step-indicator">1</div>
            <span class="rk-timeline-text">Pierwotny pomysł Tomka</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep2', this)">
            <div class="rk-step-indicator">2</div>
            <span class="rk-timeline-text">Nasza Diagnoza i Projekt</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep3', this)">
            <div class="rk-step-indicator">3</div>
            <span class="rk-timeline-text">Faktyczny Efekt Inwestycji</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-case-content">
        
        <!-- Etap 1 -->
        <div class="rk-case-panel" id="caseStep1" style="display: block;">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-red);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                <h3>Problem: Wykonawstwo "na oko"</h3>
            </div>
            <p>Tomasz zgłosił się do nas w momencie, gdy lokalny hydraulik przygotowywał się do układania instalacji. Plan wykonawcy zakładał ułożenie rur co 10 cm w całym domu szkieletowym, aby "było ciepło", oraz wylanie na drewniany strop 7 cm betonu z miksokreta. Ponadto, wybrano urządzenie bez weryfikacji. Tomek szukał w sieci informacji, sprawdzając zawiłą <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksową wycenę ogrzewania podłogowego wodnego i na co przygotować budżet</a>, i intuicyjnie czuł, że ten plan zrujnuje mu portfel.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Planowane obciążenie stropu</div>
                    <div class="rk-data-val">165 kg / m²</div>
                </div>
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Ryzyko dla pompy ciepła</div>
                    <div class="rk-data-val">Taktowanie (Krótkie cykle)</div>
                </div>
            </div>
        </div>

        <!-- Etap 2 -->
        <div class="rk-case-panel" id="caseStep2">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-blue);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                <h3>Diagnoza: Ratunek statyki i hydrauliki</h3>
            </div>
            <p>Wstrzymaliśmy prace. Przedstawiliśmy Tomkowi zestawienie: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs projekt z obliczeniami</a>. Przeprowadziliśmy pełne OZC dla jego domu. Okazało się, że zapotrzebowanie jest tak niskie, że rozstaw co 10 cm "udusiłby" układ.</p>
            <p><strong>Decyzja inżynieryjna:</strong> Zrezygnowaliśmy z ciężkiego betonu na rzecz ultralekkiego systemu suchego na cienkich płytach EPS. Zmieniliśmy ułożenie z 10 cm na precyzyjnie wyliczone 15 cm i 20 cm, stawiając na prawidłowy <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>, który od razu przewidział zastosowanie 50-litrowego bufora dla wymuszenia defrostu.</p>
        </div>

        <!-- Etap 3 -->
        <div class="rk-case-panel" id="caseStep3">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-green);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                <h3>Faktyczny Efekt Inwestycji</h3>
            </div>
            <p>Instalacja działa bez zarzutu. Rezygnacja z betonu na rzecz systemu suchego obniżyła obciążenie drewnianych belek na piętrze pięciokrotnie. Dom szkieletowy oddaje ciepło natychmiast, a co najważniejsze – inteligentne strefowanie odcina podłogówkę, gdy duże okna wpuszczają słońce.</p>
            <p>Tomek przekonał się, że <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji w ogrzewanie podłogowe (realne wyliczenia na 2026 rok)</a> jest możliwy tylko wtedy, gdy początkowy droższy zakup odpowiednich materiałów i projektu OZC przekłada się na lata bezawaryjnej pracy sprzętu i niskie rachunki.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card good">
                    <div class="rk-data-label">Ostateczne obciążenie stropu</div>
                    <div class="rk-data-val">30 kg / m²</div>
                </div>
                <div class="rk-data-card good">
                    <div class="rk-data-label">Praca systemu grzewczego</div>
                    <div class="rk-data-val">Stabilna, niski pobór prądu</div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function switchCaseStep(panelId, btnElement) {
    // 1. Zabezpieczony reset przycisków na osi czasu
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-timeline-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja wybranego etapu
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-case-content');
    var allPanels = contentArea.getElementsByClassName('rk-case-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie właściwego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-light: #f0f9ff;
    --rk-auth-gold: #eab308;
    --rk-auth-bg: #ffffff;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-quote: #1e293b;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-auth-border);
    box-shadow: 0 15px 35px -5px rgba(2, 132, 199, 0.08);
    display: flex;
    flex-direction: row;
    overflow: hidden;
}

/* Lewa Kolumna - Zdjęcie i Sociale */
.rk-auth-sidebar {
    width: 320px;
    background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-right: 1px solid var(--rk-auth-border);
    text-align: center;
}

.rk-auth-avatar {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    object-fit: cover;
    border: 6px solid #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

.rk-auth-role {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-auth-blue);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-auth-name-tag {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 15px 0;
}

.rk-auth-socials {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.rk-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: #ffffff;
    color: var(--rk-auth-dark);
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid var(--rk-auth-border);
    /* Brak animacji zgodnie z wytycznymi */
}

.rk-social-link:hover {
    background: var(--rk-auth-blue);
    color: #ffffff;
    border-color: var(--rk-auth-blue);
}

/* Prawa Kolumna - Treść Interaktywna */
.rk-auth-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-auth-nav {
    display: flex;
    background: #ffffff;
    border-bottom: 2px solid var(--rk-auth-border);
}

.rk-auth-tab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 20px 15px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 4px solid transparent;
    /* Brak animacji */
}

.rk-auth-tab:hover {
    background: var(--rk-auth-blue-light);
    color: var(--rk-auth-blue);
}

.rk-auth-tab.active {
    color: var(--rk-auth-blue);
    border-bottom-color: var(--rk-auth-blue);
    background: #ffffff;
}

.rk-auth-content-area {
    padding: 35px 40px;
    background: #ffffff;
    flex: 1;
}

.rk-auth-panel {
    display: none;
    /* Brak animacji fadeIn */
}

/* Typografia Paneli */
.rk-auth-panel h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-auth-panel h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-auth-dark);
    margin: 0 0 15px 0;
}

/* Cytat */
.rk-quote-block {
    position: relative;
    padding: 25px 30px;
    background: var(--rk-auth-quote);
    color: #ffffff;
    border-radius: 16px;
    border-left: 6px solid var(--rk-auth-gold);
}

.rk-quote-mark {
    font-size: 60px;
    font-family: serif;
    color: rgba(255,255,255,0.1);
    line-height: 1;
    position: absolute;
    top: 10px;
    left: 20px;
}

.rk-quote-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.7;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Lista Zasad */
.rk-rules-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-rules-list li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-auth-border);
}

.rk-rules-list li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-rule-icon {
    flex-shrink: 0;
    color: var(--rk-auth-blue);
    background: var(--rk-auth-blue-light);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

.rk-rule-text p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--rk-auth-text);
}

.rk-rule-text strong {
    color: var(--rk-auth-dark);
    display: block;
    margin-bottom: 4px;
}

/* Opis Eksperta */
.rk-bio-text p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-auth-text);
    margin: 0 0 15px 0;
}

.rk-bio-text a {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-auth-container { flex-direction: column; }
    .rk-auth-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-nav { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; text-align: left; padding: 15px 25px; border-top: 1px solid var(--rk-auth-border); }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-content-area { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Zdaniem Roberta Kucharskiego - Podsumowanie inżynieryjne instalacji w domu szkieletowym",
    "description": "Stanowisko eksperckie, zestawienie żelaznych zasad projektowych oraz manifest budowlany dotyczący lekkich konstrukcji podłogowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-zasady",
    "name": "Zbiór Zasad Inżynieryjnych Roberta Kucharskiego",
    "description": "Baza wiedzy zdefiniowana przez eksperta branżowego, obejmująca procedury postępowania przy inwestycjach w ogrzewanie płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z obliczeniami",
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "budowa bez ściemy",
      "największy bloger budowlany",
      "ekspert instalacji grzewczych"
    ],
    "measurementTechnique": "Weryfikacja dobrych praktyk instalacyjnych na podstawie wytycznych autorskich Projekt-Ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Bezwzględny wymóg dokumentacji OZC przed ułożeniem pierwszego metra rury.",
        "Zasada 2: Dopasowanie bezwładności posadzki do technologii wznoszenia budynku.",
        "Zasada 3: Weryfikacja oporów hydraulicznych i podział pętli powyżej 100 mb."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-ekspert",
    "name": "Interaktywny Profil Eksperta HVAC",
    "description": "Cyfrowa wizytówka pozwalająca na przełączanie się pomiędzy podsumowaniem merytorycznym artykułu a zbiorem żelaznych zasad projektowych autora.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-expert-profile">
    
    <!-- Kolumna Autora -->
    <div class="rk-auth-sidebar">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-auth-avatar">
        <div class="rk-auth-role">CEO & Główny Projektant</div>
        <div class="rk-auth-name-tag">Robert Kucharski</div>
        
        <div class="rk-auth-socials">
            <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
            </a>
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
            </a>
        </div>
    </div>

    <!-- Kolumna Treści Interaktywnej -->
    <div class="rk-auth-main">
        <div class="rk-auth-nav">
            <button class="rk-auth-tab active" onclick="switchAuthTab('tabCytat', this)">Podsumowanie</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabZasady', this)">Żelazne Zasady</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabBio', this)">O Autorze</button>
        </div>

        <div class="rk-auth-content-area">
            
            <!-- Tab 1: Cytat (H2 zgodne z wytycznymi) -->
            <div class="rk-auth-panel" id="tabCytat" style="display: block;">
                <h2>Zdaniem Roberta Kucharskiego...</h2>
                <div class="rk-quote-block">
                    <div class="rk-quote-mark">"</div>
                    <p class="rk-quote-text">Budując dom o lekkiej konstrukcji szkieletowej, musisz całkowicie wymazać z pamięci nawyki stosowane w ciężkim budownictwie murowanym. Twoim największym wrogiem nie są wcale straty ciepła, lecz bezwładność betonu i brak precyzyjnego strefowania. Wybierając technologię suchą, nie inwestujesz wyłącznie w rury, lecz w bezpieczeństwo statyczne drewnianych stropów oraz sprawność Twojej pompy ciepła na lata.</p>
                </div>
            </div>

            <!-- Tab 2: Zasady -->
            <div class="rk-auth-panel" id="tabZasady">
                <h3>Inżynieryjny dekalog inwestora</h3>
                <ul class="rk-rules-list">
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Fundament Obliczeniowy</strong>
                            <p>Zanim pozwolisz ekipie rozwinąć pierwszy zwój rury, upewnij się <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>. Odpowiedź brzmi: bez OZC i doboru hydraulicznego niszczysz budżet.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Bezpieczeństwo Drewna (C24)</strong>
                            <p>Wilgoć technologiczna z mokrych jastrychów rzędu tysięcy litrów jest zabójcza dla konstrukcji szkieletu. Zawsze kieruj się w stronę zabudowy suchej.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Szybka Reakcja</strong>
                            <p>Dom z drewna wychładza się i nagrzewa błyskawicznie. Wymusza to stosowanie cienkich posadzek o szybkiej reakcji na inteligentne termostaty pokojowe.</p>
                        </div>
                    </li>
                </ul>
            </div>

            <!-- Tab 3: Bio -->
            <div class="rk-auth-panel" id="tabBio">
                <h3>Budowa bez ściemy</h3>
                <div class="rk-bio-text">
                    <p>Jestem największym blogerem branży budowlanej i wykończeniowej w Polsce oraz głównym projektantem systemów płaszczyznowych. Na co dzień zarządzam portalem Projekt-Ogrzewania.pl, gdzie dzielę się bezkompromisową, techniczną wiedzą z inwestorami.</p>
                    <p>Założyłem inicjatywę <strong>"Robert Kucharski – Budowa bez ściemy"</strong> oraz grupę <strong>"NIEZATAPIALNI"</strong>, aby chronić budujących przed patologiami wykonawczymi powielanymi z pokolenia na pokolenie. <a href="https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/">Historia ogrzewania podłogowego</a> dowodzi, że ewolucja technologii wymaga otwartego umysłu, a nie ślepego podążania za hasłem "zawsze tak robiliśmy".</p>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
function switchAuthTab(tabId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-auth-tab');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja przycisku (bez animacji)
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie paneli (bez animacji)
    var contentArea = document.querySelector('.rk-auth-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-auth-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-bg: #ffffff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-hover: #f8fafc;
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    margin-bottom: 30px;
    padding-left: 15px;
    border-left: 5px solid var(--rk-faq-blue);
}

.rk-faq-container h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0 0 10px 0;
    line-height: 1.2;
}

.rk-faq-subtitle {
    font-size: 16px;
    color: #64748b;
    margin: 0;
}

.rk-faq-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-faq-item.is-open {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
}

.rk-faq-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 24px 30px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background-color 0.2s;
}

.rk-faq-trigger:hover {
    background-color: var(--rk-faq-hover);
}

.rk-faq-trigger h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.is-open .rk-faq-icon {
    background: var(--rk-faq-blue);
    color: #ffffff;
    transform: rotate(180deg);
}

.rk-faq-content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #fafafa;
}

.rk-faq-item.is-open .rk-faq-content {
    opacity: 1;
}

.rk-faq-body {
    padding: 0 30px 30px 30px;
}

.rk-faq-body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    padding-top: 20px;
    border-top: 1px dashed #cbd5e1;
}

.rk-faq-body a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-faq-body a:hover {
    border-bottom-color: var(--rk-faq-blue);
}

@media (max-width: 768px) {
    .rk-faq-trigger { padding: 20px; }
    .rk-faq-trigger h3 { font-size: 16px; }
    .rk-faq-body { padding: 0 20px 20px 20px; }
    .rk-faq-body p { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o podłogówkę w domu szkieletowym",
    "description": "Błyskawiczne inżynierskie odpowiedzi na pytania dotyczące głośności pracy, doboru podłogi, bezwładności i zużycia prądu przez pompę ciepła w systemach suchych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub panele laminowane/winylowe z oznaczeniem producenta o przydatności do wodnego ogrzewania podłogowego (opór cieplny R poniżej 0,15 m2K/W)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana podłogówka o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach i dostosowanie jej do profilu dobowego użytkowników bez konieczności dublowania systemów grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się sucha podłogówka w szkielecie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Od momentu uruchomienia pompy ciepła i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach, podczas gdy klasyczny beton potrzebuje na to od 4 do 6 godzin."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, zużycie energii będzie na tym samym lub niższym poziomie, ponieważ niska bezwładność systemu suchego umożliwia precyzyjne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z przegrzewaniem mas betonowych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-faq",
    "name": "Baza Wiedzy Interaktywnej - FAQ Systemy Suche",
    "description": "Interaktywny panel zapytań umożliwiający szybką nawigację po najczęstszych problemach instalacyjnych w budownictwie drewnianym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p class="rk-faq-subtitle">Inżynierskie fakty i mity o ogrzewaniu w konstrukcjach lekkich.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur. Zobacz również, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">jakie zasady obowiązują przy montażu instalacji na nośnym stropie drewnianym</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na specjalnych płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub dedykowane materiały laminowane. Szukaj oznaczenia producenta o przydatności do wodnego ogrzewania (opór cieplny R poniżej 0,15 m²K/W). Przeczytaj więcej o dylemacie: <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana instalacja płaszczyznowa o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach. Umożliwia precyzyjne dostosowanie krzywej grzewczej do profilu dobowego użytkowników bez konieczności dublowania kosztownych systemów. Sprawdź szczegółową <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">analizę podłogówki jako jedynego źródła ciepła</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Ile czasu nagrzewa się sucha podłogówka w szkielecie?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Od momentu uruchomienia pompy i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach. Dla porównania klasyczny zład betonowy potrzebuje na to od 4 do 6 godzin. Wynika to bezpośrednio z fizyki, co dokładnie wyjaśniam w materiale o tym <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, zużycie energii elektrycznej będzie na tym samym lub niższym poziomie. Niska bezwładność systemu suchego umożliwia bardzo precyzyjne, inteligentne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z niekontrolowanym przegrzewaniem (i późniejszym wychładzaniem) dużych mas betonowych. Dowiedz się więcej, czy <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompa ciepła efektywnie współpracuje z samą podłogówką</a>.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function toggleFaq(btn) {
    const parent = btn.parentElement;
    const content = parent.querySelector('.rk-faq-content');
    
    // Sprawdzamy, czy aktualny element jest otwarty
    const isOpen = parent.classList.contains('is-open');
    
    // Zamykamy wszystkie inne panele
    const allItems = document.querySelectorAll('.rk-faq-item');
    for (let i = 0; i < allItems.length; i++) {
        let item = allItems[i];
        item.classList.remove('is-open');
        let itemContent = item.querySelector('.rk-faq-content');
        if (itemContent !== null) {
            itemContent.style.maxHeight = null;
        }
    }
    
    // Jeśli kliknięty element nie był otwarty, to go otwieramy
    if (isOpen === false) {
        parent.classList.add('is-open');
        // Bezpieczne przypisanie max-height dynamicznie
        content.style.maxHeight = content.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-gold: #eab308;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-gray: #f8fafc;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

/* Nagłówek */
.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-gold);
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-dl-header h2 svg {
    color: var(--rk-dl-gold);
    flex-shrink: 0;
}

.rk-dl-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* Główny obszar dwukolumnowy (Desktop) */
.rk-dl-body {
    display: flex;
    flex-direction: row;
    background: #ffffff;
}

/* Lewa Kolumna - Podgląd Infografiki */
.rk-dl-preview-col {
    width: 400px;
    padding: 35px;
    background: var(--rk-dl-gray);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumb-box {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

.rk-dl-thumbnail {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}

.rk-dl-enlarge-btn {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: none;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    justify-content: center;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

.rk-dl-enlarge-btn:hover {
    background: #0369a1;
}

/* Prawa Kolumna - Treść i Przyciski */
.rk-dl-content-col {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Nawigacja w prawej kolumnie */
.rk-dl-tabs {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid var(--rk-dl-border);
    background: var(--rk-dl-gray);
}

.rk-dl-tab-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 18px 20px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    /* Celowy brak transition wg wytycznych */
}

.rk-dl-tab-btn:hover {
    background: #e2e8f0;
    color: var(--rk-dl-dark);
}

.rk-dl-tab-btn.active {
    background: #ffffff;
    color: var(--rk-dl-blue);
    border-bottom-color: var(--rk-dl-blue);
}

/* Obszar treści zakładek */
.rk-dl-panels {
    padding: 30px 35px;
    flex: 1;
}

.rk-dl-panel {
    display: none;
}

.rk-dl-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-panel p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-dl-text);
    margin: 0 0 15px 0;
}

.rk-dl-panel a {
    color: var(--rk-dl-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-dl-license-box {
    background: #fef9c3;
    border-left: 4px solid var(--rk-dl-gold);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-bottom: 20px;
}

.rk-dl-license-box p {
    margin: 0;
    color: #854d0e;
    font-size: 14px;
    font-weight: 600;
}

/* Przyciski Pobierania */
.rk-dl-actions {
    padding: 25px 35px;
    background: var(--rk-dl-gray);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 15px;
}

.rk-dl-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

.rk-dl-btn-pdf {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: 2px solid var(--rk-dl-blue);
}

.rk-dl-btn-pdf:hover {
    background: #0369a1;
}

.rk-dl-btn-img {
    background: #ffffff;
    color: var(--rk-dl-dark);
    border: 2px solid var(--rk-dl-border);
}

.rk-dl-btn-img:hover {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

/* Stopka Prawna */
.rk-dl-footer {
    padding: 15px 35px;
    background: var(--rk-dl-dark);
    color: #94a3b8;
    font-size: 13px;
    text-align: center;
    border-top: 1px solid #1e293b;
}

/* Interaktywna Nakładka na pełne zdjęcie */
.rk-img-modal {
    display: none;
    width: 100%;
    padding: 20px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-img-modal img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
}

.rk-close-modal {
    margin-top: 15px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 25px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    text-transform: uppercase;
}

.rk-close-modal:hover {
    background: #1e293b;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-body { flex-direction: column; }
    .rk-dl-preview-col { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 25px; }
    .rk-dl-tabs { flex-direction: column; }
    .rk-dl-tab-btn { text-align: left; border-bottom: none; border-left: 4px solid transparent; }
    .rk-dl-tab-btn.active { border-bottom-color: transparent; border-left-color: var(--rk-dl-blue); }
    .rk-dl-actions { flex-direction: column; padding: 25px; }
    .rk-dl-btn { width: 100%; }
    .rk-dl-panels { padding: 25px; }
    .rk-dl-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Kompendium w pigułce – Pobierz darmową infografikę instalacyjną",
    "description": "Profesjonalna infografika podsumowująca różnice i najczęstsze błędy w instalacjach ogrzewania podłogowego dla konstrukcji szkieletowych. Plik PDF gotowy na budowę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-infografika",
    "name": "Zestawienie Wizualne: Błędy Instalacyjne i Dobór Posadzek",
    "description": "Graficzna reprezentacja parametrów krytycznych (OZC, wilgoć, statyka) niezbędnych podczas audytów instalacji płaszczyznowych w technologii drewnianej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego czy warto robić to samemu",
      "jakie błędy najczęściej popełniają instalatorzy ogrzewania podłogowego",
      "wodne ogrzewanie podłogowe a meble jak połączyć komfort i aranżacje",
      "jak często trzeba serwisować ogrzewanie podłogowe",
      "schemat montażu instalacji szkielet"
    ],
    "measurementTechnique": "Agregacja inżynieryjnych danych liczbowych do postaci wizualnych diagramów porównawczych formatu A4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wektorowa ilustracja obciążeń konstrukcyjnych generowanych przez jastrych betonowy.",
        "Schemat przepływów hydraulicznych i taktowania pompy ciepła.",
        "Kompendium wiedzy do wykorzystania mobilnego (Smartfon/Tablet)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-infografika",
    "name": "Interaktywne Centrum Pobierania Infografik HVAC",
    "description": "Aplikacja webowa ułatwiająca przegląd, akceptację warunków licencji oraz błyskawiczne pobieranie wektorowych materiałów szkoleniowych w formacie PDF i WEBP.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub">
    
    <!-- Nagłówek -->
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Kompendium w pigułce – Pobierz darmową infografikę
        </h2>
        <p>Nie masz czasu czytać całego artykułu na budowie? Przygotowałem dla Ciebie czytelne, wizualne podsumowanie najważniejszych zagrożeń i parametrów.</p>
    </div>

    <!-- Moduł rozszerzonego obrazu (domyślnie ukryty) -->
    <div class="rk-img-modal" id="rkFullImage">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Pełny podgląd infografiki ogrzewania podłogowego" loading="lazy">
        <br>
        <button class="rk-close-modal" onclick="closeImage()">Zamknij Podgląd</button>
    </div>

    <!-- Główny podział na kolumny -->
    <div class="rk-dl-body" id="rkDlBody">
        
        <!-- Kolumna Lewa: Miniatura -->
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-box">
                <img decoding="async" class="rk-dl-thumbnail" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Miniatura: Ogrzewanie w szkielecie" loading="lazy">
            </div>
            <button class="rk-dl-enlarge-btn" onclick="openImage()">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Podgląd Pełnego Zdjęcia
            </button>
        </div>

        <!-- Kolumna Prawa: Informacje i Akcje -->
        <div class="rk-dl-content-col">
            
            <!-- Nawigacja zakładek -->
            <div class="rk-dl-tabs">
                <button class="rk-dl-tab-btn active" onclick="switchInfoTab('infoDesc', this)">O Materiale</button>
                <button class="rk-dl-tab-btn" onclick="switchInfoTab('infoLicense', this)">Zasady Prawne</button>
            </div>

            <!-- Treść zakładek -->
            <div class="rk-dl-panels">
                
                <div class="rk-dl-panel" id="infoDesc" style="display: block;">
                    <h3>Co zawiera plik?</h3>
                    <p>Infografika w formacie wysokiej rozdzielczości to narzędzie stworzone dla wykonawców i inwestorów. Pokazuje wprost, dlaczego należy się zastanowić, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">czy instalację ogrzewania podłogowego warto robić samemu</a>.</p>
                    <p>Omawiam na niej zjawisko punktu rosy, nośność stropu drewnianego oraz to, <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">jakie błędy najczęściej popełniają instalatorzy</a> bazując na mitach z budownictwa murowanego.</p>
                </div>

                <div class="rk-dl-panel" id="infoLicense">
                    <h3>Zasady Udostępniania</h3>
                    <div class="rk-dl-license-box">
                        <p>Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem oryginalnego logotypu portalu i bez żadnej modyfikacji pliku bazowego.</p>
                    </div>
                    <p>Zależy mi na edukacji rynku. Możesz wydrukować ten materiał na budowę, użyć go podczas konsultacji z klientem czy rozwiązywania dylematów, np. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">jak połączyć komfort wodnej podłogówki z aranżacją mebli</a>, a także w kwestii tego, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często trzeba serwisować cały układ</a>.</p>
                </div>

            </div>

            <!-- Przyciski akcji (Zawsze widoczne w prawej kolumnie) -->
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-pdf">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    Pobierz PDF
                </a>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-img">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz ZDJĘCIE
                </a>
            </div>

        </div>
    </div>

    <!-- Stopka autorska -->
    <div class="rk-dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>

</div>

<script>
function switchInfoTab(tabId, btnElement) {
    // Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-dl-tab-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-dl-panels');
    var allPanels = contentArea.getElementsByClassName('rk-dl-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // Wyświetlenie panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function openImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'block';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'none';
    }
}

function closeImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'none';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'flex';
    }
}
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

.rk-tech-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-sum-blue);
    overflow: hidden;
}

/* Nagłówki */
.rk-tech-container h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-tech-container h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-sum-blue);
    margin: 0 0 20px 0;
}

.rk-tech-container h4 {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-sum-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 10px 0;
}

.rk-tech-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-tech-desc {
    font-size: 16px;
    color: #334155;
    line-height: 1.6;
    margin-bottom: 0;
}

.rk-tech-desc a {
    color: var(--rk-sum-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny Switcher */
.rk-interactive-module {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-toggle {
    display: flex;
    background: #f1f5f9;
    border-radius: 99px;
    padding: 6px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 30px;
    border-radius: 99px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-toggle-btn.active {
    color: #ffffff;
}

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-sum-blue);
    border-radius: 99px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    z-index: 1;
}

/* Panel Wyników (Grid / Flex) */
.rk-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-stat-card {
    background: #f8fafc;
    border: 1px solid var(--rk-sum-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-stat-icon {
    width: 50px;
    height: 50px;
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    flex-shrink: 0;
    color: var(--rk-sum-blue);
}

.rk-stat-info h4 {
    margin-bottom: 5px;
    color: #94a3b8;
    font-size: 13px;
}

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0;
    line-height: 1.2;
}

.rk-stat-sub {
    font-size: 13px;
    color: #64748b;
    margin-top: 5px;
}

.val-green { color: var(--rk-sum-green); }
.val-red { color: var(--rk-sum-red); }

/* Tagi SEO Długi Ogon */
.rk-tags-cloud {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    display: inline-block;
    padding: 8px 16px;
    background: #f1f5f9;
    color: #475569;
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: #e2e8f0;
    color: var(--rk-sum-dark);
}

/* CTA */
.rk-tech-cta {
    padding: 40px 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    border-top: 1px solid #1e293b;
}

.rk-tech-cta h3 {
    color: #ffffff;
    margin-bottom: 15px;
}

.rk-tech-cta p {
    color: #94a3b8;
    margin-bottom: 25px;
    font-size: 16px;
}

.rk-btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-sum-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-tech:hover {
    background: #059669;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-tech-header, .rk-interactive-module, .rk-tags-cloud, .rk-tech-cta { padding: 25px 20px; }
    .rk-tech-container h2 { font-size: 24px; }
    .rk-toggle { flex-direction: column; background: transparent; box-shadow: none; gap: 10px; padding: 0; }
    .rk-toggle-btn { background: #f1f5f9; color: #64748b; border: 1px solid var(--rk-sum-border); }
    .rk-toggle-btn.active { background: var(--rk-sum-blue); color: #ffffff; border-color: var(--rk-sum-blue); }
    .rk-toggle-bg { display: none; /* Ukrywamy animowane tło na mobile na rzecz prostych przycisków typu akordeon/stack */ }
    .rk-stats-grid { grid-template-columns: 1fr; }
    .rk-stat-card { padding: 20px; }
    .rk-btn-tech { width: 100%; font-size: 16px; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-suchy-vs-mokry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym",
    "description": "Techniczne porównanie parametrów: obciążenie stropu, czas reakcji oraz wilgoć technologiczna. Sprawdź, dlaczego wylewka betonowa w domu szkieletowym to błąd inżynieryjny.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-porownanie",
    "name": "Parametry Fizyczne Systemów Ogrzewania Podłogowego (Suchy vs Beton)",
    "description": "Zestawienie inżynierskie obciążeń statycznych, czasów wiązania oraz pojemności cieplnej dla posadzek grzewczych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obciążenie stropu drewnianego ogrzewaniem podłogowym",
      "czas schnięcia wylewki betonowej",
      "system suchy ogrzewania podłogowego parametry",
      "wylewka na ogrzewanie podłogowe waga",
      "wilgoć technologiczna w konstrukcji szkieletowej"
    ],
    "measurementTechnique": "Analiza numeryczna zgodnie z normą PN-EN 1264 i PN-EN 1995-1-1.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Masa 30 kg/m2, Wilgoć 0 litrów, Czas schnięcia 0 dni.",
        "System Mokry (Jastrych): Masa 150 kg/m2, Wilgoć 20 litrów/m2, Czas schnięcia do 42 dni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-symulator",
    "name": "Symulator Obciążeń i Wilgoci Podłogówki w Szkielecie",
    "description": "Interaktywny symulator pozwalający przełączać się między systemem suchym a mokrym w celu weryfikacji zagrożeń dla drewnianego stropu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-container" id="rk-system-comparator">
    <div class="rk-tech-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym</h2>
        <p class="rk-tech-desc">
            Decyzja o wylaniu ton betonu na drewniany strop to punkt krytyczny inwestycji. Wybór technologii określa nie tylko bezwładność cieplną budynku, ale przede wszystkim bezpieczeństwo nośności drewna C24. Dowiedz się dokładnie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy</a> i zestaw to z ryzykiem, jakie niesie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">klasyczna wylewka betonowa</a>.
        </p>
    </div>

    <div class="rk-interactive-module">
        <h3>Symulator wpływu technologii na konstrukcję</h3>
        
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle">
                <div class="rk-toggle-bg" id="rkToggleBg"></div>
                <button class="rk-toggle-btn active" onclick="switchTech('suchy')" id="btnSuchy">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
                    System Suchy (Lekki)
                </button>
                <button class="rk-toggle-btn" onclick="switchTech('mokry')" id="btnMokry">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    Wylewka Cementowa
                </button>
            </div>
        </div>

        <div class="rk-stats-grid">
            <!-- Karta 1 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>OBCIĄŻENIE STROPU / M2</h4>
                    <p class="rk-stat-val val-green" id="valWeight">~30 kg</p>
                    <p class="rk-stat-sub" id="subWeight">Całkowicie bezpieczne dla belek stropowych.</p>
                </div>
            </div>
            
            <!-- Karta 2 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>CZAS REAKCJI GRZEWCZEJ</h4>
                    <p class="rk-stat-val val-green" id="valTime">30 - 60 min</p>
                    <p class="rk-stat-sub" id="subTime">Błyskawiczne dopasowanie do zysków solarnych.</p>
                </div>
            </div>

            <!-- Karta 3 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>WILGOĆ TECHNOLOGICZNA</h4>
                    <p class="rk-stat-val val-green" id="valMoisture">0 litrów</p>
                    <p class="rk-stat-sub" id="subMoisture">Brak ryzyka pęcznienia drewna konstrukcyjnego.</p>
                </div>
            </div>

            <!-- Karta 4 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>GOTOWOŚĆ DO UKŁADANIA PANAELI</h4>
                    <p class="rk-stat-val val-green" id="valDrying">Natychmiast</p>
                    <p class="rk-stat-sub" id="subDrying">Oszczędzasz min. miesiąc postoju budowy.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-tags-cloud">
        <span class="rk-mat-tag"># ogrzewanie podłogowe w domu szkieletowym</span>
        <span class="rk-mat-tag"># system suchy ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># wylewka na ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># lekka podłogówka bez wylewki</span>
        <span class="rk-mat-tag"># obciążenie stropu drewnianego</span>
        <span class="rk-mat-tag"># czas schnięcia wylewki</span>
        <span class="rk-mat-tag"># frezowanie ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># cena za m2 robocizny podłogówki</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe wodne bez wylewki</span>
        <span class="rk-mat-tag"># wilgoć technologiczna w domu drewnianym</span>
    </div>

    <div class="rk-tech-cta">
        <h3>Zabezpiecz budżet i uniknij błędów</h3>
        <p>Zobacz pełne analizy, wyliczenia i inżynierskie przewodniki. Przejdź do największej w Polsce bazy wiedzy o płaszczyznowych systemach grzewczych.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-tech">
            BAZA WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
function switchTech(type) {
    const btnSuchy = document.getElementById('btnSuchy');
    const btnMokry = document.getElementById('btnMokry');
    const bg = document.getElementById('rkToggleBg');
    
    // Zmienne DOM dla wyników
    const valWeight = document.getElementById('valWeight');
    const subWeight = document.getElementById('subWeight');
    const valTime = document.getElementById('valTime');
    const subTime = document.getElementById('subTime');
    const valMoisture = document.getElementById('valMoisture');
    const subMoisture = document.getElementById('subMoisture');
    const valDrying = document.getElementById('valDrying');
    const subDrying = document.getElementById('subDrying');

    if (type === 'suchy') {
        btnSuchy.classList.add('active');
        btnMokry.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(0)';
        }

        valWeight.textContent = '~30 kg';
        valWeight.className = 'rk-stat-val val-green';
        subWeight.textContent = 'Całkowicie bezpieczne dla belek stropowych.';
        
        valTime.textContent = '30 - 60 min';
        valTime.className = 'rk-stat-val val-green';
        subTime.textContent = 'Błyskawiczne dopasowanie do zysków solarnych.';

        valMoisture.textContent = '0 litrów';
        valMoisture.className = 'rk-stat-val val-green';
        subMoisture.textContent = 'Brak ryzyka pęcznienia drewna konstrukcyjnego.';

        valDrying.textContent = 'Natychmiast';
        valDrying.className = 'rk-stat-val val-green';
        subDrying.textContent = 'Oszczędzasz min. miesiąc postoju budowy.';

    } else {
        btnMokry.classList.add('active');
        btnSuchy.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(100%)';
        }

        valWeight.textContent = '~150 kg';
        valWeight.className = 'rk-stat-val val-red';
        subWeight.textContent = 'Ryzyko przekroczenia nośności statycznej stropu.';
        
        valTime.textContent = '4 - 6 godzin';
        valTime.className = 'rk-stat-val val-red';
        subTime.textContent = 'Wysoka bezwładność, przegrzewanie pomieszczeń.';

        valMoisture.textContent = 'Setki litrów';
        valMoisture.className = 'rk-stat-val val-red';
        subMoisture.textContent = 'Zagrożenie pleśnią i pękaniem drewna budowlanego.';

        valDrying.textContent = '4 - 6 tygodni';
        valDrying.className = 'rk-stat-val val-red';
        subDrying.textContent = 'Blokada prac wykończeniowych na budowie.';
    }
}
</script>



<style>
  .po-pref-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 12px;
    padding: 24px;
    margin: 30px 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow 0.3s ease;
  }
  .po-pref-container:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .po-pref-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .po-pref-container h2 {
    margin: 0;
    font-size: 1.4rem;
    color: #202124;
    font-weight: 600;
  }
  .po-pref-container h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #5f6368;
    font-weight: 400;
  }
  .po-pref-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
    padding: 16px 20px;
    border-radius: 8px;
    border: 1px solid #e8eaed;
  }
  .po-pref-info {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .po-pref-icon svg {
    width: 40px;
    height: 40px;
  }
  .po-pref-text p {
    margin: 0;
    color: #3c4043;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .po-pref-text strong {
    color: #1a73e8;
  }
  
  /* Interaktywny przełącznik */
  .po-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .po-toggle {
    position: relative;
    width: 52px;
    height: 28px;
    background-color: #dadce0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .po-toggle::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }
  .po-toggle.active {
    background-color: #1a73e8;
  }
  .po-toggle.active::after {
    transform: translateX(24px);
  }
  
  /* Przycisk akcji (ukryty domyślnie, pojawia się po interakcji) */
  .po-action-btn {
    display: none;
    text-decoration: none;
    background: #1a73e8;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 500;
    text-align: center;
    font-size: 1rem;
    transition: background 0.2s;
    margin-top: 10px;
  }
  .po-action-btn:hover {
    background: #1557b0;
    color: #ffffff;
  }
  .po-action-btn.visible {
    display: block;
    animation: fadeIn 0.4s ease;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* RWD - Mobile (układ pionowy, akordeon, brak przycisków obok siebie) */
  @media (max-width: 768px) {
    .po-pref-body {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
    .po-toggle-wrapper {
      width: 100%;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #dadce0;
    }
    .po-action-btn {
      width: 100%;
      box-sizing: border-box;
    }
  }
</style>

<div class="po-pref-container">
  <div class="po-pref-header">
    <h2>Wspieraj Projekt-Ogrzewania.pl</h2>
    <h3>Zostań z nami na dłużej w wynikach Google</h3>
  </div>
  
  <div class="po-pref-body">
    <div class="po-pref-info">
      <div class="po-pref-icon">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"></path>
          <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"></path>
          <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"></path>
          <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"></path>
        </svg>
      </div>
      <div class="po-pref-text">
        <p>Ponad 1000 poradników o ogrzewaniu i budowie domu.<br>
        <strong>Dodaj nas do ulubionych źródeł</strong>, aby łatwiej znajdować nasze rozwiązania techniczne.</p>
      </div>
    </div>
    
    <div class="po-toggle-wrapper">
      <span style="font-size: 0.9rem; color: #5f6368; font-weight: 500;">Aktywuj źródło</span>
      <div class="po-toggle" id="googleSourceToggle" aria-label="Włącz preferowane źródło"></div>
    </div>
  </div>
  
  <a href="https://google.com/preferences/source?q=https://projekt-ogrzewania.pl" target="_blank" rel="noopener noreferrer" class="po-action-btn" id="googleSourceLink">
    Przejdź do Google i potwierdź
  </a>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('googleSourceToggle');
    var actionLink = document.getElementById('googleSourceLink');
    
    toggleBtn.addEventListener('click', function() {
      if (toggleBtn.classList.contains('active') === false) {
        toggleBtn.classList.add('active');
        actionLink.classList.add('visible');
      } else {
        toggleBtn.classList.remove('active');
        actionLink.classList.remove('visible');
      }
    });
  });
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ogrzewanie podłogowe w domu szkieletowym",
        "lekka podłogówka system suchy",
        "wylewka na drewnianym stropie",
        "projekt instalacji ogrzewania podłogowego",
        "taktowanie pompy ciepła w szkielecie"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 11:26:18 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ile wat na m2]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator strat ciepła]]></category>
		<category><![CDATA[moc ogrzewania domu]]></category>
		<category><![CDATA[obliczanie strat ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[straty ciepła domu]]></category>
		<category><![CDATA[zapotrzebowanie na ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3743</guid>

					<description><![CDATA[<p>Obliczenie zapotrzebowania na ciepło budynku to pierwszy krok do prawidłowego zaprojektowania instalacji grzewczej. W tym poradniku pokazujemy, jak w prosty sposób oszacować straty energii w domu i sprawdzić, czy ogrzewanie podłogowe będzie wystarczające. Dzięki praktycznym wskazówkom oraz przykładom obliczeń dowiesz się, jak wykorzystać kalkulator strat ciepła domu – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie, aby ocenić moc instalacji, temperaturę zasilania oraz potencjalne koszty eksploatacji. To wiedza szczególnie przydatna dla inwestorów budujących dom lub modernizujących starsze budynki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-brand: #2563eb;
    --rk-intro-brand-light: #eff6ff;
    --rk-intro-accent: #f97316;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-success: #10b981;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Sekcja Główna - Hook & Tytuł */
.rk-intro-header {
    padding: 50px 50px 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
}

.rk-intro-title {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    line-height: 1.25;
    margin: 0 0 25px 0;
}

.rk-intro-title span {
    color: var(--rk-intro-brand);
}

/* Hook Section */
.rk-intro-hook-box {
    background: #ffffff;
    border-left: 5px solid var(--rk-intro-accent);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-intro-hook-box p {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    font-weight: 500;
}

.rk-intro-hook-box strong {
    color: var(--rk-intro-dark);
    font-weight: 800;
}

.rk-intro-description {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-intro-text);
    margin: 0;
}

/* Sekcja Czego się dowiesz (Kafelki) */
.rk-intro-learn-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-intro-learn-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-intro-card {
    background: var(--rk-intro-brand-light);
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-intro-card-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-intro-brand);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #ffffff;
}

.rk-intro-card-content h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-card-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
}

/* Author Tag */
.rk-intro-author {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid var(--rk-intro-border);
}

.rk-intro-author-avatar {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: 2px solid var(--rk-intro-brand);
    object-fit: cover;
}

.rk-intro-author-info span {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-author-info small {
    font-size: 12px;
    color: var(--rk-intro-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .rk-intro-header { padding: 35px 25px; }
    .rk-intro-title { font-size: 26px; }
    .rk-intro-hook-box { padding: 20px; }
    .rk-intro-learn-section { padding: 35px 25px; }
    .rk-intro-grid { grid-template-columns: 1fr; }
    .rk-intro-card { padding: 20px; flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie?",
    "description": "Zanim wydasz pieniądze na pompę ciepła, poznaj inżynierskie metody szacowania mocy. Kompletny przewodnik po obliczeniach OZC dla inwestorów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-intro",
    "name": "Parametry wejściowe do obliczeń zapotrzebowania cieplnego budynku",
    "description": "Baza wiedzy definiująca podstawowe składowe analizy cieplnej budynków jednorodzinnych: izolacyjność, wentylację oraz założenia projektowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła",
      "obliczanie zapotrzebowania na ogrzewanie",
      "moc pompy ciepła",
      "projekt ogrzewania podłogowego",
      "obciążenie cieplne budynku"
    ],
    "measurementTechnique": "Przegląd inżynierski: Weryfikacja parametrów izolacyjnych, mostków termicznych oraz wentylacyjnych wpływających na dobór źródła ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metodyka określania mocy cieplnej bez ryzyka przewymiarowania instalacji.",
        "Analiza parametrów przegród (U) i ich wpływ na całkowite zapotrzebowanie.",
        "Zasady doboru rozstawu rur grzewczych na podstawie wyniku W/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-intro",
    "name": "Przewodnik: Kalkulator Strat Ciepła",
    "description": "Edukacyjny moduł wprowadzający inwestora do zagadnień fizyki budowli, stanowiący mapę drogową do samodzielnego szacowania obciążenia cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Kompendium Inwestora
        </div>
        
        <h2 class="rk-intro-title">Kalkulator strat ciepła budynku – <span>jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie?</span></h2>
        
        <div class="rk-intro-hook-box">
            <p><strong>Zanim wydasz kilkadziesiąt tysięcy złotych</strong> na pompę ciepła lub instalację podłogówki, musisz znać jedną, absolutnie fundamentalną liczbę: rzeczywiste obciążenie cieplne Twojego domu. Dobór źródła ciepła „na oko” to najprostsza droga do drastycznego przewymiarowania systemu, ciągłych awarii sprężarki i gigantycznych rachunków za prąd.</p>
        </div>

        <p class="rk-intro-description">Planowanie ogrzewania podłogowego w nowym domu lub podczas modernizacji starej instalacji zawsze rozpoczyna się od kluczowego pytania: jak samodzielnie obliczyć straty ciepła budynku pod ogrzewanie podłogowe, aby mieć pewność, że system będzie działał efektywnie? Właśnie w tym pomaga <strong>kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie</strong>, który pozwala w prosty sposób oszacować, ile energii potrzebuje budynek do utrzymania komfortowej temperatury. Narzędzie to, opierając się na uproszczonych algorytmach inżynierskich, pozwala inwestorowi na precyzyjne określenie mocy źródła ciepła.</p>
        
        <div class="rk-intro-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-intro-author-avatar" loading="lazy">
            <div class="rk-intro-author-info">
                <span>Jako wieloletni praktyk i twórca tego poratlu, w tym artykule przeprowadzę Cię przez cały proces matematyczny.</span>
                <small>Robert Kucharski, CEO projekt-ogrzewania.pl</small>
            </div>
        </div>
    </div>

    <div class="rk-intro-learn-section">
        <h3 class="rk-intro-learn-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-accent)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Z tego poradnika dowiesz się:
        </h3>
        
        <div class="rk-intro-grid">
            
            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Algorytmy i Narzędzia</h4>
                    <p>Jak w uproszczony sposób korzystać ze wzorów na przenikanie (U) oraz straty wentylacyjne, bez konieczności opłacania drogich audytów na wczesnym etapie inwestycji.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-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>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Diagnostyka Przegród</h4>
                    <p>Zrozumiesz, dlaczego gruby styropian to nie wszystko, jak obliczyć opór cieplny paneli podłogowych i jak strefa klimatyczna wpływa na bilans Twojego domu.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 22 20 2 20 12 2"></polygon><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Najdroższe Błędy Inwestorów</h4>
                    <p>Dowiesz się, jakich 6 najczęstszych pomyłek (np. zła kubatura, brak izolacji brzegowej) unikać podczas szacowania mocy, aby nie zawyżyć sztucznie kosztów instalacji.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16M4 12h16M4 18h16"></path><path d="M12 2v20"></path></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Przełożenie na Projekt</h4>
                    <p>Zobaczysz, jak uzyskane Waty na metr kwadratowy (W/m²) bezpośrednio decydują o zagęszczeniu rur (co 10 czy 15 cm), długości pętli i ustawieniach rotametrów.</p>
                </div>
            </div>

        </div>
    </div>

</div>



<style>
:root {
    --rk-wt-dark: #0f172a;
    --rk-wt-panel: #1e293b;
    --rk-wt-brand: #0ea5e9; /* Główny niebieski */
    --rk-wt-brand-light: #f0f9ff;
    --rk-wt-accent: #f97316; /* Pomarańczowy dla ciepła */
    --rk-wt-success: #10b981;
    --rk-wt-warn: #f59e0b;
    --rk-wt-danger: #ef4444;
    --rk-wt-bg: #ffffff;
    --rk-wt-border: #e2e8f0;
    --rk-wt-text: #334155;
    --rk-wt-muted: #64748b;
}

.rk-wt-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wt-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.3);
    overflow: hidden;
    color: var(--rk-wt-dark);
}

/* Nagłówek Sekcji */
.rk-wt-header {
    background: linear-gradient(135deg, var(--rk-wt-dark) 0%, #082f49 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-wt-brand);
}

.rk-wt-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.2);
}

.rk-wt-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-wt-title span { color: #38bdf8; }

.rk-wt-direct-box {
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-wt-accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
}

.rk-wt-direct-box p {
    margin: 0 0 10px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #e0f2fe;
}

.rk-wt-direct-box p:last-child { margin: 0; }
.rk-wt-direct-box strong { color: #ffffff; }

/* Sekcja Interaktywna */
.rk-wt-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-wt-interactive h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    margin: 0 0 10px 0;
}

.rk-wt-subtitle {
    text-align: center;
    font-size: 15px;
    color: var(--rk-wt-muted);
    margin: 0 0 35px 0;
}

/* Przełącznik Budynków */
.rk-wt-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-wt-tab-btn {
    background: #ffffff;
    border: 2px solid var(--rk-wt-border);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-wt-tab-btn:hover {
    border-color: var(--rk-wt-brand);
    transform: translateY(-3px);
}

.rk-wt-tab-btn.active {
    border-color: var(--rk-wt-brand);
    background: var(--rk-wt-brand-light);
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.2);
}

.rk-wt-tab-icon {
    width: 40px;
    height: 40px;
    background: #f1f5f9;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-wt-muted);
    transition: 0.3s;
}

.rk-wt-tab-btn.active .rk-wt-tab-icon {
    background: var(--rk-wt-brand);
    color: #ffffff;
}

.rk-wt-tab-text {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-wt-dark);
}

/* Grid Wyników i Animacji */
.rk-wt-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* Kafelki z danymi (Zastępują Tabelę) */
.rk-wt-data-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-wt-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-wt-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-wt-data-card.highlight {
    background: var(--rk-wt-dark);
    border-color: var(--rk-wt-dark);
}

.rk-wt-data-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-wt-muted);
}

.rk-wt-data-card.highlight .rk-wt-data-label {
    color: #94a3b8;
}

.rk-wt-data-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    text-align: right;
}

.rk-wt-data-card.highlight .rk-wt-data-val {
    color: #ffffff;
    font-size: 20px;
}

/* SVG Symulator */
.rk-wt-visual {
    background: var(--rk-wt-dark);
    border-radius: 16px;
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.rk-wt-svg { width: 100%; height: 100%; }

/* Animacje i stany SVG */
.anim-heat-floor { transition: fill 0.5s ease; }
.anim-heat-escape { transition: opacity 0.5s ease; stroke-dasharray: 6 6; }
.anim-warning-sign { opacity: 0; transition: opacity 0.3s; transform-origin: center; }

/* Stan: Nowy Dom */
.state-new .anim-heat-floor { fill: #f59e0b; }
.state-new .anim-heat-escape { opacity: 0.2; stroke: #f59e0b; animation: floatHeat 3s linear infinite; }

/* Stan: Modernizacja */
.state-mod .anim-heat-floor { fill: #ea580c; }
.state-mod .anim-heat-escape { opacity: 0.6; stroke: #ea580c; animation: floatHeat 2s linear infinite; stroke-width: 4; }

/* Stan: Stary Dom */
.state-old .anim-heat-floor { fill: #ef4444; }
.state-old .anim-heat-escape { opacity: 1; stroke: #ef4444; animation: floatHeat 1s linear infinite; stroke-width: 6; }
.state-old .anim-warning-sign { opacity: 1; animation: pulseWarn 1s infinite alternate; }

@keyframes floatHeat { to { stroke-dashoffset: -20; } }
@keyframes pulseWarn { from { transform: scale(0.9); } to { transform: scale(1.1); } }

/* Podsumowanie tekstowe */
.rk-wt-summary {
    padding: 0 50px 40px 50px;
    background: #f8fafc;
}

.rk-wt-summary-box {
    background: #ffffff;
    border: 1px solid var(--rk-wt-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-wt-summary-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-wt-brand-light);
    color: var(--rk-wt-brand);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-wt-summary-text p {
    margin: 0 0 10px 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-wt-text);
}

.rk-wt-link {
    color: var(--rk-wt-brand);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px dashed rgba(14, 165, 233, 0.4);
    transition: 0.3s;
    font-size: 14px;
}

.rk-wt-link:hover {
    color: #0284c7;
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-wt-header { padding: 35px 20px; }
    .rk-wt-title { font-size: 24px; }
    .rk-wt-direct-box { padding: 15px; }
    .rk-wt-interactive { padding: 30px 20px; }
    .rk-wt-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-wt-tab-btn { flex-direction: row; padding: 12px 20px; }
    .rk-wt-grid { grid-template-columns: 1fr; }
    .rk-wt-data-card { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-wt-data-val { text-align: left; }
    .rk-wt-visual { min-height: 220px; }
    .rk-wt-summary { padding: 0 20px 30px 20px; }
    .rk-wt-summary-box { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-w-m2",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Ile watów ogrzewania podłogowego na metr kwadratowy (W/m²) potrzebuje nowoczesny dom?",
    "description": "Analiza wskaźników zapotrzebowania cieplnego budynku W/m2 według standardów WT 2021 oraz normy PN-EN 1264. Sprawdź limity mocy dla ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-w-m2",
    "name": "Wskaźniki zapotrzebowania na ciepło W/m2 (Tabela techniczna)",
    "description": "Zestawienie współczynników przenikania ciepła przegród oraz jednostkowego zapotrzebowania na moc grzewczą w zależności od standardu budynku (Nowy, Po termomodernizacji, Stary).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na ciepło W/m2",
      "moc ogrzewania podłogowego z m2",
      "maksymalna temperatura podłogówki",
      "norma PN-EN 1264",
      "współczynnik przenikania U ściany"
    ],
    "measurementTechnique": "Dane tabelaryczne określające relację między izolacyjnością budynku a wymaganą gęstością i temperaturą zasilania układu płaszczyznowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Nowy dom WT 2021: 45 W/m2, U ściany 0.15-0.18, zasilanie 30-35°C (Idealne)",
        "Dom z lat 90 po ociepleniu: 75 W/m2, U ściany 0.25-0.30 (Warunkowe, gęsty rozstaw)",
        "Stary dom: 160 W/m2, U ściany 1.20-1.50 (Brak możliwości samej podłogówki)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-w-m2",
    "name": "Symulator Standardu Energetycznego W/m2",
    "description": "Interaktywny panel prezentujący limity mocy grzewczej i ryzyko przegrzania posadzki w zależności od izolacji termicznej budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wt-container" id="rk-wt-app">
    
    <div class="rk-wt-header">
        <div class="rk-wt-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Bilans Mocy W/m²
        </div>
        <h2 class="rk-wt-title">Ile watów ogrzewania podłogowego na metr kwadratowy (W/m²) <span>potrzebuje nowoczesny dom?</span></h2>
        
        <div class="rk-wt-direct-box">
            <p><strong>Bezpośrednia odpowiedź:</strong> Nowoczesny dom jednorodzinny spełniający standardy WT 2021 wykazuje jednostkowe zapotrzebowanie na ciepło na poziomie od <strong>40 W/m² do 50 W/m²</strong> w najzimniejszy dzień roku. Maksymalna dopuszczalna norma emisji ciepła przez podłogę w strefie stałego przebywania ludzi wynosi <strong>80 W/m²</strong> (reguluje to międzynarodowa norma <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" style="color:#7dd3fc;">PN-EN 1264</a>).</p>
            <p>Gdy zapotrzebowanie przekracza bezpieczną granicę (np. w starych domach), posadzka staje się zbyt gorąca. Wymuszanie mocy powyżej 100 W/m² z samej podłogówki prowadzi do temperatur rzędu 32-35°C, co wywołuje syndrom „ciężkich nóg” i pękanie okładzin.</p>
        </div>
    </div>

    

    <div class="rk-wt-interactive">
        <h3>Wskaźniki zapotrzebowania na ciepło</h3>
        <p class="rk-wt-subtitle">Wybierz standard izolacji swojego budynku, aby sprawdzić parametry dla przykładowego domu 150 m².</p>
        
        <div class="rk-wt-tabs">
            <div class="rk-wt-tab-btn active" onclick="rkUpdateWT('new')">
                <div class="rk-wt-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></div>
                <div class="rk-wt-tab-text">Nowy Dom<br><span style="font-size:11px; font-weight:normal; color:var(--rk-wt-muted)">WT 2021 / 2026</span></div>
            </div>
            <div class="rk-wt-tab-btn" onclick="rkUpdateWT('mod')">
                <div class="rk-wt-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-wt-tab-text">Po modernizacji<br><span style="font-size:11px; font-weight:normal; color:var(--rk-wt-muted)">Docieplony (Lata 90.)</span></div>
            </div>
            <div class="rk-wt-tab-btn" onclick="rkUpdateWT('old')">
                <div class="rk-wt-tab-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg></div>
                <div class="rk-wt-tab-text">Stary Dom<br><span style="font-size:11px; font-weight:normal; color:var(--rk-wt-muted)">Brak izolacji</span></div>
            </div>
        </div>

        <div class="rk-wt-grid">
            
            <div class="rk-wt-data-wrapper">
                <div class="rk-wt-data-card">
                    <span class="rk-wt-data-label">Współczynnik U ściany</span>
                    <span class="rk-wt-data-val"><span id="rk-wt-uwall">0,15 – 0,18</span> <span style="font-size:12px; color:var(--rk-wt-muted)">W/(m²·K)</span></span>
                </div>
                <div class="rk-wt-data-card">
                    <span class="rk-wt-data-label">Współczynnik U okien</span>
                    <span class="rk-wt-data-val"><span id="rk-wt-uwin">0,80 – 0,90</span> <span style="font-size:12px; color:var(--rk-wt-muted)">W/(m²·K)</span></span>
                </div>
                <div class="rk-wt-data-card highlight" id="card-req">
                    <span class="rk-wt-data-label">Średnie zapotrzebowanie</span>
                    <span class="rk-wt-data-val"><span id="rk-wt-req">45</span> <span style="font-size:14px;">W/m²</span></span>
                </div>
                <div class="rk-wt-data-card">
                    <span class="rk-wt-data-label">Całkowita moc dla 150 m²</span>
                    <span class="rk-wt-data-val"><span id="rk-wt-tot">6,75</span> <span style="font-size:12px; color:var(--rk-wt-muted)">kW</span></span>
                </div>
                <div class="rk-wt-data-card">
                    <span class="rk-wt-data-label">Zdatność do podłogówki</span>
                    <span class="rk-wt-data-val" id="rk-wt-stat" style="font-size:14px;">Idealna (zasilanie 30-35°C)</span>
                </div>
            </div>

            <div class="rk-wt-visual state-new" id="rk-wt-svg-box">
                <svg class="rk-wt-svg" viewBox="0 0 200 150">
                    <rect x="20" y="40" width="160" height="90" fill="none" stroke="#64748b" stroke-width="4" />
                    <rect x="140" y="50" width="40" height="50" fill="rgba(56, 189, 248, 0.1)" stroke="#38bdf8" stroke-width="2" />
                    
                    <rect class="anim-heat-floor" x="20" y="120" width="160" height="10" />
                    <circle cx="40" cy="125" r="3" fill="#ffffff" />
                    <circle cx="70" cy="125" r="3" fill="#ffffff" />
                    <circle cx="100" cy="125" r="3" fill="#ffffff" />
                    <circle cx="130" cy="125" r="3" fill="#ffffff" />
                    <circle cx="160" cy="125" r="3" fill="#ffffff" />

                    <path class="anim-heat-escape" d="M 60 40 L 60 10" fill="none" stroke-width="2" />
                    <path class="anim-heat-escape" d="M 100 40 L 100 10" fill="none" stroke-width="2" />
                    
                    <path class="anim-heat-escape" d="M 180 60 L 220 60" fill="none" stroke-width="2" />
                    <path class="anim-heat-escape" d="M 180 80 L 220 80" fill="none" stroke-width="2" />

                    <g class="anim-warning-sign" transform="translate(100, 80)">
                        <polygon points="0,-20 -20,15 20,15" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                        <text x="0" y="10" fill="#ffffff" font-size="20" font-weight="bold" text-anchor="middle">!</text>
                    </g>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-wt-summary">
        <div class="rk-wt-summary-box">
            <div class="rk-wt-summary-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
            </div>
            <div class="rk-wt-summary-text">
                <p>Jeśli z obliczeń w Twoim arkuszu lub audycie wynika wskaźnik na poziomie <strong>40-50 W/m²</strong>, system płaszczyznowy będzie pracował w trybie niskotemperaturowym. Oznacza to zużywanie absolutnie minimalnej ilości energii elektrycznej przez pompę ciepła lub gazu w kotle kondensacyjnym.</p>
                <p>Przy wysokich stratach (np. 160 W/m²), sama podłogówka nie wystarczy. Pamiętaj, by nie przegrzewać posadzki i zadbać o izolację. Przeczytaj również, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/" class="rk-wt-link">czy podłogówka może być jedynym źródłem ciepła w domu</a> oraz dowiedz się, <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-wt-link">jaka jest optymalna temperatura posadzki</a> dla zdrowia mieszkańców.</p>
            </div>
        </div>
    </div>

</div>

<script>
const houseData = {
    new: {
        wU: '0,15 – 0,18', winU: '0,80 – 0,90', req: '45', tot: '6,75', stat: 'Idealna (zasilanie 30-35°C)',
        color: '#10b981', stateClass: 'state-new'
    },
    mod: {
        wU: '0,25 – 0,30', winU: '1,30 – 1,60', req: '75', tot: '11,25', stat: 'Warunkowa (gęsty rozstaw)',
        color: '#f59e0b', stateClass: 'state-mod'
    },
    old: {
        wU: '1,20 – 1,50', winU: '2,50 – 3,00', req: '160', tot: '24,00', stat: 'Brak (wymagane grzejniki)',
        color: '#ef4444', stateClass: 'state-old'
    }
};

function rkUpdateWT(type) {
    const btns = document.querySelectorAll('.rk-wt-tab-btn');
    btns.forEach(b => b.classList.remove('active'));
    event.currentTarget.classList.add('active');

    const data = houseData[type];
    
    document.getElementById('rk-wt-uwall').innerText = data.wU;
    document.getElementById('rk-wt-uwin').innerText = data.winU;
    document.getElementById('rk-wt-req').innerText = data.req;
    document.getElementById('rk-wt-tot').innerText = data.tot;
    
    const statEl = document.getElementById('rk-wt-stat');
    statEl.innerText = data.stat;
    statEl.style.color = data.color;

    const reqCard = document.getElementById('card-req');
    reqCard.style.backgroundColor = data.color;
    reqCard.style.borderColor = data.color;

    const svgBox = document.getElementById('rk-wt-svg-box');
    svgBox.className = 'rk-wt-visual ' + data.stateClass;
}
</script>



<style>
:root {
    --rk-zone-dark: #0f172a;
    --rk-zone-panel: #1e293b;
    --rk-zone-brand: #0284c7; 
    --rk-zone-brand-light: #e0f2fe;
    --rk-zone-accent: #f59e0b; /* Pomarańcz - Ciepło wewnątrz */
    --rk-zone-freeze: #3b82f6; /* Błękit - Zimno na zewnątrz */
    --rk-zone-bg: #ffffff;
    --rk-zone-border: #e2e8f0;
    --rk-zone-text: #334155;
    --rk-zone-muted: #64748b;
}

.rk-zone-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-zone-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.3);
    overflow: hidden;
    color: var(--rk-zone-dark);
}

/* Nagłówek Sekcji */
.rk-zone-header {
    background: linear-gradient(135deg, var(--rk-zone-dark) 0%, #082f49 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-zone-brand);
}

.rk-zone-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-zone-header h2 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-zone-header h2 span { color: #38bdf8; }

.rk-zone-direct {
    font-size: 15px;
    line-height: 1.7;
    color: #e0f2fe;
    margin: 0;
    padding-left: 20px;
    border-left: 3px solid var(--rk-zone-accent);
}

.rk-zone-direct strong {
    color: #ffffff;
}

/* Moduł Interaktywny */
.rk-zone-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-zone-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
    align-items: center;
}

/* Kontrolki - Suwak Stref */
.rk-zone-controls {
    background: #ffffff;
    border: 1px solid var(--rk-zone-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-zone-ctrl-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 25px;
}

.rk-zone-ctrl-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-zone-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
}

.rk-zone-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-zone-brand);
    line-height: 1;
}

.rk-zone-slider-wrap {
    position: relative;
    padding: 20px 0;
}

.rk-zone-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: linear-gradient(to right, #7dd3fc, #1e3a8a);
    border-radius: 4px;
    outline: none;
}

.rk-zone-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-zone-brand);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    transition: transform 0.1s;
}

.rk-zone-range::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-zone-markers {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-zone-muted);
}

/* Wyniki (Kafelki) */
.rk-zone-data-box {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 25px;
}

.rk-zone-card {
    background: #f1f5f9;
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-left: 4px solid var(--rk-zone-brand);
}

.rk-zone-card-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-zone-text);
}

.rk-zone-card-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-zone-dark);
}

.rk-zone-card-val span {
    font-size: 12px;
    color: var(--rk-zone-muted);
}

/* Prawa Kolumna - SVG Wizualizacja */
.rk-zone-visual {
    background: var(--rk-zone-dark);
    border-radius: 20px;
    height: 100%;
    min-height: 320px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #334155;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}

.rk-zone-svg {
    width: 100%;
    height: 100%;
}

/* Bloki Tekstowe z Obliczeniami */
.rk-zone-content {
    padding: 0 50px 40px 50px;
    background: #f8fafc;
}

.rk-zone-content h3 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-zone-dark);
}

.rk-zone-formula-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-zone-formula-box {
    background: #ffffff;
    border: 1px solid var(--rk-zone-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-zone-formula-box h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-zone-brand);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-zone-formula-box p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-zone-text);
}

.rk-math-block {
    background: #f1f5f9;
    padding: 12px 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    font-size: 13px;
    color: var(--rk-zone-dark);
    border-left: 3px solid var(--rk-zone-accent);
}

.rk-math-block b {
    color: #ef4444;
}

.rk-zone-alert {
    margin-top: 25px;
    padding: 20px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    color: #92400e;
    font-size: 14px;
    line-height: 1.6;
    display: flex;
    gap: 15px;
}

.rk-zone-link {
    color: var(--rk-zone-brand);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px dashed rgba(2, 132, 199, 0.4);
    transition: 0.3s;
}

.rk-zone-link:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Animacje SVG */
.anim-thermo-fluid { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.5s; transform-origin: bottom; }
.anim-frost { transition: opacity 0.5s; }
.anim-heat-wave { stroke-dasharray: 6 6; animation: flowHeat 1.5s linear infinite; }
@keyframes flowHeat { to { stroke-dashoffset: -12; } }

@media (max-width: 768px) {
    .rk-zone-header { padding: 35px 25px; }
    .rk-zone-interactive { padding: 30px 25px; }
    .rk-zone-grid { grid-template-columns: 1fr; }
    .rk-zone-content { padding: 0 25px 30px 25px; }
    .rk-zone-formula-grid { grid-template-columns: 1fr; }
    .rk-zone-visual { min-height: 250px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-strefy-klimatyczne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Jak strefa klimatyczna w Polsce wpływa na wynik kalkulatora strat ciepła?",
    "description": "Zobacz, jak błędne przyjęcie projektowej temperatury zewnętrznej według normy PN-EN 12831 powoduje niedoszacowanie instalacji nawet o 22%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-strefy",
    "name": "Wpływ Stref Klimatycznych na Projektowe Obciążenie Cieplne",
    "description": "Dane z normy PN-EN 12831 obrazujące wahania zapotrzebowania cieplnego w zależności od przypisanej strefy klimatycznej w Polsce (od I do V).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefy klimatyczne w Polsce",
      "norma PN-EN 12831",
      "projektowa temperatura zewnętrzna",
      "dobór mocy pompy ciepła",
      "kalkulator strat ciepła strefy"
    ],
    "measurementTechnique": "Analiza różnic w obciążeniu cieplnym ściany o stałym współczynniku przenikania (U=0,20) w funkcji strefy klimatycznej (ΔT od 36 K do 44 K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa I (Świnoujście): -16°C. Różnica temperatur (ΔT) wynosi 36 K.",
        "Strefa III (Polska Centralna): -20°C. Różnica temperatur (ΔT) wynosi 40 K.",
        "Strefa V (Suwałki, Zakopane): -24°C. Różnica temperatur (ΔT) wynosi 44 K.",
        "Błąd między Strefą I a V skutkuje odchyleniem wyniku aż o 22% dla pojedynczej przegrody."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-strefy",
    "name": "Symulator Stref Klimatycznych OZC",
    "description": "Interaktywne narzędzie wizualizujące różnice w stratach ciepła, przyroście różnicy temperatur (ΔT) i doborze źródła energii w zależności od strefy w Polsce.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-zone-container" id="rk-zone-app">
    
    <div class="rk-zone-header">
        <div class="rk-zone-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M2 12h20"></path><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
            Geografia Ogrzewania
        </div>
        <h2>Jak strefa klimatyczna w Polsce wpływa na wynik <span>kalkulatora strat ciepła?</span></h2>
        <div class="rk-zone-direct">
            <strong>Bezpośrednia odpowiedź:</strong> Polska podzielona jest na 5 stref klimatycznych według normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color:#7dd3fc; font-weight:700;">PN-EN 12831</a>, dla których projektowa temperatura zewnętrzna wynosi od <strong>-16°C</strong> (Strefa I &#8211; Świnoujście) do <strong>-24°C</strong> (Strefa V &#8211; Suwałki, Zakopane). Wybór błędnej strefy w kalkulatorze powoduje błąd obliczeniowy mocy źródła ciepła sięgający nawet 22%.
        </div>
    </div>

    <div class="rk-zone-interactive">
        <div class="rk-zone-grid">
            
            <div class="rk-zone-controls">
                <div class="rk-zone-ctrl-header">
                    <div>
                        <p class="rk-zone-ctrl-title">Wybierz Strefę</p>
                        <p style="margin:5px 0 0 0; font-size:12px; color:var(--rk-zone-muted);">Pokój 20 m², U=0.20, Wewnątrz: +20°C</p>
                    </div>
                    <div class="rk-zone-val-display" id="rk-z-display">I</div>
                </div>

                <div class="rk-zone-slider-wrap">
                    <input type="range" class="rk-zone-range" id="rk-zone-slider" min="1" max="5" step="1" value="1" oninput="rkUpdateZone()">
                    <div class="rk-zone-markers">
                        <span>I (Zima łagodna)</span>
                        <span>III (Standard)</span>
                        <span>V (Biegun zimna)</span>
                    </div>
                </div>

                <div class="rk-zone-data-box">
                    <div class="rk-zone-card">
                        <span class="rk-zone-card-label">Projektowa Temp. Zewnętrzna</span>
                        <span class="rk-zone-card-val" id="rk-z-temp">-16 °C</span>
                    </div>
                    <div class="rk-zone-card">
                        <span class="rk-zone-card-label">Różnica Temperatur (ΔT)</span>
                        <span class="rk-zone-card-val" id="rk-z-delta">36 K</span>
                    </div>
                    <div class="rk-zone-card" style="border-left-color: var(--rk-zone-accent); background: #fffbeb;">
                        <span class="rk-zone-card-label" style="color: #92400e;">Zapotrzebowanie Pokoju (Q)</span>
                        <span class="rk-zone-card-val" style="color: #ea580c;" id="rk-z-power">144 <span>W</span></span>
                    </div>
                </div>
            </div>

            <div class="rk-zone-visual">
                <svg class="rk-zone-svg" viewBox="0 0 200 100">
                    <path d="M 20 80 L 20 40 L 50 20 L 80 40 L 80 80 Z" fill="#1e293b" stroke="#cbd5e1" stroke-width="2" stroke-linejoin="round"/>
                    <rect x="40" y="50" width="20" height="15" fill="#f59e0b" opacity="0.8"/>
                    
                    <path class="anim-heat-wave" d="M 85 50 L 115 50" fill="none" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                    
                    <path id="svg-frost" class="anim-frost" d="M 20 40 L 50 20 L 80 40 L 80 45 L 50 25 L 20 45 Z" fill="#38bdf8" opacity="0"/>

                    <rect x="130" y="20" width="16" height="50" rx="8" fill="rgba(255,255,255,0.1)" stroke="#cbd5e1" stroke-width="2"/>
                    <circle cx="138" cy="70" r="12" fill="rgba(255,255,255,0.1)" stroke="#cbd5e1" stroke-width="2"/>
                    
                    <rect id="svg-thermo-bar" class="anim-thermo-fluid" x="134" y="30" width="8" height="40" rx="4" fill="#38bdf8"/>
                    <circle id="svg-thermo-bulb" class="anim-thermo-fluid" cx="138" cy="70" r="8" fill="#38bdf8"/>
                    
                    <line x1="155" y1="25" x2="160" y2="25" stroke="#cbd5e1" stroke-width="2"/>
                    <text x="165" y="28" fill="#cbd5e1" font-size="10" font-weight="bold">-16</text>
                    <line x1="155" y1="45" x2="160" y2="45" stroke="#cbd5e1" stroke-width="2"/>
                    <text x="165" y="48" fill="#cbd5e1" font-size="10" font-weight="bold">-20</text>
                    <line x1="155" y1="65" x2="160" y2="65" stroke="#cbd5e1" stroke-width="2"/>
                    <text x="165" y="68" fill="#cbd5e1" font-size="10" font-weight="bold">-24</text>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-zone-content">
        <h3>Przykład obliczeniowy wpływu strefy klimatycznej</h3>
        <p>Przeanalizujmy identyczny pokój o powierzchni <b>A = 20 m²</b>, który posiada ścianę zewnętrzną o współczynniku przenikania ciepła <b>U = 0,20 W/(m²·K)</b>. Zakładana temperatura wewnętrzna (komfortowa) to <b>T_wewn = +20°C</b>.</p>

        <div class="rk-zone-formula-grid">
            <div class="rk-zone-formula-box">
                <h4>
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Scenariusz A (Strefa I &#8211; Łagodna)
                </h4>
                <p>Budynek zlokalizowany np. w Szczecinie. Projektowa temperatura zewnętrzna wynosi T_zewn = -16°C. Różnica temperatur (ΔT) to 36 K.</p>
                <div class="rk-math-block">
                    Q = A × U × ΔT<br>
                    Q = 20 × 0,20 × 36 = <b>144 W</b>
                </div>
            </div>

            <div class="rk-zone-formula-box">
                <h4>
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Scenariusz B (Strefa V &#8211; Zimna)
                </h4>
                <p>Ten sam budynek zlokalizowany w Zakopanem lub Suwałkach. Temperatura spada do T_zewn = -24°C. Różnica temperatur (ΔT) rośnie do 44 K.</p>
                <div class="rk-math-block">
                    Q = A × U × ΔT<br>
                    Q = 20 × 0,20 × 44 = <b>176 W</b>
                </div>
            </div>
        </div>

        <div class="rk-zone-alert">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="flex-shrink:0"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            <div>
                <strong>Konsekwencje dla inwestora:</strong> Różnica czysto fizyczna w obciążeniu dla zaledwie jednej ściany wynosi 22% (176 W vs 144 W). Przemnożenie tego błędu przez gabaryty całego budynku decyduje o wyborze klasy mocowej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-zone-link">pompy ciepła</a>. Jeśli zainstalujesz 6 kW zamiast wymaganych 8 kW, instalacja po prostu nie dogrzeje domu. Z kolei przewymiarowanie zniszczy sprężarkę przez taktowanie.
            </div>
        </div>
    </div>

</div>

<script>
const zData = [
    { zone: "I", temp: -16, delta: 36, power: 144, color: "#38bdf8", yH: 1, frost: 0 },
    { zone: "II", temp: -18, delta: 38, power: 152, color: "#0284c7", yH: 0.75, frost: 0.2 },
    { zone: "III", temp: -20, delta: 40, power: 160, color: "#2563eb", yH: 0.5, frost: 0.5 },
    { zone: "IV", temp: -22, delta: 42, power: 168, color: "#4f46e5", yH: 0.25, frost: 0.8 },
    { zone: "V", temp: -24, delta: 44, power: 176, color: "#312e81", yH: 0, frost: 1 }
];

function rkUpdateZone() {
    const val = parseInt(document.getElementById('rk-zone-slider').value) - 1;
    const data = zData[val];

    // Teksty
    document.getElementById('rk-z-display').innerText = data.zone;
    document.getElementById('rk-z-temp').innerText = data.temp + " °C";
    document.getElementById('rk-z-delta').innerText = data.delta + " K";
    document.getElementById('rk-z-power').innerHTML = data.power + " <span>W</span>";

    // SVG Termometr
    const tBar = document.getElementById('svg-thermo-bar');
    const tBulb = document.getElementById('svg-thermo-bulb');
    const frost = document.getElementById('svg-frost');

    // Skala SVG od 25 (-16) do 65 (-24). 
    // Wysokość słupka (maks = 40, min = 0).
    const scaleY = data.yH; 
    
    tBar.style.transform = `scaleY(${scaleY})`;
    tBar.style.fill = data.color;
    tBulb.style.fill = data.color;
    frost.style.opacity = data.frost;
}

// Init
document.addEventListener('DOMContentLoaded', rkUpdateZone);
</script>



<style>
:root {
    --rk-iso-dark: #0f172a;
    --rk-iso-panel: #1e293b;
    --rk-iso-brand: #8b5cf6; /* Indigo - nauka, inżynieria */
    --rk-iso-brand-light: #e0e7ff;
    --rk-iso-accent: #f97316; /* Pomarańcz - ciepło */
    --rk-iso-success: #10b981;
    --rk-iso-danger: #ef4444;
    --rk-iso-bg: #ffffff;
    --rk-iso-border: #e2e8f0;
    --rk-iso-text: #334155;
    --rk-iso-muted: #64748b;
}

.rk-iso-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-iso-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
    color: var(--rk-iso-dark);
}

/* Nagłówek */
.rk-iso-header {
    background: linear-gradient(135deg, var(--rk-iso-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-iso-brand);
}

.rk-iso-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.2);
    color: #a5b4fc;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(165, 180, 252, 0.2);
}

.rk-iso-header h2 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-iso-header h2 span { color: #a5b4fc; }

.rk-iso-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    max-width: 800px;
}

/* Sekcja Główna */
.rk-iso-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Kalkulator Interaktywny */
.rk-iso-calculator {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-iso-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

/* Kontrolki (Lewa) */
.rk-iso-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-iso-ctrl-title {
    font-size: 18px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-iso-dark);
}

.rk-iso-presets {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.rk-iso-preset-btn {
    background: #f1f5f9;
    border: 2px solid var(--rk-iso-border);
    border-radius: 12px;
    padding: 12px;
    text-align: center;
    cursor: pointer;
    font-weight: 800;
    font-size: 13px;
    color: var(--rk-iso-muted);
    transition: all 0.3s;
}

.rk-iso-preset-btn:hover {
    border-color: var(--rk-iso-brand);
    color: var(--rk-iso-brand);
}

.rk-iso-preset-btn.active {
    background: var(--rk-iso-brand-light);
    border-color: var(--rk-iso-brand);
    color: var(--rk-iso-brand);
}

.rk-iso-slider-wrap {
    background: #f8fafc;
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid #f1f5f9;
}

.rk-iso-slider-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.rk-iso-slider-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-iso-dark);
}

.rk-iso-slider-val {
    background: var(--rk-iso-brand);
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
}

.rk-iso-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #cbd5e1;
    border-radius: 3px;
    outline: none;
}

.rk-iso-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-iso-brand);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

/* Wyniki (Prawa) */
.rk-iso-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-iso-visual {
    background: var(--rk-iso-dark);
    border-radius: 16px;
    height: 180px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #334155;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

.rk-iso-svg {
    width: 100%;
    height: 100%;
}

.rk-iso-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-iso-data-box {
    background: #ffffff;
    border: 1px solid var(--rk-iso-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-iso-data-box.highlight {
    background: var(--rk-iso-dark);
    border-color: var(--rk-iso-dark);
}

.rk-iso-data-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-iso-muted);
    margin-bottom: 5px;
}

.rk-iso-data-box.highlight .rk-iso-data-label { color: #94a3b8; }

.rk-iso-data-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-iso-dark);
}

.rk-iso-data-box.highlight .rk-iso-data-val { color: #ffffff; }

/* Bloki Tekstowe z Wiedzą */
.rk-iso-content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-iso-card {
    background: #ffffff;
    border: 1px solid var(--rk-iso-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-iso-card h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-iso-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-iso-card p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-iso-text);
}

.rk-iso-card strong { color: var(--rk-iso-dark); font-weight: 800; }

.rk-iso-formula {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    border-left: 4px solid var(--rk-iso-brand);
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-iso-dark);
    margin-bottom: 15px;
    overflow-x: auto;
}

.rk-iso-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--rk-iso-brand);
    font-weight: 800;
    font-size: 14px;
    text-decoration: none;
    margin-top: 10px;
    transition: color 0.3s;
}

.rk-iso-link:hover { color: #4f46e5; }
.rk-iso-link svg { transition: transform 0.3s; }
.rk-iso-link:hover svg { transform: translateX(4px); }

/* Animacje SVG */
.anim-iso-layer { transition: height 0.4s ease, y 0.4s ease; }
.anim-heat-arrow { transition: opacity 0.4s, stroke 0.4s; }

@media (max-width: 768px) {
    .rk-iso-header, .rk-iso-body { padding: 30px 20px; }
    .rk-iso-calculator, .rk-iso-content-grid { grid-template-columns: 1fr; }
    .rk-iso-visual { height: 160px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-wspolczynnik-u",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Jak wyliczyć współczynnik przenikania ciepła U z grubości izolacji i lambdy materiału?",
    "description": "Praktyczny poradnik inżynierski: obliczanie oporu cieplnego (R) i współczynnika przenikania (U). Zobacz, dlaczego 15 cm grafitu to to samo co 20 cm białego styropianu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-wspolczynnik-u",
    "name": "Parametry Fizyki Budowli: Współczynnik U i Opór R",
    "description": "Zestawienie analityczne parametrów izolacyjnych dla najpopularniejszych grubości i typów styropianu podłogowego, stanowiące bazę do obliczeń OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik przenikania ciepła U",
      "jak obliczyć opór cieplny R",
      "styropian grafitowy czy biały",
      "ile styropianu pod ogrzewanie podłogowe",
      "kalkulator strat ciepła wzory",
      "izolacja podłogi na gruncie"
    ],
    "measurementTechnique": "Algorytm fizyki budowli określający zależność: Opór (R) = grubość w metrach (d) / lambda (λ). Współczynnik przenikania U = 1 / R.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Styropian biały EPS: zazwyczaj λ = 0,042 W/mK.",
        "Styropian grafitowy: zazwyczaj λ = 0,031 W/mK.",
        "Dla 20 cm EPS (λ=0,036): Opór R = 5,55 m2K/W, Przenikanie U = 0,18 W/m2K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-kalkulator-u",
    "name": "Kalkulator Przenikania Ciepła U i Oporu R",
    "description": "Interaktywny kalkulator inżynierski pozwalający natychmiast przeliczyć grubość i lambdę izolacji na współczynnik U wymagany do bilansu cieplnego OZC.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-iso-container" id="rk-iso-app">
    
    <div class="rk-iso-header">
        <div class="rk-iso-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Fizyka budowli w praktyce
        </div>
        <h2>Jak wyliczyć współczynnik przenikania ciepła U <span>z grubości izolacji i lambdy materiału?</span></h2>
        <p>Inwestorzy często mylą pojęcia i kupują tani styropian o ogromnej grubości, sądząc, że chroni on budynek lepiej niż cieńszy materiał premium. Matematyki jednak nie oszukasz. Przelicz to samemu.</p>
    </div>

    <div class="rk-iso-body">
        
        <div class="rk-iso-calculator">
            
            <div class="rk-iso-controls">
                <h3 class="rk-iso-ctrl-title">Kalkulator Izolacji</h3>
                
                <div class="rk-iso-presets">
                    <div class="rk-iso-preset-btn active" id="btn-eps-graphite" onclick="rkSetIso('graphite')">Styropian Grafitowy<br><span style="font-size:11px; font-weight:600;">(Premium)</span></div>
                    <div class="rk-iso-preset-btn" id="btn-eps-white" onclick="rkSetIso('white')">Styropian Biały<br><span style="font-size:11px; font-weight:600;">(Standard)</span></div>
                </div>

                <div class="rk-iso-slider-wrap">
                    <div class="rk-iso-slider-head">
                        <span class="rk-iso-slider-label">Przewodność (Lambda λ)</span>
                        <span class="rk-iso-slider-val"><span id="rk-val-lam">0.031</span> W/mK</span>
                    </div>
                    <input type="range" class="rk-iso-range" id="rk-range-lam" min="0.030" max="0.045" step="0.001" value="0.031" oninput="rkUpdateIso()">
                </div>

                <div class="rk-iso-slider-wrap">
                    <div class="rk-iso-slider-head">
                        <span class="rk-iso-slider-label">Grubość materiału (d)</span>
                        <span class="rk-iso-slider-val"><span id="rk-val-thick">15</span> cm</span>
                    </div>
                    <input type="range" class="rk-iso-range" id="rk-range-thick" min="5" max="30" step="1" value="15" oninput="rkUpdateIso()">
                </div>
            </div>

            <div class="rk-iso-results">
                
                <div class="rk-iso-visual">
                    <svg class="rk-iso-svg" viewBox="0 0 200 100">
                        <rect x="20" y="80" width="160" height="20" fill="#334155" />
                        
                        <rect id="svg-iso-layer" class="anim-iso-layer" x="20" y="50" width="160" height="30" fill="#64748b" opacity="0.9" />
                        <text id="svg-text-thick" x="100" y="70" fill="#ffffff" font-size="12" font-weight="bold" text-anchor="middle">15 cm</text>

                        <rect id="svg-screed" class="anim-iso-layer" x="20" y="35" width="160" height="15" fill="#94a3b8" />
                        <circle id="svg-pipe" class="anim-iso-layer" cx="100" cy="42" r="5" fill="#ef4444" />

                        <g id="svg-heat-loss" class="anim-heat-arrow">
                            <path d="M 60 85 L 60 95" stroke="#ef4444" stroke-width="3" stroke-linecap="round" />
                            <polygon points="56,92 60,98 64,92" fill="#ef4444" />
                            <path d="M 140 85 L 140 95" stroke="#ef4444" stroke-width="3" stroke-linecap="round" />
                            <polygon points="136,92 140,98 144,92" fill="#ef4444" />
                        </g>
                    </svg>
                </div>

                <div class="rk-iso-data-grid">
                    <div class="rk-iso-data-box">
                        <span class="rk-iso-data-label">Opór cieplny (R)</span>
                        <span class="rk-iso-data-val"><span id="rk-res-r">4.84</span> <span style="font-size:12px; color:var(--rk-iso-muted)">m²K/W</span></span>
                    </div>
                    <div class="rk-iso-data-box highlight">
                        <span class="rk-iso-data-label">Współczynnik przenikania (U)</span>
                        <span class="rk-iso-data-val"><span id="rk-res-u">0.21</span> <span style="font-size:12px; color:#94a3b8">W/m²K</span></span>
                    </div>
                </div>

            </div>
        </div>

        <div class="rk-iso-content-grid">
            
            <div class="rk-iso-card">
                <h3>
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
                    Wzór inżynierski (Bezpośrednia odpowiedź)
                </h3>
                <p>Współczynnik przenikania ciepła pojedynczej warstwy materiału izolacyjnego oblicza się z bezwzględnego wzoru <strong>U = λ / d</strong>, gdzie <strong>λ</strong> to współczynnik przewodzenia ciepła, a <strong>d</strong> to grubość materiału wyrażona ściśle w metrach.</p>
                <div class="rk-iso-formula">
                    R = d / λ<br>
                    U = 1 / R = λ / d
                </div>
                <p>Pamiętaj, że całkowity opór cieplny przegrody wielowarstwowej definiuje zależność uwzględniająca opory przejmowania ciepła na powierzchniach (R<sub>si</sub>, R<sub>se</sub>).</p>
            </div>

            <div class="rk-iso-card">
                <h3>
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    Przykład: 20 cm EPS 100 na gruncie
                </h3>
                <p>Wyliczmy rzeczywisty współczynnik U dla <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-iso-link" style="display:inline; padding:0; margin:0; border:none; text-decoration:underline; font-weight:normal;">izolacji podłogówki</a> wykonanej z klasycznych płyt styropianowych EPS o grubości 20 cm (d = 0,20 m) i deklarowanej przez producenta przewodności λ = 0,036 W/mK.</p>
                <div class="rk-iso-formula">
                    R = 0,20 / 0,036 = <strong>5,55 m²K/W</strong><br>
                    U = 1 / 5,55 = <strong>0,18 W/m²·K</strong>
                </div>
                <p>Wartość 0,18 to precyzyjny parametr techniczny. To właśnie tę cyfrę musisz wprowadzić do kalkulatora strat ciepła w sekcji przegród poziomych.</p>
                <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-iso-link">
                    Czym dokładnie jest Opór Cieplny R? ➔
                </a>
            </div>

        </div>

    </div>
</div>

<script>
function rkSetIso(type) {
    const btnG = document.getElementById('btn-eps-graphite');
    const btnW = document.getElementById('btn-eps-white');
    const sliderLam = document.getElementById('rk-range-lam');

    if (type === 'graphite') {
        btnG.classList.add('active');
        btnW.classList.remove('active');
        sliderLam.value = 0.031;
    } else {
        btnW.classList.add('active');
        btnG.classList.remove('active');
        sliderLam.value = 0.042;
    }
    rkUpdateIso();
}

function rkUpdateIso() {
    const lam = parseFloat(document.getElementById('rk-range-lam').value);
    const thickCm = parseInt(document.getElementById('rk-range-thick').value);
    
    // Update labels
    document.getElementById('rk-val-lam').innerText = lam.toFixed(3);
    document.getElementById('rk-val-thick').innerText = thickCm;

    // Calc
    const thickM = thickCm / 100;
    const r = thickM / lam;
    const u = 1 / r;

    document.getElementById('rk-res-r').innerText = r.toFixed(2);
    document.getElementById('rk-res-u').innerText = u.toFixed(2);

    // SVG Animation logic
    // thickCm: 5 to 30. We map this to SVG height.
    // Base y=80. Max thick = 30cm -> height=60, y=20.
    const svgHeight = thickCm * 2; // 1cm = 2px
    const svgY = 80 - svgHeight;

    const isoLayer = document.getElementById('svg-iso-layer');
    const textThick = document.getElementById('svg-text-thick');
    const screedLayer = document.getElementById('svg-screed');
    const pipeLayer = document.getElementById('svg-pipe');

    isoLayer.setAttribute('height', svgHeight);
    isoLayer.setAttribute('y', svgY);
    
    // Ustawienie koloru (grafit vs biały)
    if(lam < 0.036) {
        isoLayer.setAttribute('fill', '#475569'); // Ciemniejszy grafit
    } else {
        isoLayer.setAttribute('fill', '#cbd5e1'); // Jasny biały
    }

    textThick.setAttribute('y', svgY + (svgHeight / 2) + 4);
    textThick.textContent = thickCm + " cm";

    screedLayer.setAttribute('y', svgY - 15);
    pipeLayer.setAttribute('cy', svgY - 7);

    // Heat Loss arrows (Redness &#038; Opacity based on U)
    // Good U < 0.20 (Low opacity, smaller). Bad U > 0.40 (High opacity, red)
    const heatGrp = document.getElementById('svg-heat-loss');
    let heatOpacity = u / 0.8; // Normalized roughly
    if(heatOpacity > 1) heatOpacity = 1;
    if(heatOpacity < 0.1) heatOpacity = 0.1;
    
    heatGrp.style.opacity = heatOpacity;
}

// Init
document.addEventListener('DOMContentLoaded', rkUpdateIso);
</script>



<style>
:root {
    --rk-vent-dark: #0f172a;
    --rk-vent-panel: #1e293b;
    --rk-vent-brand: #0284c7; /* Chłodny błękit - świeże powietrze */
    --rk-vent-brand-light: #e0f2fe;
    --rk-vent-accent: #f97316; /* Ciepło domowe */
    --rk-vent-success: #0d9488; /* Oszczędność (Teal) */
    --rk-vent-danger: #ef4444; /* Strata (Czerwień) */
    --rk-vent-bg: #ffffff;
    --rk-vent-border: #e2e8f0;
    --rk-vent-text: #334155;
    --rk-vent-muted: #64748b;
}

.rk-vent-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-vent-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-vent-header {
    background: linear-gradient(135deg, var(--rk-vent-dark) 0%, #0c4a6e 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-vent-brand);
}

.rk-vent-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-vent-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-vent-title span { color: #38bdf8; }

.rk-vent-direct-answer {
    font-size: 16px;
    line-height: 1.7;
    color: #e0f2fe;
    margin: 0;
    padding-left: 20px;
    border-left: 3px solid var(--rk-vent-accent);
}

.rk-vent-direct-answer strong {
    color: #ffffff;
}

/* Moduł Interaktywny */
.rk-vent-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Przełącznik Systemów Wentylacji */
.rk-vent-switcher {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}

.rk-vent-toggle-bg {
    background: #e2e8f0;
    padding: 6px;
    border-radius: 99px;
    display: inline-flex;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-vent-toggle-btn {
    padding: 12px 24px;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-vent-muted);
    cursor: pointer;
    transition: all 0.3s;
    z-index: 1;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-vent-toggle-btn.active {
    color: #ffffff;
}

.rk-vent-toggle-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: 50%;
    background: var(--rk-vent-danger);
    border-radius: 99px;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.state-recup .rk-vent-toggle-slider {
    left: calc(50% - 6px);
    background: var(--rk-vent-success);
}

/* Siatka: SVG + Dane */
.rk-vent-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* SVG Wizualizacja */
.rk-vent-visual {
    background: var(--rk-vent-dark);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
    min-height: 250px;
}

.rk-vent-svg { width: 100%; height: 100%; }

/* Tablica Wyników */
.rk-vent-dashboard {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-vent-stat-card {
    background: #ffffff;
    border: 1px solid var(--rk-vent-border);
    border-radius: 16px;
    padding: 20px 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s;
}

.rk-vent-stat-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-vent-muted);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-vent-stat-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-vent-dark);
    line-height: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-vent-stat-val span {
    font-size: 14px;
    color: var(--rk-vent-muted);
}

.val-red { color: var(--rk-vent-danger); }
.val-green { color: var(--rk-vent-success); }

/* Detale Obliczeń (Karty z Wzorami) */
.rk-vent-details {
    padding: 0 50px 40px 50px;
    background: #f8fafc;
}

.rk-vent-details h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-vent-dark);
}

.rk-vent-calc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-vent-calc-box {
    background: #ffffff;
    border: 1px solid var(--rk-vent-border);
    padding: 25px;
    border-radius: 16px;
}

.rk-vent-calc-box h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-vent-brand);
}

.rk-vent-formula {
    background: #f1f5f9;
    padding: 12px 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    font-size: 13px;
    color: var(--rk-vent-dark);
    margin: 10px 0;
    border-left: 3px solid var(--rk-vent-brand);
}

.rk-vent-calc-box p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-vent-text);
}

.rk-vent-link {
    color: var(--rk-vent-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.rk-vent-link:hover { color: #0369a1; }

/* Animacje SVG */
.anim-air-flow { stroke-dasharray: 8 8; animation: flowDash 1.5s linear infinite; }
@keyframes flowDash { to { stroke-dashoffset: -16; } }

/* Stan: Grawitacja */
.state-grav .recup-element { opacity: 0; }
.state-grav .grav-element { opacity: 1; transition: opacity 0.3s; }
.state-grav .air-in { stroke: var(--rk-vent-brand); }
.state-grav .air-out { stroke: var(--rk-vent-danger); stroke-width: 6; }

/* Stan: Rekuperacja */
.state-recup .grav-element { opacity: 0; }
.state-recup .recup-element { opacity: 1; transition: opacity 0.5s; }
.state-recup .air-in { stroke: var(--rk-vent-brand); }
.state-recup .air-in-warmed { stroke: #fbbf24; }
.state-recup .air-out { stroke: var(--rk-vent-danger); stroke-width: 4; }
.state-recup .air-out-cooled { stroke: #94a3b8; }

.anim-wheel { transform-origin: 100px 50px; animation: spinWheel 3s linear infinite; }
@keyframes spinWheel { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
    .rk-vent-header, .rk-vent-interactive, .rk-vent-details { padding: 30px 20px; }
    .rk-vent-grid, .rk-vent-calc-grid { grid-template-columns: 1fr; }
    .rk-vent-visual { height: 200px; min-height: auto; }
    .rk-vent-toggle-btn { padding: 10px 15px; font-size: 12px; }
    .rk-vent-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-wentylacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Ile kW mocy grzewczej ucieka przez wentylację grawitacyjną i jak rekuperacja zmienia ten wynik?",
    "description": "Porównanie strat ciepła dla wentylacji grawitacyjnej i mechanicznej z rekuperacją. Dowiedz się, jak odzysk ciepła wpływa na projektowanie pętli podłogowych i moc pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-wentylacja",
    "name": "Symulacja strat wentylacyjnych (Qv) z rekuperacją i bez",
    "description": "Zestawienie analityczne porównujące straty ciepła i przepływy powietrza (m3/h) dla budynku 150 m2 przy wentylacji naturalnej oraz mechanicznej z odzyskiem ciepła 85%.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "straty wentylacyjne w kalkulatorze",
      "rekuperacja a pompa ciepła",
      "wentylacja grawitacyjna straty ciepła",
      "rozstaw rur podłogówki a rekuperacja",
      "obliczanie strat ciepła wentylacja",
      "norma PN-EN 13141-7"
    ],
    "measurementTechnique": "Algorytm obliczeniowy Qv = 0,34 × V × ΔT redukowany o współczynnik sprawności odzysku ciepła zdefiniowany normą PN-EN 13141-7.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kubatura szacunkowa dla domu 150 m2: 375 m3.",
        "Strumień powietrza dla krotności wymian 0,5/h: 187,5 m3/h.",
        "Całkowita strata grawitacyjna (ΔT=40K): 2550 W.",
        "Zredukowana strata przy rekuperacji (85% sprawności): 382,5 W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-wentylacja",
    "name": "Kalkulator Oszczędności Rekuperacji",
    "description": "Interaktywny symulator przepływu powietrza wizualizujący spadek zapotrzebowania na moc grzewczą w budynku wyposażonym w wymiennik krzyżowy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vent-container" id="rk-vent-app">
    
    <div class="rk-vent-header">
        <div class="rk-vent-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Bilans Powietrzny
        </div>
        <h2 class="rk-vent-title">Ile kW mocy grzewczej ucieka przez wentylację grawitacyjną i jak <span>rekuperacja zmienia ten wynik?</span></h2>
        <div class="rk-vent-direct-answer">
            <strong>Bezpośrednia odpowiedź:</strong> W tradycyjnym domu 150 m² z wentylacją grawitacyjną, straty z tytułu wymiany powietrza generują do <strong>40% całkowitego zapotrzebowania na ciepło</strong> (co odpowiada ucieczce ok. 2,5 - 3,5 kW ciągłej mocy). Zastosowanie centrali wentylacyjnej (rekuperacji) o sprawności temperaturowej rzędu 85% redukuje te straty do ułamkowych wartości rzędu <strong>0,4 - 0,6 kW</strong>.
        </div>
    </div>

    <div class="rk-vent-interactive state-grav" id="rk-vent-state-wrapper">
        
        <div class="rk-vent-switcher">
            <div class="rk-vent-toggle-bg">
                <div class="rk-vent-toggle-slider"></div>
                <button class="rk-vent-toggle-btn active" id="btn-grav" onclick="rkSwitchVent('grav')">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>
                    Grawitacja
                </button>
                <button class="rk-vent-toggle-btn" id="btn-recup" onclick="rkSwitchVent('recup')">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="8" width="18" height="8" rx="2"></rect><path d="M12 4v4"></path><path d="M12 16v4"></path><circle cx="12" cy="12" r="2"></circle></svg>
                    Rekuperacja 85%
                </button>
            </div>
        </div>

        <div class="rk-vent-grid">
            
            <div class="rk-vent-visual">
                <svg class="rk-vent-svg" viewBox="0 0 200 100">
                    <rect x="0" y="0" width="100" height="100" fill="#0f172a" /> <rect x="100" y="0" width="100" height="100" fill="#1e293b" /> <line x1="100" y1="0" x2="100" y2="100" stroke="#334155" stroke-width="2" />

                    <g class="grav-element">
                        <path class="anim-air-flow air-in" d="M 20 70 L 160 70" fill="none" stroke-width="4" stroke-linecap="round" />
                        <polygon points="150,65 165,70 150,75" fill="var(--rk-vent-brand)"/>
                        
                        <path class="anim-air-flow air-out" d="M 160 30 L 20 30" fill="none" stroke-width="6" stroke-linecap="round" />
                        <polygon points="35,23 20,30 35,37" fill="var(--rk-vent-danger)"/>
                    </g>

                    <g class="recup-element">
                        <rect x="80" y="30" width="40" height="40" fill="#0f172a" stroke="#cbd5e1" stroke-width="2" rx="4" />
                        <g class="anim-wheel">
                            <line x1="90" y1="40" x2="110" y2="60" stroke="#cbd5e1" stroke-width="2" />
                            <line x1="90" y1="60" x2="110" y2="40" stroke="#cbd5e1" stroke-width="2" />
                        </g>

                        <path class="anim-air-flow air-in" d="M 20 60 L 80 60" fill="none" stroke-width="3" stroke-linecap="round" />
                        <path class="anim-air-flow air-in-warmed" d="M 120 60 L 180 60" fill="none" stroke-width="3" stroke-linecap="round" />
                        <polygon points="170,56 182,60 170,64" fill="#fbbf24"/>

                        <path class="anim-air-flow air-out" d="M 180 40 L 120 40" fill="none" stroke-width="3" stroke-linecap="round" />
                        <path class="anim-air-flow air-out-cooled" d="M 80 40 L 20 40" fill="none" stroke-width="3" stroke-linecap="round" />
                        <polygon points="30,36 18,40 30,44" fill="#94a3b8"/>
                    </g>
                </svg>
            </div>

            <div class="rk-vent-dashboard">
                <div class="rk-vent-stat-card">
                    <span class="rk-vent-stat-label">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                        Moc bezpowrotnie tracona (Q<sub>v</sub>)
                    </span>
                    <span class="rk-vent-stat-val val-red" id="val-lost">2 550 <span>W</span></span>
                </div>
                
                <div class="rk-vent-stat-card">
                    <span class="rk-vent-stat-label">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Odzyskana energia dla podłogówki
                    </span>
                    <span class="rk-vent-stat-val val-green" id="val-saved">0 <span>W (0.0 kW)</span></span>
                </div>

                <div class="rk-vent-stat-card" style="background: #f1f5f9; border-color: transparent;">
                    <span class="rk-vent-stat-label">Wpływ na projekt instalacji</span>
                    <span class="rk-vent-stat-val" id="val-impact" style="font-size: 16px; color: var(--rk-vent-text);">
                        Wymagany gęsty rozstaw rur (co 10 cm). Ryzyko zakupu przewymiarowanej pompy ciepła.
                    </span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-vent-details">
        <h3>Przykład obliczeniowy dla domu 150 m² (kubatura 375 m³)</h3>
        
        <div class="rk-vent-calc-grid">
            <div class="rk-vent-calc-box">
                <h4>Wariant 1: Wentylacja grawitacyjna</h4>
                <p>Przyjmujemy wymianę na poziomie 0,5/h, co daje strumień V = 187,5 m³/h. Różnica temperatur na zewnątrz i wewnątrz w mrozy to ΔT = 40 K.</p>
                <div class="rk-vent-formula">
                    Q<sub>v</sub> = 0,34 × 187,5 × 40 = <strong>2550 W</strong>
                </div>
                <p>Oznacza to, że z samego tytułu wietrzenia budynku w starym systemie, dom wymaga od <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-vent-link">pompy ciepła</a> ponad 2,5 kW ciągłej mocy.</p>
            </div>

            <div class="rk-vent-calc-box">
                <h4>Wariant 2: Mechaniczna z rekuperacją</h4>
                <p>Zastosowanie centrali (sprawność η = 85% zgodnie z <strong>PN-EN 13141-7</strong>). Strumień powietrza jest poddawany procesowi krzyżowej wymiany ciepła.</p>
                <div class="rk-vent-formula">
                    Q<sub>v_rek</sub> = 2550 W × (1 - 0,85) = <strong>382,5 W</strong>
                </div>
                <p>Ignorowanie <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-vent-link">wpływu rekuperacji</a> w kalkulatorach prowadzi do potężnego przewymiarowania. Instalator niepotrzebnie zacieśni <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-vent-link">rozstaw rur</a> i drastycznie podniesie koszty hydrauliki.</p>
            </div>
        </div>
    </div>

</div>

<script>
function rkSwitchVent(state) {
    const wrapper = document.getElementById('rk-vent-state-wrapper');
    const btnGrav = document.getElementById('btn-grav');
    const btnRecup = document.getElementById('btn-recup');
    
    const valLost = document.getElementById('val-lost');
    const valSaved = document.getElementById('val-saved');
    const valImpact = document.getElementById('val-impact');

    if(state === 'grav') {
        wrapper.className = 'rk-vent-interactive state-grav';
        btnGrav.classList.add('active');
        btnRecup.classList.remove('active');

        valLost.innerHTML = '2 550 <span>W</span>';
        valLost.className = 'rk-vent-stat-val val-red';
        
        valSaved.innerHTML = '0 <span>W (0.0 kW)</span>';
        valSaved.className = 'rk-vent-stat-val val-green';

        valImpact.innerHTML = 'Wymagany gęsty rozstaw rur (co 10 cm). Ryzyko zakupu przewymiarowanej pompy ciepła.';
    } else {
        wrapper.className = 'rk-vent-interactive state-recup';
        btnRecup.classList.add('active');
        btnGrav.classList.remove('active');

        valLost.innerHTML = '382 <span>W</span>';
        valLost.className = 'rk-vent-stat-val val-green';
        
        valSaved.innerHTML = '2 168 <span>W (~ 2.16 kW)</span>';
        valSaved.className = 'rk-vent-stat-val val-green';

        valImpact.innerHTML = 'Mniejsze straty = rzadszy rozstaw (co 20 cm), niższe koszty materiałowe i tańsza pompa ciepła.';
    }
}
</script>



<style>
:root {
    --rk-fl-dark: #0f172a;
    --rk-fl-panel: #1e293b;
    --rk-fl-brand: #2563eb;
    --rk-fl-brand-light: #eff6ff;
    --rk-fl-accent: #f97316;
    --rk-fl-success: #10b981;
    --rk-fl-danger: #ef4444;
    --rk-fl-border: #e2e8f0;
    --rk-fl-text: #334155;
    --rk-fl-muted: #64748b;
    --rk-fl-bg: #ffffff;
}

.rk-fl-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-fl-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.3);
    overflow: hidden;
    color: var(--rk-fl-dark);
}

/* Nagłówek */
.rk-fl-header {
    background: linear-gradient(135deg, var(--rk-fl-dark) 0%, #1e3a8a 100%);
    padding: 40px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-fl-brand);
}

.rk-fl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.1);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(255,255,255,0.15);
}

.rk-fl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-fl-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.7;
}

/* Główny kontener treści */
.rk-fl-body {
    padding: 40px 45px;
    background: #f8fafc;
}

/* Moduł Interaktywny */
.rk-fl-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-top: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-fl-border);
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

/* Lewa Kolumna - SVG Wizualizacja */
.rk-fl-visual-box {
    background: var(--rk-fl-dark);
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    border: 3px solid #334155;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}

.rk-fl-svg-layer {
    width: 100%;
    height: 100%;
}

/* Prawa Kolumna - Kontrolki i Dane */
.rk-fl-controls {
    display: flex;
    flex-direction: column;
}

.rk-fl-controls h3 {
    margin: 0 0 20px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-fl-dark);
    line-height: 1.3;
}

/* Switcher Okładzin */
.rk-fl-switch-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-fl-switch-btn {
    background: #f1f5f9;
    border: 2px solid var(--rk-fl-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-fl-muted);
    transition: all 0.3s;
}

.rk-fl-switch-btn.active {
    background: var(--rk-fl-brand-light);
    border-color: var(--rk-fl-brand);
    color: var(--rk-fl-brand);
    box-shadow: 0 5px 15px -5px rgba(37, 99, 235, 0.2);
}

/* Kafelki z danymi (Live Data) */
.rk-fl-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-fl-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-fl-border);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-fl-data-card.highlight {
    background: var(--rk-fl-dark);
    border-color: var(--rk-fl-dark);
}

.rk-fl-data-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-fl-muted);
    margin-bottom: 5px;
}

.rk-fl-data-card.highlight .rk-fl-data-label { color: #94a3b8; }

.rk-fl-data-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-fl-dark);
    transition: color 0.3s;
}

.rk-fl-data-card.highlight .rk-fl-data-val { color: #ffffff; }

.val-danger { color: var(--rk-fl-danger) !important; }
.val-success { color: var(--rk-fl-success) !important; }

/* Animacje SVG */
.rk-anim-heat { transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); transform-origin: bottom; }
.rk-anim-layer { transition: all 0.5s ease-in-out; }

/* Stan 1: Płytki (Dobre przewodzenie) */
.state-tiles .rk-layer-panel { opacity: 0; transform: translateY(-10px); }
.state-tiles .rk-layer-tile { opacity: 1; transform: translateY(0); }
.state-tiles .rk-anim-heat { stroke: var(--rk-fl-success); transform: scaleY(1); animation: heatFlowFast 1.5s linear infinite; stroke-dasharray: 10 10; }

/* Stan 2: Panele (Izolator) */
.state-panels .rk-layer-panel { opacity: 1; transform: translateY(0); }
.state-panels .rk-layer-tile { opacity: 0; transform: translateY(10px); }
.state-panels .rk-anim-heat { stroke: var(--rk-fl-danger); transform: scaleY(0.4); animation: heatFlowSlow 3s linear infinite; stroke-dasharray: 20 5; }

@keyframes heatFlowFast { to { stroke-dashoffset: -20; } }
@keyframes heatFlowSlow { to { stroke-dashoffset: -25; } }

/* CTA dolne */
.rk-fl-cta {
    margin-top: 30px;
    padding: 20px;
    background: var(--rk-fl-brand-light);
    border-left: 4px solid var(--rk-fl-brand);
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-fl-cta p {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-fl-dark);
}

.rk-fl-cta a {
    white-space: nowrap;
    background: var(--rk-fl-brand);
    color: #ffffff;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: background 0.3s;
}

.rk-fl-cta a:hover { background: var(--rk-fl-brand-hover); }

@media (max-width: 768px) {
    .rk-fl-header { padding: 30px 25px; }
    .rk-fl-body { padding: 30px 25px; }
    .rk-fl-interactive { grid-template-columns: 1fr; padding: 20px; }
    .rk-fl-visual-box { height: 220px; min-height: auto; }
    .rk-fl-cta { flex-direction: column; text-align: center; }
    .rk-fl-cta a { width: 100%; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-okladziny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Jak rodzaj okładziny podłogowej (płytki vs panele) zmienia parametry instalacji?",
    "description": "Opór cieplny paneli zmusza pompę ciepła do pracy na wyższych temperaturach zasilania. Zobacz inżynieryjne porównanie wydajności gresu i laminatu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-okladziny",
    "name": "Opór cieplny (R) okładzin podłogowych a COP pompy ciepła",
    "description": "Parametry hydrauliczne instalacji podłogowej zestawione dla stałego zapotrzebowania 50 W/m2 w zależności od zastosowanej posadzki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny paneli",
      "ogrzewanie podłogowe a panele",
      "wydajność pompy ciepła podłogówka",
      "temperatura zasilania podłogówki płytki vs panele",
      "COP pompy ciepła spadek"
    ],
    "measurementTechnique": "Symulacja spadku współczynnika COP pompy ciepła w zależności od oporu cieplnego materiału wykończeniowego zgodnie z normą PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gres ceramiczny: Opór R = 0,01 m2K/W, Wymagane Tz = 33°C",
        "Panele laminowane: Opór R = 0,12 m2K/W, Wymagane Tz = 38°C",
        "Spadek COP pompy ciepła dla paneli względem płytek wynosi od 10 do 12% w skali roku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-okladziny",
    "name": "Symulator Wpływu Okładziny na Ogrzewanie Podłogowe",
    "description": "Narzędzie pozwalające prześledzić zachowanie instalacji i spadki wydajności w przypadku zamiany płytek ceramicznych na panele laminowane.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fl-wrapper" id="rk-fl-app">
    
    <div class="rk-fl-header">
        <div class="rk-fl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Analiza Materiałowa
        </div>
        <h2>Jak rodzaj okładziny podłogowej (płytki vs panele) zmienia parametry pracy instalacji w kalkulatorze?</h2>
        <p>Opór cieplny (R) materiału wykończeniowego ma kolosalny wpływ na to, jaką temperaturę musisz zadać na źródle ciepła, aby skutecznie ogrzać pomieszczenie. Ignorowanie tego faktu to gwarancja niedogrzanego domu.</p>
    </div>

    <div class="rk-fl-body">
        
        <p><strong>Bezpośrednia odpowiedź:</strong> Opór cieplny (R) płytek ceramicznych wynosi zaledwie <strong>0,01 m²K/W</strong>, podczas gdy paneli laminowanych wraz z podkładem dedykowanym osiąga graniczną wartość <strong>0,10 - 0,15 m²K/W</strong> dopuszczoną przez normę PN-EN 1264.</p>
        <p>Oznacza to, że panele stanowią potężny izolator, który wymusza podniesienie temperatury zasilania (Tz) średnio o 3 do 5 stopni Celsjusza w celu uzyskania tej samej mocy grzewczej.</p>
        <p>Zastosowanie grubych paneli lub parkietu drewnianego bez uwzględnienia tego faktu w obliczeniach kalkulatora powoduje drastyczne niedogrzanie pomieszczeń. Jeśli projektant założy wykończenie z płytek i dobierze temperaturę zasilania wody na 35°C, a Ty ostatecznie położysz panele, <strong>temperatura w pokoju spadnie z planowanych 20°C do zaledwie 17-18°C</strong> w mroźne dni.</p>

        <div class="rk-fl-interactive">
            
            <div class="rk-fl-visual-box state-tiles" id="rkFlVisual">
                <svg class="rk-fl-svg-layer" viewBox="0 0 200 100">
                    <rect x="20" y="70" width="160" height="30" fill="#334155" />
                    <circle cx="100" cy="85" r="8" fill="none" stroke="#f97316" stroke-width="3" />
                    
                    <path class="rk-anim-heat" d="M 100 70 L 100 20" fill="none" stroke-width="4" stroke-linecap="round" />
                    <path class="rk-anim-heat" d="M 85 70 L 60 20" fill="none" stroke-width="3" stroke-linecap="round" />
                    <path class="rk-anim-heat" d="M 115 70 L 140 20" fill="none" stroke-width="3" stroke-linecap="round" />

                    <g class="rk-anim-layer rk-layer-tile">
                        <rect x="20" y="60" width="160" height="10" fill="#94a3b8" />
                        <line x1="60" y1="60" x2="60" y2="70" stroke="#0f172a" stroke-width="2" />
                        <line x1="100" y1="60" x2="100" y2="70" stroke="#0f172a" stroke-width="2" />
                        <line x1="140" y1="60" x2="140" y2="70" stroke="#0f172a" stroke-width="2" />
                    </g>

                    <g class="rk-anim-layer rk-layer-panel">
                        <rect x="20" y="55" width="160" height="5" fill="#f59e0b" opacity="0.6" /> <rect x="20" y="45" width="160" height="10" fill="#854d0e" /> <line x1="80" y1="45" x2="80" y2="55" stroke="#0f172a" stroke-width="1" />
                        <line x1="120" y1="45" x2="120" y2="55" stroke="#0f172a" stroke-width="1" />
                    </g>
                </svg>
            </div>

            <div class="rk-fl-controls">
                <h3>Przykład danych hydraulicznych dla zmiany okładziny</h3>
                <p style="font-size: 13px; color: var(--rk-fl-muted); margin-top: -15px; margin-bottom: 20px;">
                    Przy stałym zapotrzebowaniu na moc: <strong>q = 50 W/m²</strong>
                </p>

                <div class="rk-fl-switch-group">
                    <div class="rk-fl-switch-btn active" id="btn-tiles" onclick="rkSwitchFloor('tiles')">
                        Gres ceramiczny
                    </div>
                    <div class="rk-fl-switch-btn" id="btn-panels" onclick="rkSwitchFloor('panels')">
                        Panele laminowane
                    </div>
                </div>

                <div class="rk-fl-data-grid">
                    <div class="rk-fl-data-card">
                        <span class="rk-fl-data-label">Opór cieplny (R)</span>
                        <span class="rk-fl-data-val" id="val-r">0,01 <span style="font-size:14px">m²K/W</span></span>
                    </div>
                    <div class="rk-fl-data-card">
                        <span class="rk-fl-data-label">Temp. podłogi</span>
                        <span class="rk-fl-data-val">24,5 <span style="font-size:14px">°C</span></span>
                    </div>
                    <div class="rk-fl-data-card highlight">
                        <span class="rk-fl-data-label">Wymagana Temp. Zasilania</span>
                        <span class="rk-fl-data-val val-success" id="val-tz">33 °C</span>
                    </div>
                    <div class="rk-fl-data-card highlight">
                        <span class="rk-fl-data-label">Skutek dla COP (Wydajność)</span>
                        <span class="rk-fl-data-val val-success" id="val-cop">MAX (100%)</span>
                    </div>
                </div>

            </div>

        </div>

        <div class="rk-fl-cta">
            <p><strong>Złota zasada instalatora:</strong> Podniesienie temperatury zasilania (Tz) zaledwie z 33°C na 38°C (wymuszone przez panele) obniża współczynnik efektywności COP pompy ciepła o około 10-12%. To bezpośrednio przekłada się na proporcjonalnie wyższe rachunki za prąd przez cały sezon grzewczy.</p>
            <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">
                Wybierz odpowiednią okładzinę ➔
            </a>
        </div>

    </div>
</div>

<script>
function rkSwitchFloor(type) {
    const visual = document.getElementById('rkFlVisual');
    const btnTiles = document.getElementById('btn-tiles');
    const btnPanels = document.getElementById('btn-panels');
    
    const valR = document.getElementById('val-r');
    const valTz = document.getElementById('val-tz');
    const valCop = document.getElementById('val-cop');

    if(type === 'tiles') {
        visual.className = 'rk-fl-visual-box state-tiles';
        btnTiles.classList.add('active');
        btnPanels.classList.remove('active');

        valR.innerHTML = '0,01 <span style="font-size:14px">m²K/W</span>';
        valTz.innerHTML = '33 °C';
        valTz.className = 'rk-fl-data-val val-success';
        
        valCop.innerHTML = 'MAX (100%)';
        valCop.className = 'rk-fl-data-val val-success';
    } else {
        visual.className = 'rk-fl-visual-box state-panels';
        btnPanels.classList.add('active');
        btnTiles.classList.remove('active');

        valR.innerHTML = '0,12 <span style="font-size:14px">m²K/W</span>';
        valTz.innerHTML = '38 °C';
        valTz.className = 'rk-fl-data-val val-danger';
        
        valCop.innerHTML = 'Spadek o -12%';
        valCop.className = 'rk-fl-data-val val-danger';
    }
}
</script>



<style>
:root {
    --rk-calc-bg: #f8fafc;
    --rk-calc-card: #ffffff;
    --rk-calc-dark: #0f172a;
    --rk-calc-brand: #2563eb; 
    --rk-calc-brand-hover: #1d4ed8;
    --rk-calc-brand-light: #eff6ff;
    --rk-calc-accent: #f97316; 
    --rk-calc-success: #10b981;
    --rk-calc-warning: #f59e0b;
    --rk-calc-danger: #ef4444;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
}

.rk-calc-wrapper {
    max-width: 1000px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
    color: var(--rk-calc-dark);
}

/* Nagłówek Kalkulatora */
.rk-calc-head {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e3a8a 100%);
    padding: 40px 45px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-calc-head::after {
    content: '';
    position: absolute;
    right: -50px;
    top: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37,99,235,0.4) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #93c5fd;
    padding: 8px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(4px);
}

.rk-calc-head h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.2;
}

.rk-calc-head p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 650px;
    line-height: 1.6;
}

/* Grid Główny */
.rk-calc-body {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    background: var(--rk-calc-bg);
}

/* Sekcja Lewa - Konfigurator */
.rk-calc-controls {
    padding: 40px 45px;
    background: #ffffff;
    border-right: 1px solid var(--rk-calc-border);
}

.rk-calc-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-calc-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 30px 0 20px 0;
}

.rk-calc-section-title:first-child {
    margin-top: 0;
}

.rk-calc-section-title svg {
    color: var(--rk-calc-brand);
}

/* Przyciski Wyboru (Kafelki z ikonami) */
.rk-calc-btn-group {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.rk-calc-opt-btn {
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 14px;
    padding: 15px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-calc-opt-btn:hover {
    border-color: #93c5fd;
    background: var(--rk-calc-brand-light);
}

.rk-calc-opt-btn.active {
    border-color: var(--rk-calc-brand);
    background: var(--rk-calc-brand-light);
    box-shadow: 0 8px 15px -5px rgba(37, 99, 235, 0.15);
}

.rk-calc-opt-icon {
    width: 28px;
    height: 28px;
    color: var(--rk-calc-muted);
    transition: color 0.3s;
}

.rk-calc-opt-btn.active .rk-calc-opt-icon {
    color: var(--rk-calc-brand);
}

.rk-calc-opt-text {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-calc-text);
}

.rk-calc-opt-btn.active .rk-calc-opt-text {
    color: var(--rk-calc-brand);
}

/* Suwaki Modern */
.rk-slider-wrap {
    margin-bottom: 25px;
    background: #f8fafc;
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid #f1f5f9;
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.rk-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
}

.rk-slider-val {
    background: var(--rk-calc-brand);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 2px 5px rgba(37, 99, 235, 0.2);
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #cbd5e1;
    border-radius: 3px;
    outline: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-calc-brand);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

.rk-range-input::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Sekcja Prawa - Wyniki */
.rk-calc-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Główny Wynik z SVG */
.rk-res-main-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px 20px;
    text-align: center;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    position: relative;
    overflow: hidden;
}

.rk-res-gauge {
    width: 120px;
    height: 60px;
    margin: 0 auto 10px auto;
    position: relative;
}

.rk-gauge-path-bg { fill: none; stroke: #e2e8f0; stroke-width: 12; stroke-linecap: round; }
.rk-gauge-path-val { fill: none; stroke: var(--rk-calc-success); stroke-width: 12; stroke-linecap: round; transition: stroke-dashoffset 0.8s ease, stroke 0.3s; }

.rk-res-huge {
    font-size: 52px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    line-height: 1;
    margin-bottom: 5px;
    letter-spacing: -1px;
}

.rk-res-unit {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-muted);
    text-transform: uppercase;
}

.rk-res-alert {
    margin-top: 15px;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    display: none;
    background: var(--rk-calc-danger);
    color: #ffffff;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* Tabela Parametrów */
.rk-res-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-res-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    padding: 15px;
    border-radius: 14px;
}

.rk-res-box.accent {
    background: var(--rk-calc-dark);
    border-color: var(--rk-calc-dark);
}

.rk-res-box-label {
    font-size: 11px;
    color: var(--rk-calc-muted);
    font-weight: 800;
    text-transform: uppercase;
    display: block;
    margin-bottom: 5px;
}

.rk-res-box.accent .rk-res-box-label { color: #94a3b8; }

.rk-res-box-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

.rk-res-box.accent .rk-res-box-val { color: #ffffff; }

/* Pasek strat ciepła */
.rk-loss-bar-wrap {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
}

.rk-loss-bar-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-calc-muted);
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
}

.rk-loss-bar {
    height: 12px;
    display: flex;
    border-radius: 6px;
    overflow: hidden;
    background: #e2e8f0;
}

.rk-lb-segment { height: 100%; transition: width 0.5s ease; }
.rk-lb-w { background: var(--rk-calc-brand); }
.rk-lb-r { background: #38bdf8; }
.rk-lb-f { background: var(--rk-calc-accent); }
.rk-lb-v { background: #94a3b8; }

.rk-loss-legend {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 10px;
    font-weight: 700;
    color: var(--rk-calc-muted);
}

.rk-leg-item { display: flex; align-items: center; gap: 4px; }
.rk-leg-dot { width: 8px; height: 8px; border-radius: 50%; }

/* Sekcja Info Tekstowego & CTA */
.rk-calc-footer {
    background: #ffffff;
    border-top: 1px solid var(--rk-calc-border);
    padding: 40px 45px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-calc-info-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-calc-text);
    background: var(--rk-calc-brand-light);
    padding: 20px;
    border-left: 4px solid var(--rk-calc-brand);
    border-radius: 0 12px 12px 0;
    margin: 0;
}

.rk-calc-info-text a {
    color: var(--rk-calc-brand);
    font-weight: 700;
    text-decoration: underline;
}

.rk-calc-actions {
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-btn-primary {
    background: var(--rk-calc-accent);
    color: #ffffff;
    padding: 16px 30px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.4);
    transition: all 0.3s;
    border: none;
    cursor: pointer;
}

.rk-btn-primary:hover {
    transform: translateY(-3px);
    background: #ea580c;
    box-shadow: 0 15px 25px -5px rgba(249, 115, 22, 0.5);
}

@media (max-width: 900px) {
    .rk-calc-body { grid-template-columns: 1fr; }
    .rk-calc-head { padding: 35px 25px; }
    .rk-calc-controls { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-calc-results { padding: 30px 20px; }
    .rk-calc-footer { padding: 30px 20px; }
    .rk-calc-actions { flex-direction: column; }
    .rk-btn-primary { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-calculator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Kalkulator strat ciepła budynku online – oblicz zapotrzebowanie na ogrzewanie",
    "description": "Profesjonalny symulator OZC. Oblicz zapotrzebowanie na moc (W/m2), długość pętli grzewczych i dobierz optymalną temperaturę zasilania dla pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-calculator",
    "name": "Szacunkowe Parametry Wykonawcze Ogrzewania Podłogowego",
    "description": "Zbiór obliczonych parametrów hydraulicznych i termicznych wygenerowanych na podstawie wprowadzonych wskaźników izolacyjności przegród budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie cieplne W/m2",
      "dobór pompy obiegowej",
      "planowanie pętli grzewczych",
      "kosztorys ogrzewania podłogowego",
      "temperatura zasilania podłogówki"
    ],
    "measurementTechnique": "Szacowanie heurystyczne bazujące na uproszczonych wzorach normy PN-EN 12831, przeliczające sumę strat przez przenikanie i wentylację na metraż instalacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wynik > 95 W/m2 wskazuje na wysokie ryzyko niedogrzania samym systemem podłogowym.",
        "Zapotrzebowanie określa średnią wymaganą ilość mb rury instalacyjnej.",
        "Moc całkowita determinuje dobór mocy źródła ciepła (pompy ciepła)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-calculator",
    "name": "Zaawansowany Symulator Zapotrzebowania Cieplnego",
    "description": "Interaktywna aplikacja inżynierska wizualizująca na żywo zmiany parametrów instalacyjnych (temperatura, rozstaw rur) w zależności od grubości ocieplenia i rodzaju posadzki.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript enabled browser.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper" id="rk-calc-app">
    <div class="rk-calc-head">
        <div class="rk-calc-badge">Narzędzie Inżynierskie</div>
        <h2>Kalkulator strat ciepła budynku online – oblicz zapotrzebowanie na ogrzewanie</h2>
        <p>Wprowadź gabaryty swojego budynku oraz parametry przegród, aby błyskawicznie oszacować moc grzewczą i optymalne parametry pracy pętli podłogowych. Pamiętaj, że uzyskane wyniki mają <strong>charakter wyłącznie poglądowy</strong> i nie zastępują profesjonalnego projektu (OZC).</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-controls">
            
            <div class="rk-calc-section-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>
                1. Standard energetyczny
            </div>
            <div class="rk-calc-btn-group">
                <div class="rk-calc-opt-btn active" onclick="rkSetPreset('new', this)">
                    <svg class="rk-calc-opt-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                    <span class="rk-calc-opt-text">Nowy Dom<br>(WT 2021)</span>
                </div>
                <div class="rk-calc-opt-btn" onclick="rkSetPreset('mod', this)">
                    <svg class="rk-calc-opt-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    <span class="rk-calc-opt-text">Docieplony<br>(Modernizacja)</span>
                </div>
                <div class="rk-calc-opt-btn" onclick="rkSetPreset('old', this)">
                    <svg class="rk-calc-opt-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    <span class="rk-calc-opt-text">Stary Dom<br>(Bez izolacji)</span>
                </div>
            </div>

            <div class="rk-calc-section-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="4" y1="12" x2="20" y2="12"></line><line x1="12" y1="4" x2="12" y2="20"></line></svg>
                2. Geometria i Fizyka budowli
            </div>
            
            <div class="rk-slider-wrap">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Powierzchnia ogrzewana</span>
                    <span class="rk-slider-val"><span id="rk-v-area">140</span> m²</span>
                </div>
                <input type="range" id="rk-area" class="rk-range-input" min="40" max="300" value="140" oninput="rkUpdateCalc()">
            </div>

            <div class="rk-slider-wrap">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Strefa Klimatyczna</span>
                    <span class="rk-slider-val">Strefa <span id="rk-v-zone">III</span> (<span id="rk-v-temp">-20</span>°C)</span>
                </div>
                <input type="range" id="rk-zone" class="rk-range-input" min="1" max="5" step="1" value="3" oninput="rkUpdateCalc()">
            </div>

            <div class="rk-slider-wrap">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Wsp. przenikania Ścian (U)</span>
                    <span class="rk-slider-val" id="rk-v-walls">0.18</span>
                </div>
                <input type="range" id="rk-walls" class="rk-range-input" min="0.1" max="1.5" step="0.01" value="0.18" oninput="rkUpdateCalc()">
            </div>

            <div class="rk-slider-wrap">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Wsp. przenikania Dachu (U)</span>
                    <span class="rk-slider-val" id="rk-v-roof">0.15</span>
                </div>
                <input type="range" id="rk-roof" class="rk-range-input" min="0.1" max="1.0" step="0.01" value="0.15" oninput="rkUpdateCalc()">
            </div>

            <div class="rk-slider-wrap">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Wsp. przenikania Podłogi (U)</span>
                    <span class="rk-slider-val" id="rk-v-floor">0.25</span>
                </div>
                <input type="range" id="rk-floor" class="rk-range-input" min="0.1" max="1.5" step="0.01" value="0.25" oninput="rkUpdateCalc()">
            </div>

            <div class="rk-calc-section-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                3. Wykończenie posadzki
            </div>
            <div class="rk-calc-btn-group">
                <div class="rk-calc-opt-btn active" id="rk-f-tiles" onclick="rkSetFloor(0.02, 'tiles')">
                    <span class="rk-calc-opt-text">PŁYTKI/GRES</span>
                </div>
                <div class="rk-calc-opt-btn" id="rk-f-panels" onclick="rkSetFloor(0.08, 'panels')">
                    <span class="rk-calc-opt-text">PANELE</span>
                </div>
                <div class="rk-calc-opt-btn" id="rk-f-wood" onclick="rkSetFloor(0.12, 'wood')">
                    <span class="rk-calc-opt-text">DESKA</span>
                </div>
            </div>

        </div>

        <div class="rk-calc-results">
            
            <div class="rk-res-main-card">
                <div class="rk-res-gauge">
                    <svg viewBox="0 0 100 50" width="100%" height="100%">
                        <path class="rk-gauge-path-bg" d="M 10 50 A 40 40 0 0 1 90 50" />
                        <path class="rk-gauge-path-val" id="rk-gauge-val" d="M 10 50 A 40 40 0 0 1 90 50" stroke-dasharray="125.6" stroke-dashoffset="125.6" />
                    </svg>
                </div>
                <div class="rk-res-huge" id="rk-res-m2">--</div>
                <div class="rk-res-unit">Watów na m² (W/m²)</div>
                <div class="rk-res-alert" id="rk-alert-msg">
                    ⚠️ Krytyczne zapotrzebowanie. Sama instalacja podłogowa nie dogrzeje budynku w mrozy.
                </div>
            </div>

            <div class="rk-res-grid">
                <div class="rk-res-box">
                    <span class="rk-res-box-label">Moc całkowita instalacji</span>
                    <span class="rk-res-box-val" id="rk-res-total">-- kW</span>
                </div>
                <div class="rk-res-box accent">
                    <span class="rk-res-box-label">Sugerowany rozstaw rur</span>
                    <span class="rk-res-box-val" id="rk-res-spacing">-- cm</span>
                </div>
                <div class="rk-res-box">
                    <span class="rk-res-box-label">Temp. zasilania (Tz)</span>
                    <span class="rk-res-box-val" id="rk-res-tz" style="color:var(--rk-calc-accent)">-- °C</span>
                </div>
                <div class="rk-res-box">
                    <span class="rk-res-box-label">Ilość mb rury PEX (ok.)</span>
                    <span class="rk-res-box-val" id="rk-res-pipe">-- mb</span>
                </div>
            </div>

            <div class="rk-loss-bar-wrap">
                <span class="rk-loss-bar-title">Rozkład ucieczki ciepła</span>
                <div class="rk-loss-bar">
                    <div class="rk-lb-segment rk-lb-w" id="rk-bar-w" style="width: 0%"></div>
                    <div class="rk-lb-segment rk-lb-r" id="rk-bar-r" style="width: 0%"></div>
                    <div class="rk-lb-segment rk-lb-f" id="rk-bar-f" style="width: 0%"></div>
                    <div class="rk-lb-segment rk-lb-v" id="rk-bar-v" style="width: 0%"></div>
                </div>
                <div class="rk-loss-legend">
                    <div class="rk-leg-item"><div class="rk-leg-dot rk-lb-w"></div> Ściany</div>
                    <div class="rk-leg-item"><div class="rk-leg-dot rk-lb-r"></div> Dach</div>
                    <div class="rk-leg-item"><div class="rk-leg-dot rk-lb-f"></div> Podłoga</div>
                    <div class="rk-leg-item"><div class="rk-leg-dot rk-lb-v"></div> Wentylacja</div>
                </div>
            </div>

        </div>

    </div>

    <div class="rk-calc-footer">
        <h3>Jak czytać wyniki symulacji OZC?</h3>
        <p class="rk-calc-info-text">
            <strong>Zanim zamówisz materiały lub projekt, musisz oszacować zapotrzebowanie energetyczne!</strong> 
            Wyniki powyżej pokazują teoretyczne granice dla Twojego budynku i mają <strong>charakter poglądowy</strong>. Zbyt wysokie obciążenie (powyżej 80 W/m²) wymusi gęste układanie rur, a w efekcie zakup potężniejszego urządzenia grzewczego. Aby nie zgadywać w ciemno, bazuj na profesjonalnych wyliczeniach. Zastanów się zresztą sam: projekt "z głowy" czy pełny projekt inżynierski z obliczeniami strat? Różnica w kosztach późniejszej eksploatacji jest kolosalna.
        </p>
        <div class="rk-calc-actions">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-primary">
                ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </a>
        </div>
    </div>

</div>

<script>
let rkActiveR = 0.02;
const rkZTemps = { 1: -16, 2: -18, 3: -20, 4: -22, 5: -24 };
const rkZNames = { 1: "I", 2: "II", 3: "III", 4: "IV", 5: "V" };

function rkSetPreset(type, el) {
    document.querySelectorAll('.rk-calc-btn-group')[0].querySelectorAll('.rk-calc-opt-btn').forEach(b => b.classList.remove('active'));
    el.classList.add('active');
    
    const p = {
        new: { w: 0.18, r: 0.15, f: 0.25 },
        mod: { w: 0.35, r: 0.25, f: 0.40 },
        old: { w: 1.10, r: 0.80, f: 1.00 }
    };
    
    document.getElementById('rk-walls').value = p[type].w;
    document.getElementById('rk-roof').value = p[type].r;
    document.getElementById('rk-floor').value = p[type].f;
    rkUpdateCalc();
}

function rkSetFloor(r, id) {
    rkActiveR = r;
    const btns = document.querySelectorAll('.rk-calc-btn-group')[1].querySelectorAll('.rk-calc-opt-btn');
    btns.forEach(b => b.classList.remove('active'));
    document.getElementById('rk-f-'+id).classList.add('active');
    rkUpdateCalc();
}

function rkUpdateCalc() {
    const area = parseFloat(document.getElementById('rk-area').value);
    const zone = document.getElementById('rk-zone').value;
    const uWalls = parseFloat(document.getElementById('rk-walls').value);
    const uRoof = parseFloat(document.getElementById('rk-roof').value);
    const uFloor = parseFloat(document.getElementById('rk-floor').value);
    
    const deltaT = 20 - rkZTemps[zone];
    
    // Update labels
    document.getElementById('rk-v-area').innerText = area;
    document.getElementById('rk-v-zone').innerText = rkZNames[zone];
    document.getElementById('rk-v-temp').innerText = rkZTemps[zone];
    document.getElementById('rk-v-walls').innerText = uWalls.toFixed(2);
    document.getElementById('rk-v-roof').innerText = uRoof.toFixed(2);
    document.getElementById('rk-v-floor').innerText = uFloor.toFixed(2);

    // Calc logic
    const qWalls = (area * 1.5) * uWalls * deltaT; // uśrednione ściany
    const qRoof = area * uRoof * deltaT;
    const qFloor = area * uFloor * 15; // stałe dt dla gruntu
    const qVent = 0.34 * (area * 2.6) * 0.5 * deltaT; // grawitacyjna went.
    
    const total = (qWalls + qRoof + qFloor + qVent) * 1.1; // +10% mostki
    const wm2 = total / area;

    // UI Updates
    document.getElementById('rk-res-m2').innerText = Math.round(wm2);
    document.getElementById('rk-res-total').innerText = (total / 1000).toFixed(2);

    // Gauge Update (Max 150 W/m2 for scale)
    const gaugeValPath = document.getElementById('rk-gauge-val');
    const circumference = 125.6; // pi * r (r=40) for semi-circle
    let pct = wm2 / 150;
    if(pct > 1) pct = 1;
    const offset = circumference - (pct * circumference);
    gaugeValPath.style.strokeDashoffset = offset;

    const alertMsg = document.getElementById('rk-alert-msg');
    if(wm2 > 95) {
        gaugeValPath.style.stroke = "var(--rk-calc-danger)";
        alertMsg.style.display = "block";
    } else if (wm2 > 65) {
        gaugeValPath.style.stroke = "var(--rk-calc-warning)";
        alertMsg.style.display = "none";
    } else {
        gaugeValPath.style.stroke = "var(--rk-calc-success)";
        alertMsg.style.display = "none";
    }

    // Parameters
    let spacing = (wm2 > 70 || rkActiveR > 0.08) ? 10 : 15;
    document.getElementById('rk-res-spacing').innerText = spacing;

    let tz = 20 + (wm2 * (0.12 + rkActiveR));
    tz = Math.min(55, Math.max(28, tz));
    document.getElementById('rk-res-tz').innerText = Math.round(tz) + " °C";

    const pipe = area * (100 / spacing) * 1.05;
    document.getElementById('rk-res-pipe').innerText = Math.round(pipe);

    // Bars
    document.getElementById('rk-bar-w').style.width = (qWalls/total*100) + "%";
    document.getElementById('rk-bar-r').style.width = (qRoof/total*100) + "%";
    document.getElementById('rk-bar-f').style.width = (qFloor/total*100) + "%";
    document.getElementById('rk-bar-v').style.width = (qVent/total*100) + "%";
}

// Init on load
document.addEventListener('DOMContentLoaded', rkUpdateCalc);
</script>



<style>
/* STYLE DLA SEKCJI HERO I WSTĘPU */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-intro-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

/* 1. HERO BOX */
.premium-hero-box {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    position: relative;
    margin-bottom: 50px;
}

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(37,99,235,0.06) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 50px 55px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #eff6ff;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bfdbfe;
}

.hero-title {
    margin-top: 0;
    margin-bottom: 25px;
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    color: var(--primary);
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #475569;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 0;
}

/* 2. KARTY - 4 CZYNNIKI */
.factors-section {
    padding: 20px 0;
}

.factors-header {
    text-align: center;
    margin-bottom: 40px;
}

.factors-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.factors-header p {
    font-size: 16px;
    color: #64748b;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.factors-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.factor-card {
    background: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 20px;
    padding: 35px 30px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
}

.factor-card:hover {
    border-color: var(--accent);
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
}

.factor-icon {
    width: 56px;
    height: 56px;
    background: #eff6ff;
    color: var(--accent);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 25px;
    transition: transform 0.4s;
}

.factor-card:hover .factor-icon {
    transform: scale(1.1) rotate(-5deg);
}

.factor-card h4 {
    margin: 0 0 15px 0;
    font-size: 19px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.3;
}

.factor-card p {
    margin: 0 0 20px 0;
    font-size: 15px;
    line-height: 1.65;
    color: #475569;
}

.factor-example {
    background: #f8fafc;
    padding: 18px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--accent);
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
    margin-top: auto;
}

.factor-example strong {
    color: var(--primary);
    display: block;
    margin-bottom: 5px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.formula-box {
    background: #ffffff;
    border: 1px dashed #cbd5e1;
    padding: 10px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 10px;
    text-align: center;
}

/* Wyróżnienia kolorystyczne dla konkretnych kart */
.card-iso .factor-example { border-left-color: var(--success); }
.card-iso .factor-icon { background: #dcfce7; color: var(--success); }

.card-flow .factor-example { border-left-color: var(--accent); }

.card-len .factor-example { border-left-color: var(--danger); }
.card-len .factor-icon { background: #fee2e2; color: var(--danger); }

.card-pump .factor-example { border-left-color: var(--warning); }
.card-pump .factor-icon { background: #ffedd5; color: var(--warning); }

/* KREATYWNE CTA */
.rk-prm-cta-box {
    margin-top: 50px;
    background: linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%);
    border-radius: 20px;
    padding: 40px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    color: #ffffff;
    box-shadow: 0 15px 30px -10px rgba(37, 99, 235, 0.4);
}

.rk-prm-cta-text h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
}

.rk-prm-cta-text p {
    margin: 0;
    font-size: 15px;
    opacity: 0.9;
    max-width: 500px;
    line-height: 1.6;
}

.rk-prm-btn-massive {
    background: #ffffff;
    color: var(--accent);
    padding: 18px 30px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    transition: all 0.3s;
}

.rk-prm-btn-massive:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 25px rgba(0,0,0,0.2);
    background: #f8fafc;
}

@media (max-width: 900px) {
    .hero-content { padding: 40px 30px; }
    .hero-title { font-size: 28px; }
    .factors-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-prm-cta-box { flex-direction: column; text-align: center; padding: 35px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#projekt-hydrauliczny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Jak wyniki z kalkulatora strat ciepła wpływają na projekt ogrzewania podłogowego?",
    "description": "Przełożenie obciążenia cieplnego na parametry hydrauliczne: rozstaw rur PEX, rotametry, długość pętli oraz dobór pompy ciepła i bufora.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-hydraulika",
    "name": "Wytyczne Hydrauliczne Projektowania Ogrzewania Podłogowego",
    "description": "Techniczne korelacje pomiędzy zapotrzebowaniem energetycznym budynku a ustawieniami przepływów, długością pętli i doborem elementów maszynowni.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego parametry",
      "rozstaw rur w ogrzewaniu podłogowym",
      "maksymalna długość pętli ogrzewania podłogowego",
      "ustawienie przepływów na rotametrach",
      "dobór pompy ciepła i bufora"
    ],
    "measurementTechnique": "Konwersja obciążenia cieplnego (W/m2) na przepływy masowe przy zakładanym spadku temperatury dT=5K oraz wyznaczanie oporów hydraulicznych pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur: 20 cm dla <45 W/m2, 15 cm dla 50-80 W/m2, 10 cm dla stref brzegowych.",
        "Przepływ masowy (l/min) wyliczany z proporcji Mocy i delta T (ΔT).",
        "Maksymalna długość pojedynczej pętli rury 16x2.0 mm: 100-120 mb w celu ograniczenia oporów poniżej 20 kPa.",
        "Sumaryczna moc budynku warunkuje moc grzewczą pompy ciepła w punkcie biwalencyjnym."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-hydraulika",
    "name": "Przewodnik Parametrów Projektowych",
    "description": "Narzędzie tłumaczące inżynierskie przełożenie wyników audytu OZC na fizyczne elementy instalacji ogrzewania podłogowego (rury, rozdzielacze, bufory).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-intro-module" id="intro-hero-app">
    
    <div class="premium-hero-box">
        <div class="hero-content">
            <div class="hero-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Inżynieria w praktyce
            </div>
            
            <h2 class="hero-title">Jak wyniki z kalkulatora strat ciepła wpływają na projekt ogrzewania podłogowego?</h2>
            
            <p class="hero-text">Wprowadzenie dokładnych danych z kalkulatora strat ciepła budynku jest fundamentem do wykonania poprawnego, profesjonalnego projektu instalacji ogrzewania podłogowego.</p>
            
            <p class="hero-text">Wynik całkowitego obciążenia cieplnego (<strong>Q<sub>total</sub></strong>) oraz wskaźniki jednostkowe (<strong>W/m²</strong>) determinują kluczowe parametry hydrauliczne i montażowe układu wodnego, eliminując kosztowne błędy wykonawcze.</p>
        </div>
    </div>

    <div class="factors-section">
        <div class="factors-header">
            <h2>Przełożenie wyników na 4 parametry hydrauliczne projektu</h2>
            <p>Zobacz, jak wartości uzyskane z kalkulatora bezpośrednio determinują dobór komponentów i zasady montażu w Twoim domu.</p>
        </div>
        
        <div class="factors-grid">
            
            <div class="factor-card card-iso">
                <div class="factor-icon">📏</div>
                <h4>Dobór rozstawu rur (zagęszczenie wężownicy)</h4>
                <p>Wskaźniki jednostkowe zapotrzebowania z kalkulatora (ilość W/m²) bezpośrednio decydują o zagęszczeniu rur. Prawidłowy dobór gwarantuje, że podłoga odda dokładnie tyle ciepła, ile potrzebuje pomieszczenie w mroźne dni.</p>
                <div class="factor-example">
                    <strong>Zasady rozstawu:</strong>
                    • &lt; 45 W/m² → Rozstaw co <strong>20 cm</strong> (domy energooszczędne).<br>
                    • 50-80 W/m² → Rozstaw co <strong>15 cm</strong> (standard).<br>
                    • &gt; 80 W/m² lub duże okna → Zagęszczenie co <strong>10 cm</strong> (strefy brzegowe).
                </div>
            </div>

            <div class="factor-card card-flow">
                <div class="factor-icon">⚖️</div>
                <h4>Wyznaczenie przepływów masowych (rotametry)</h4>
                <p>Dokładna moc pętli z OZC pozwala wyliczyć wymagany przepływ wody na belce rozdzielacza. Tę wartość hydraulik musi precyzyjnie ustawić na rotametrze podczas procedury równoważenia instalacji.</p>
                <div class="factor-example">
                    <strong>Przykład z projektu:</strong>
                    Dla pętli o mocy Q = 1200 W i spadku temperatury ΔT = 5 K, wymagany przepływ wynosi:
                    <div class="formula-box">
                        ṁ = Q / (c · ΔT) = 1200 / (1,163 · 5) = 206,3 kg/h ≈ 3,43 l/min
                    </div>
                </div>
            </div>

            <div class="factor-card card-len">
                <div class="factor-icon">🛑</div>
                <h4>Maksymalna długość pętli grzewczej</h4>
                <p>Projektant, znając przepływy i wynikowe straty ciepła, dzieli powierzchnię posadzki na sekcje. Robi to tak, aby nie przekroczyć granicznych oporów hydraulicznych, z którymi nie poradzi sobie pompa obiegowa.</p>
                <div class="factor-example">
                    <strong>Limit inżynierski:</strong>
                    Pojedyncza pętla z popularnej rury o średnicy 16 mm <strong>nie może przekroczyć 100-120 metrów długości</strong>. Dłuższa rura wygeneruje opory powyżej 20 kPa, powodując efekt „zimnej podłogi” na końcu obiegu w salonie.
                </div>
            </div>

            <div class="factor-card card-pump">
                <div class="factor-icon">⚙️</div>
                <h4>Dobór pompy ciepła i bufora</h4>
                <p>Całkowita moc budynku uzyskana z kalkulatora (np. 7,5 kW dla skrajnej temperatury -20°C) wskazuje wprost inwestorowi i projektantowi, jakiej klasy mocowej model pompy ciepła należy zakupić.</p>
                <div class="factor-example">
                    <strong>Dlaczego to jest ważne?</strong>
                    Precyzyjny dobór mocy zapobiega instalacji urządzeń zbyt dużych (przewymiarowanych), które ulegają przyspieszonym awariom z powodu tzw. taktowania kompresora. Wyznacza też wymaganą minimalną pojemność bufora dla procesu defrostu.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-prm-cta-box">
        <div class="rk-prm-cta-text">
            <h3>Koniec z szacowaniem "na oko"!</h3>
            <p>Nie pozwól instalatorowi układać rur bez rzetelnego, matematycznego planu. Zainwestuj w pełny projekt inżynierski OZC, który zbilansuje każdy litr wody w Twoim domu. <strong>To jedyna gwarancja niskich rachunków.</strong></p>
        </div>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-prm-btn-massive">
            Zamów Kompletny Projekt
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('intro-hero-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">Ten moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został wdrożony na nieautoryzowanej domenie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-danger: #ef4444; 
    --rk-err-danger-light: #fef2f2;
    --rk-err-warn: #f59e0b; 
    --rk-err-safe: #10b981; 
    --rk-err-blue: #3b82f6; 
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-err-danger);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(252, 165, 165, 0.2);
}

.rk-err-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 10px 0;
}

.rk-err-title span { color: #f87171; }

.rk-err-subtitle {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
}

/* Moduł Interaktywny */
.rk-err-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-err-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 30px;
}

/* Lista błędów (Lewa Kolumna) */
.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    padding: 18px 20px;
    border-radius: 16px;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-btn:hover {
    border-color: var(--rk-err-danger);
    transform: translateX(4px);
}

.rk-err-btn.active {
    background: var(--rk-err-danger-light);
    border-color: var(--rk-err-danger);
    box-shadow: inset 4px 0 0 var(--rk-err-danger), 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-err-icon {
    width: 32px;
    height: 32px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-muted);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-err-btn.active .rk-err-icon {
    background: var(--rk-err-danger);
    color: #ffffff;
}

.rk-err-btn-text h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
}

.rk-err-btn-text p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-err-muted);
    line-height: 1.4;
}

/* Karty CTA (Długi Ogon - Wypełnienie Pustego Miejsca na lewym pasku) */
.rk-err-cta-card {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border-radius: 14px;
    padding: 18px 20px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 1px solid #334155;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
    margin-top: 5px;
}

.rk-err-cta-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(15, 23, 42, 0.4);
    border-color: var(--rk-err-danger);
}

.err-cta-badge {
    font-size: 10px;
    color: #cbd5e1;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.err-cta-badge::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--rk-err-danger);
    border-radius: 50%;
}

.err-cta-title {
    font-size: 14px;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.5;
    padding-right: 25px;
}

.err-cta-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rk-err-danger);
    font-size: 18px;
    font-weight: bold;
    transition: right 0.3s;
}

.rk-err-cta-card:hover .err-cta-arrow {
    right: 15px;
}

/* Panel Detali (Prawa Kolumna - Zoptymalizowana pod Długi Ogon Tekstu) */
.rk-err-display {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-err-panel {
    display: none;
    flex-direction: column;
    height: 100%;
}

.rk-err-panel.active {
    display: flex;
    animation: fadeInScale 0.4s ease-out forwards;
}

@keyframes fadeInScale {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

/* Treść Panelu Pełnotekstowego */
.rk-err-content {
    padding: 40px 45px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.rk-err-content h3 {
    margin: 0 0 20px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-err-dark);
    line-height: 1.3;
}

.rk-err-content p {
    margin: 0 0 18px 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-err-text);
}

.rk-err-content strong {
    color: var(--rk-err-dark);
    font-weight: 800;
}

.rk-err-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-err-danger);
    font-weight: 800;
    font-size: 15px;
    text-decoration: none;
    margin-top: 15px;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-err-border);
    transition: color 0.3s;
}

.rk-err-link:hover { color: #991b1b; }
.rk-err-link svg { transition: transform 0.3s; }
.rk-err-link:hover svg { transform: translateX(5px); }

@media (max-width: 768px) {
    .rk-err-header { padding: 35px 25px; }
    .rk-err-title { font-size: 24px; }
    .rk-err-interactive { padding: 25px; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-err-content { padding: 30px 25px; }
    .rk-err-content h3 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-bledy-szacowania",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Najczęstsze błędy inwestorów przy samodzielnym szacowaniu zapotrzebowania na ciepło",
    "description": "Kluczowe pułapki podczas obliczania strat cieplnych: ignorowanie izolacji brzegowej, błędna kubatura do strat wentylacyjnych, zła strefa klimatyczna oraz wpływ wylewki na bezwładność.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-bledy",
    "name": "Rejestr Błędów Szacunkowych Zapotrzebowania Cieplnego",
    "description": "Wykaz najczęstszych odchyleń w samodzielnych audytach energetycznych wpływających na przewymiarowanie pomp ciepła i nieefektywność instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy obliczeniowe OZC",
      "grubość wylewki a straty ciepła",
      "izolacja brzegowa podłogówki",
      "strefa klimatyczna w Polsce",
      "straty wentylacyjne kubatura",
      "straty ciepła przez duże przeszklenia",
      "temperatura w łazience 24 stopnie"
    ],
    "measurementTechnique": "Weryfikacja parametrów audytowych poprzez porównanie wskaźników normatywnych z błędnymi założeniami inwestorskimi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Fałszywy wskaźnik 50 W/m2 przy dużych przeszkleniach północnych.",
        "Generowanie masywnej bezwładności przez wylewki grubsze niż 6 cm.",
        "Zawyżanie kubatury wentylacyjnej przez przyjmowanie wysokości stanu surowego.",
        "Przemarzanie stref przez brak ciągłości izolacji brzegowej.",
        "Przyjmowanie uniwersalnej strefy klimatycznej zamiast lokalnej temperatury projektowej.",
        "Ignorowanie wyższej temperatury docelowej (+24°C) dla łazienek w bilansie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-error-scanner",
    "name": "Przegląd Błędów Obliczeniowych HVAC",
    "description": "Narzędzie nawigacyjne demaskujące wpływ niewłaściwych założeń architektonicznych i materiałowych na błędy w kalkulatorach zapotrzebowania cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Skaner Ryzyka Inwestycyjnego
        </div>
        <h2 class="rk-err-title">Najczęstsze błędy inwestorów przy <span>samodzielnym szacowaniu zapotrzebowania</span> na ciepło</h2>
        <p class="rk-err-subtitle">Nawet najlepszy kalkulator poda fałszywy wynik, jeśli wprowadzisz do niego błędne dane wejściowe. Zobacz 6 grzechów głównych, które zrujnują bilans energetyczny Twojego domu.</p>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-list">
                
                <button class="rk-err-btn active" data-err="err-1">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Ślepa wiara w internet</h4>
                        <p>Ignorowanie dużych okien</p>
                    </div>
                </button>

                <button class="rk-err-btn" data-err="err-2">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Bezwładność wylewki</h4>
                        <p>Opór grubego betonu</p>
                    </div>
                </button>

                <button class="rk-err-btn" data-err="err-3">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Błędy kubaturowe</h4>
                        <p>Stan surowy vs gotowy</p>
                    </div>
                </button>

                <button class="rk-err-btn" data-err="err-4">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12.55a11 11 0 0 1 14.08 0"></path><path d="M1.42 9a16 16 0 0 1 21.16 0"></path><path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path><line x1="12" y1="20" x2="12.01" y2="20"></line></svg>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Mostki termiczne</h4>
                        <p>Brak izolacji brzegowej</p>
                    </div>
                </button>

                <button class="rk-err-btn" data-err="err-5">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Zła strefa klimatyczna</h4>
                        <p>Błąd na ΔT i temperaturze</p>
                    </div>
                </button>

                <button class="rk-err-btn" data-err="err-6">
                    <div class="rk-err-icon">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
                    </div>
                    <div class="rk-err-btn-text">
                        <h4>Niedogrzana łazienka</h4>
                        <p>Ignorowanie normy +24°C</p>
                    </div>
                </button>

                <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-err-cta-card">
                    <div class="err-cta-badge">Kalkulacje a okładzina</div>
                    <div class="err-cta-title">Panele czy Płytki? Poznaj wpływ na efektywność instalacji</div>
                    <div class="err-cta-arrow">➔</div>
                </a>

                <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/" class="rk-err-cta-card">
                    <div class="err-cta-badge">Ostrzeżenie Inżyniera</div>
                    <div class="err-cta-title">5 Błędów montażu, których nie naprawisz po wylewce</div>
                    <div class="err-cta-arrow">➔</div>
                </a>

            </div>

            <div class="rk-err-display">
                
                <div class="rk-err-panel active" id="err-1">
                    <div class="rk-err-content">
                        <h3>Przyjmowanie uśrednionych wskaźników z internetu</h3>
                        <p>Projektowanie instalacji na bazie ogólnikowego hasła „każdy nowy dom potrzebuje 50 W/m²” to proszenie się o kłopoty. Ignorowanie wielkości okien to błąd kardynalny. Dom z dużymi przeszkleniami od strony północnej może potrzebować w strefie przyokiennej potężnego zastrzyku mocy – w najchłodniejsze dni nawet do 90 W/m².</p>
                        <p><strong>Dlaczego duże okna tarasowe (np. typu HS) generują problemy?</strong> Przeszklenia mają zazwyczaj 3-4 krotnie gorszy współczynnik przenikania ciepła (U) niż dobrze ocieplona ściana zewnętrzna. Oznacza to, że salon z oknem na całą ścianę wychładza się drastycznie szybciej. Aby skompensować te <strong>straty ciepła przez duże przeszklenia</strong>, konieczne jest wyznaczenie precyzyjnej <strong>strefy brzegowej obwodowej w ogrzewaniu podłogowym</strong> z gęstszym rozstawem rur (najczęściej co 10 cm, a czasem nawet co 5 cm). Profesjonalny kalkulator strat ciepła budynku zawsze oddziela przegrody przezroczyste od pełnych ścian, co pozwala bezbłędnie zoptymalizować późniejszy projekt inżynierski.</p>
                        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/" class="rk-err-link">
                            Zarządzaj strefą brzegową przy oknach 
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

                <div class="rk-err-panel" id="err-2">
                    <div class="rk-err-content">
                        <h3>Nieuwzględnianie grubości i rodzaju wylewki</h3>
                        <p>Zbyt gruba wylewka betonowa (np. wylanie 10 cm standardowego betonu z miksokreta zamiast optymalnych 5-6 cm specjalistycznego jastrychu) drastycznie zaburza parametry. Kalkulator musi koniecznie uwzględniać ten opór cieplny warstwy nad rurami, inaczej oszacowana temperatura zasilania z kotła okaże się niewystarczająca do efektywnego przebicia grubej warstwy budulca i nagrzania posadzki.</p>
                        <p><strong>Jaka wylewka na ogrzewanie podłogowe sprawdzi się najlepiej?</strong> Wybór materiału ma kluczowy wpływ na roczne rachunki. Jastrych anhydrytowy charakteryzuje się znacznie wyższym współczynnikiem przewodzenia ciepła (λ) i płynną konsystencją, która idealnie, bez pęcherzyków powietrza otula rury PEX lub PERT. Znacznie mniejsza <strong>bezwładność cieplna w ogrzewaniu podłogowym</strong> z wylewką anhydrytową pozwala systemowi szybciej reagować na nagłe zmiany pogody, zmniejszając zużycie prądu przez pompę ciepła.</p>
                        <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-err-link">
                            Optymalna grubość wylewki – parametry i normy
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

                <div class="rk-err-panel" id="err-3">
                    <div class="rk-err-content">
                        <h3>Błędne obliczanie kubatury do strat wentylacyjnych</h3>
                        <p>To powszechny, klasyczny błąd przy samodzielnych wyliczeniach! Przyjmowanie wysokości pomieszczeń bezpośrednio z rzutów architektonicznych z fazy stanu surowego (np. wpisywanie w tabelę 2,80 m lub 3,00 m) zamiast wartości docelowej netto po wykonaniu grubych izolacji podłóg styropianem, wylaniu jastrychu oraz montażu sufitów podwieszanych (gdzie realna wysokość wynosi np. 2,55 m). Taki pozornie drobny błąd sztucznie podnosi wynik w kalkulatorze o kilkanaście procent.</p>
                        <p><strong>Jak oblicza się straty cieplne w budynkach z rekuperacją?</strong> Precyzyjna kubatura przestrzeni powietrznej jest fundamentalna przy wentylacji mechanicznej z odzyskiem ciepła. Markowy rekuperator potrafi odzyskać ponad 80% ciepła z wywiewanego powietrza z pomieszczeń. Błędnie zawyżona objętość zmusza do projektowania większych, niepotrzebnych przepływów powietrza oraz potężnie zakłamuje <strong>projektowe obciążenie cieplne (OZC)</strong>. Skutek? Kupujesz mocniejszą, dużo droższą pompę ciepła, która przez cały sezon będzie fatalnie taktować, pracując na zwolnionych obrotach.</p>
                        <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-err-link">
                            Poznaj wpływ rekuperacji na obciążenie OZC
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

                <div class="rk-err-panel" id="err-4">
                    <div class="rk-err-content">
                        <h3>Ignorowanie izolacji brzegowej i fundamentowej</h3>
                        <p>Pomijanie mocy uciekającej niekontrolowanie przez boki i krawędzie nagrzanej płyty grzewczej do otoczenia to inżynierski koszmar. Brak grubej, elastycznej pianki dylatacyjnej umieszczonej na stykach wylewki ze ścianami zewnętrznymi generuje potężny obwodowy mostek termiczny. To tędy najczęściej i bezpowrotnie ucieka energia na zewnątrz budynku, co często wywołuje ekstremalne wychłodzenie cokołów i powstawanie pleśni.</p>
                        <p><strong>Ile styropianu pod ogrzewanie podłogowe na gruncie?</strong> Absolutną bazą jest doskonała izolacja termiczna kładziona bezpośrednio na folii przeciwwilgociowej (standard WT to obecnie około 15-20 cm twardego styropianu rzędu EPS 100). Jej głównym zadaniem jest zablokowanie przekazywania ciepła w dół do gruntu. Z kolei profesjonalna <strong>izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</strong> pełnią podwójną misję: jako amortyzator mechaniczny przejmują naprężenia termiczne rozszerzającego się jastrychu (zapobiegając pękaniu posadzki), oraz stanowią kluczową fizyczną blokadę cieplną pomiędzy płytą a murowanymi, zimnymi ścianami.</p>
                        <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">
                            Sprawdź zasady dylatacji i izolacji brzegowej 
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

                <div class="rk-err-panel" id="err-5">
                    <div class="rk-err-content">
                        <h3>Błędne przypisanie strefy klimatycznej</h3>
                        <p>Polska nie jest jednolita termicznie! Wpisanie do kalkulatora domyślnej wartości -20°C dla inwestycji w Szczecinie (Strefa I: -16°C) zafałszuje wynik w górę. Z kolei dla inwestycji w Suwałkach (Strefa V: -24°C) instalacja zostanie dramatycznie niedoszacowana, co doprowadzi do przemarzania budynku.</p>
                        <p><strong>Jak strefa klimatyczna w Polsce wpływa na wynik kalkulatora strat ciepła?</strong> Różnica temperatur (ΔT) między wnętrzem a otoczeniem jest głównym i najsilniejszym mnożnikiem we wzorze na przenikanie. Błędne określenie dokładnej <strong>projektowej temperatury zewnętrznej</strong> sprawi, że sztucznie wyliczone zapotrzebowanie wymusi na Tobie zakup pompy ciepła o niewłaściwej mocy – a przesterowane urządzenie szybciej ulegnie kosztownej awarii kompresora.</p>
                        <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-err-link">
                            Sprawdź podział na strefy klimatyczne i normę PN-EN 12831
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

                <div class="rk-err-panel" id="err-6">
                    <div class="rk-err-content">
                        <h3>Ignorowanie wyższej temperatury docelowej w łazience</h3>
                        <p>Inwestorzy często liczą całą powierzchnię domu ryczałtowo, przyjmując wszędzie standardowe +20°C. Tymczasem zgodnie ze sztuką inżynierską oraz prawem budowlanym, docelowa temperatura komfortu w łazience musi wynosić +24°C. Różnica zaledwie 4 stopni potężnie zmienia i zawyża bilans cieplny dla tego pomieszczenia.</p>
                        <p><strong>Dlaczego łazienka wymaga innych obliczeń strat ciepła w kalkulatorze budowlanym?</strong> Wyższa delta temperatur (ΔT) oznacza drastycznie szybszą ucieczkę energii przez ściany i wentylację. Co gorsza, w łazience użyteczna, fizyczna powierzchnia wylewki pod <strong>ogrzewanie podłogowe</strong> jest mocno ograniczona przez stałą zabudowę (wanna, brodzik bez progu, szafki, stelaże WC). Wymusza to na projektancie OZC skrajne zagęszczenie rur grzewczych (często co 5-10 cm) oraz w 90% przypadków dodanie dedykowanego ściennego grzejnika elektrycznego do suszenia ręczników.</p>
                        <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/" class="rk-err-link">
                            Zobacz jak gęsto układać rury podłogówki w łazience
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
                        </a>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-err-btn');
    const panels = document.querySelectorAll('.rk-err-panel');

    // Obsługa zakładek błędów
    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            btn.classList.add('active');
            const targetId = btn.getAttribute('data-err');
            const targetPanel = document.getElementById(targetId);
            
            if(targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-brand: #0284c7; /* Sky blue - techniczny i górski */
    --rk-case-brand-light: #f0f9ff;
    --rk-case-accent: #f59e0b; /* Bursztyn - ogrzewanie */
    --rk-case-danger: #ef4444; 
    --rk-case-success: #10b981; 
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
}

.rk-case-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.3);
    overflow: hidden;
    color: var(--rk-case-dark);
}

/* Nagłówek Sekcji */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #082f49 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-case-brand);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-case-title span { color: #38bdf8; }

.rk-case-intro {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.7;
    max-width: 800px;
}

/* Moduł Interaktywny */
.rk-case-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* Kontrolki - Lewa strona */
.rk-case-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-case-ctrl-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-case-ctrl-title {
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Przełączniki Suwakowe */
.rk-case-slider-wrap {
    position: relative;
    padding-top: 10px;
}

.rk-case-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    outline: none;
}

.rk-case-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-case-brand);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

.rk-case-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-case-muted);
}

/* Przełączniki Kafelkowe (Okładzina) */
.rk-case-btn-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.rk-case-opt-btn {
    background: #f1f5f9;
    border: 2px solid transparent;
    padding: 12px;
    border-radius: 10px;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-muted);
    cursor: pointer;
    transition: 0.3s;
}

.rk-case-opt-btn.active {
    background: var(--rk-case-brand-light);
    border-color: var(--rk-case-brand);
    color: var(--rk-case-brand);
}

/* Wyniki - Prawa strona */
.rk-case-results {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-case-visual {
    background: var(--rk-case-dark);
    border-radius: 16px;
    border: 3px solid #334155;
    height: 200px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}

.rk-case-svg {
    width: 100%;
    height: 100%;
}

.rk-case-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-case-card {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-case-card.highlight {
    background: var(--rk-case-dark);
    border-color: var(--rk-case-dark);
}

.rk-case-card-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-case-muted);
    margin-bottom: 5px;
}

.rk-case-card.highlight .rk-case-card-label { color: #94a3b8; }

.rk-case-card-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-card.highlight .rk-case-card-val { color: #ffffff; font-size: 22px; }

/* Informacja podsumowująca i CTA */
.rk-case-content {
    padding: 0 50px 40px 50px;
    background: #f8fafc;
}

.rk-case-text-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 20px;
}

.rk-case-text-box h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-text-box p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-case-text);
}

.rk-case-text-box p:last-child { margin: 0; }

.rk-case-link {
    color: var(--rk-case-brand);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.rk-case-link:hover { color: #0369a1; }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive, .rk-case-content { padding: 30px 20px; }
    .rk-case-title { font-size: 24px; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-case-visual { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#case-study-rabka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Praktyczne Case Study: Obliczenia strat ciepła dla domu 150 m² w Rabce-Zdroju",
    "description": "Zobacz, jak trudne warunki klimatyczne (Strefa V) w Rabce-Zdroju wpływają na kalkulator zapotrzebowania na ogrzewanie, dobór pompy ciepła i rozstaw rur u inwestora Pana Zbigniewa.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-rabka",
    "name": "Analiza OZC: Case Study 150 m² Rabka Zdrój",
    "description": "Dane z symulacji obciążenia cieplnego dla budynku o pow. 150 m2 zlokalizowanego w V strefie klimatycznej (-24°C). Porównanie izolacji WT2021 ze starym budownictwem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła Rabka",
      "zapotrzebowanie na ogrzewanie 150m2",
      "dobór pompy ciepła strefa V",
      "rozstaw rur w ogrzewaniu podłogowym",
      "projektowe obciążenie cieplne OZC"
    ],
    "measurementTechnique": "Szacowanie heurystyczne dla V strefy klimatycznej (ΔT = 44K) pokazujące wpływ standardu termicznego na całkowitą moc instalacji hydraulicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Nowy dom WT2021: ok. 50 W/m2, Moc PC: 7.5 kW, Rozstaw rur: 15 cm.",
        "Dom po termo: ok. 80 W/m2, Moc PC: 12.0 kW, Rozstaw rur: 10 cm.",
        "Stary dom: ok. 140 W/m2, Moc 21.0 kW. Ogrzewanie podłogowe niewystarczające bez docieplenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-rabka",
    "name": "Symulator Case Study - Pan Zbigniew (Rabka-Zdrój)",
    "description": "Interaktywny moduł edukacyjny wizualizujący wpływ wyboru izolacji i okładziny na temperaturę zasilania i kosztorys wykonawczy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
            Case Study: Pan Zbigniew (150 m²)
        </div>
        <h2 class="rk-case-title">Praktyczne Case Study: Obliczenia strat ciepła <span>dla domu w Rabce-Zdroju</span></h2>
        <p class="rk-case-intro">Pan Zbigniew z Rabki-Zdroju (V strefa klimatyczna, projektowa temperatura -24°C) planuje montaż instalacji podłogowej dla 150 m². Zobacz, jak jego decyzje dotyczące izolacji i wyboru posadzki na etapie budowy wpływają na wyniki w kalkulatorze.</p>
    </div>

    <div class="rk-case-interactive">
        <div class="rk-case-grid">
            
            <div class="rk-case-controls">
                
                <div class="rk-case-ctrl-box">
                    <h3 class="rk-case-ctrl-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-brand)" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>
                        Standard izolacji budynku
                    </h3>
                    <div class="rk-case-slider-wrap">
                        <input type="range" class="rk-case-range" id="rk-case-iso" min="1" max="3" step="1" value="3" oninput="rkUpdateCase()">
                        <div class="rk-case-labels">
                            <span style="color:var(--rk-case-danger)">Stary (Brak)</span>
                            <span style="color:var(--rk-case-accent)">Po Termo</span>
                            <span style="color:var(--rk-case-success)">WT 2021 (Nowy)</span>
                        </div>
                    </div>
                </div>

                <div class="rk-case-ctrl-box">
                    <h3 class="rk-case-ctrl-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-brand)" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg>
                        Wybór okładziny posadzki
                    </h3>
                    <div class="rk-case-btn-group">
                        <div class="rk-case-opt-btn active" id="btn-case-tiles" onclick="rkSetCaseFloor('tiles')">Gres / Płytki</div>
                        <div class="rk-case-opt-btn" id="btn-case-panels" onclick="rkSetCaseFloor('panels')">Panele Laminowane</div>
                    </div>
                </div>

            </div>

            <div class="rk-case-results">
                
                <div class="rk-case-visual">
                    <svg class="rk-case-svg" viewBox="0 0 200 100">
                        <polygon points="0,100 40,30 80,100" fill="#1e293b"/>
                        <polygon points="60,100 120,20 180,100" fill="#334155"/>
                        <polygon points="140,100 180,50 220,100" fill="#1e293b"/>
                        <polygon points="40,30 25,55 55,55" fill="#f1f5f9"/>
                        <polygon points="120,20 95,50 145,50" fill="#e2e8f0"/>
                        
                        <rect x="75" y="60" width="50" height="40" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
                        <polygon points="70,60 100,40 130,60" fill="#ef4444" stroke="#dc2626" stroke-width="2"/>
                        <rect x="90" y="75" width="20" height="25" fill="#38bdf8" opacity="0.3" stroke="#0ea5e9" stroke-width="1"/>
                        
                        <rect x="20" y="20" width="10" height="40" rx="5" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1"/>
                        <circle cx="25" cy="60" r="8" fill="#38bdf8"/>
                        <rect x="23" y="45" width="4" height="15" fill="#38bdf8"/>
                        <text x="38" y="64" fill="#f0f9ff" font-size="12" font-weight="bold">-24°C</text>
                    </svg>
                </div>

                <div class="rk-case-data-grid">
                    <div class="rk-case-card highlight">
                        <span class="rk-case-card-label">Zapotrzebowanie pokoju</span>
                        <span class="rk-case-card-val"><span id="val-case-wm2">50</span> <span style="font-size:14px">W/m²</span></span>
                    </div>
                    <div class="rk-case-card">
                        <span class="rk-case-card-label">Rozstaw rur PEX</span>
                        <span class="rk-case-card-val"><span id="val-case-spacing" style="color:var(--rk-case-brand)">co 15 cm</span></span>
                    </div>
                    <div class="rk-case-card">
                        <span class="rk-case-card-label">Moc Pompy Ciepła</span>
                        <span class="rk-case-card-val"><span id="val-case-kw">7.5</span> <span style="font-size:14px; color:var(--rk-case-muted)">kW</span></span>
                    </div>
                    <div class="rk-case-card">
                        <span class="rk-case-card-label">Temp. Zasilania (Tz)</span>
                        <span class="rk-case-card-val"><span id="val-case-tz" style="color:var(--rk-case-accent)">32°C</span></span>
                    </div>
                </div>

            </div>
        </div>
    </div>

    <div class="rk-case-content">
        
        <div class="rk-case-text-box">
            <h3>Wnioski z obliczeń strat ciepła dla lokalizacji górskiej</h3>
            <p>Rabka-Zdrój, z uwagi na przynależność do V strefy klimatycznej (projektowa temperatura -24°C), nakłada na inwestora znacznie surowsze wymogi fizyczne niż centralna Polska. Gdyby Pan Zbigniew użył taniego kalkulatora online ustawionego domyślnie na strefę III (-20°C), jego <strong>projektowe obciążenie cieplne (OZC)</strong> zostałoby niedoszacowane o ponad 10-15%. W praktyce oznaczałoby to wybór zbyt słabej pompy ciepła, która nie dałaby rady ogrzać domu 150 m² podczas siarczystych, styczniowych mrozów.</p>
        </div>

        <div class="rk-case-text-box" style="margin-bottom:0; border-color:var(--rk-case-brand);">
            <h3>Wpływ posadzki i rozstawu na portfel</h3>
            <p>Zwróć uwagę, co się dzieje, gdy Pan Zbigniew (przy bardzo dobrej izolacji WT2021) postanawia zmienić gres na panele laminowane. Ze względu na opór cieplny paneli, woda wychodząca z kotłowni musi być podgrzana o kilka stopni wyżej (Tz rośnie), aby przebić się przez warstwę izolatora. To wymusza gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-case-link">rozstaw rur w ogrzewaniu podłogowym</a> (z 15 cm robi się 10 cm), co podnosi koszty zakupu materiału hydraulicznego na całe 150 m².</p>
            <p>Jeżeli dom byłby stary, bez termomodernizacji, instalacja podłogowa w tym chłodnym regionie w ogóle by sobie nie poradziła – podłoga musiałaby zostać rozgrzana do niekomfortowych 35°C, a i tak potrzebne byłoby wsparcie przez <strong>kocioł gazowy</strong> lub dodatkowe grzejniki ścienne.</p>
        </div>

    </div>
</div>

<script>
let caseFloorType = 'tiles';

function rkSetCaseFloor(type) {
    caseFloorType = type;
    document.getElementById('btn-case-tiles').classList.remove('active');
    document.getElementById('btn-case-panels').classList.remove('active');
    document.getElementById('btn-case-' + type).classList.add('active');
    rkUpdateCase();
}

function rkUpdateCase() {
    const isoLevel = parseInt(document.getElementById('rk-case-iso').value);
    
    // Dane dla 150m2 w Rabce (-24st)
    let wm2, totalKw, spacing, baseTz;

    if(isoLevel === 1) {
        // Stary dom
        wm2 = 140;
        totalKw = 21.0;
        spacing = "Brak moliwości";
        baseTz = 55;
    } else if(isoLevel === 2) {
        // Po termo
        wm2 = 80;
        totalKw = 12.0;
        spacing = "co 10 cm";
        baseTz = 38;
    } else {
        // Nowy dom WT2021
        wm2 = 50;
        totalKw = 7.5;
        spacing = "co 15 cm";
        baseTz = 32;
    }

    // Korekta dla paneli
    if(caseFloorType === 'panels') {
        baseTz += 4;
        if(isoLevel === 3) spacing = "co 10 cm"; // panele wymuszają gęstszy rurę
    }

    // Zabezpieczenie wizualne przy braku możliwości
    if(isoLevel === 1) {
        document.getElementById('val-case-wm2').innerHTML = wm2 + " <span style='font-size:14px; color:#ef4444'>(Krytyczne)</span>";
        document.getElementById('val-case-spacing').innerText = "Wymagane grzejniki";
        document.getElementById('val-case-spacing').style.color = "#ef4444";
        document.getElementById('val-case-tz').innerText = ">50°C";
    } else {
        document.getElementById('val-case-wm2').innerText = wm2;
        document.getElementById('val-case-spacing').innerText = spacing;
        document.getElementById('val-case-spacing').style.color = "var(--rk-case-brand)";
        document.getElementById('val-case-tz').innerText = baseTz + "°C";
    }
    
    document.getElementById('val-case-kw').innerText = totalKw;
}

// Inicjalizacja
document.addEventListener('DOMContentLoaded', rkUpdateCase);
</script>



<style>
:root {
    --rk-hl-dark: #0f172a;
    --rk-hl-panel: #1e293b;
    --rk-hl-brand: #f97316; /* Energetyczny pomarańcz (Ciepło) */
    --rk-hl-brand-light: #ffedd5;
    --rk-hl-blue: #0ea5e9;  /* Chłodny niebieski (Zimno/Wentylacja) */
    --rk-hl-green: #10b981; /* Zielony (Optymalizacja/Sukces) */
    --rk-hl-bg: #ffffff;
    --rk-hl-border: #e2e8f0;
    --rk-hl-text: #334155;
    --rk-hl-muted: #64748b;
}

.rk-hl-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-hl-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(249, 115, 22, 0.15);
    border: 1px solid rgba(249, 115, 22, 0.3);
    overflow: hidden;
}

/* Sekcja Cytatu Eksperckiego - Zoptymalizowana */
.rk-hl-quote-section {
    background: linear-gradient(145deg, var(--rk-hl-dark) 0%, #020617 100%);
    padding: 50px;
    position: relative;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-bottom: 5px solid var(--rk-hl-brand);
    overflow: hidden;
}

.rk-hl-quote-section::before {
    content: '"';
    position: absolute;
    top: -20px;
    left: 40px;
    font-size: 180px;
    font-family: serif;
    color: rgba(249, 115, 22, 0.1);
    line-height: 1;
    z-index: 0;
}

.rk-hl-quote-text {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.5;
    margin: 0 0 25px 0;
    position: relative;
    z-index: 1;
    max-width: 850px;
}

.rk-hl-quote-text span {
    color: var(--rk-hl-brand);
}

.rk-hl-author-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,0.05);
    padding: 10px 25px;
    border-radius: 99px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-hl-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 2px solid var(--rk-hl-brand);
    object-fit: cover;
}

.rk-hl-author-info h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #ffffff;
}

.rk-hl-author-info p {
    margin: 0;
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

/* Interaktywny Moduł */
.rk-hl-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-hl-interactive-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-hl-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-hl-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-hl-border);
    border-radius: 20px;
    padding: 15px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

/* Przyciski (Tabs) + Karta Długiego Ogona */
.rk-hl-tabs {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-hl-tab-btn {
    background: #f8fafc;
    border: 1px solid var(--rk-hl-border);
    padding: 18px 20px;
    border-radius: 14px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-hl-tab-btn:hover {
    border-color: var(--rk-hl-brand);
    background: var(--rk-hl-brand-light);
}

.rk-hl-tab-btn.active {
    background: var(--rk-hl-brand);
    border-color: var(--rk-hl-brand);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.4);
    transform: scale(1.02);
}

.rk-hl-tab-icon {
    width: 38px;
    height: 38px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hl-brand);
    flex-shrink: 0;
    transition: 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.rk-hl-tab-btn.active .rk-hl-tab-icon {
    color: var(--rk-hl-brand);
}

.rk-hl-tab-text {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-hl-dark);
    transition: color 0.3s;
}

.rk-hl-tab-btn.active .rk-hl-tab-text {
    color: #ffffff;
}

/* Karta CTA (Długi Ogon - Wypełnienie Pustego Miejsca) */
.rk-hl-cta-card {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border-radius: 14px;
    padding: 16px 20px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-top: 10px;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    border: 1px solid #334155;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.rk-hl-cta-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(15, 23, 42, 0.4);
    border-color: var(--rk-hl-brand);
}

.cta-badge {
    font-size: 10px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.cta-badge::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--rk-hl-brand);
    border-radius: 50%;
}

.cta-title {
    font-size: 14px;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.4;
    padding-right: 25px;
}

.cta-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rk-hl-brand);
    font-size: 18px;
    font-weight: bold;
    transition: right 0.3s;
}

.rk-hl-cta-card:hover .cta-arrow {
    right: 15px;
}

/* Panele z Treścią */
.rk-hl-panels-container {
    position: relative;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid var(--rk-hl-border);
    overflow: hidden;
}

.rk-hl-panel {
    display: none;
    padding: 35px;
    animation: slideFadeIn 0.4s ease-out forwards;
}

.rk-hl-panel.active {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

@keyframes slideFadeIn {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-hl-panel h4 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-hl-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-hl-panel p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-hl-text);
}

.rk-hl-link {
    color: var(--rk-hl-brand);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px dashed rgba(249, 115, 22, 0.4);
    transition: 0.3s;
}

.rk-hl-link:hover {
    color: #c2410c;
    border-bottom-style: solid;
}

/* Kontenery SVG */
.rk-hl-svg-box {
    width: 100%;
    height: 180px;
    background: var(--rk-hl-dark);
    border-radius: 12px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
    border: 3px solid #334155;
    overflow: hidden;
}

.rk-svg-content {
    width: 100%;
    height: 100%;
}

/* SEKACJA AUTORSKA - PODPIS EKSPERTA (Przywrócona) */
.rk-hl-author-footer {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-hl-border);
}

.rk-hl-author-photo {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-hl-brand);
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-hl-author-desc {
    flex-grow: 1;
}

.rk-hl-author-desc h4 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-hl-dark);
}

.rk-hl-author-desc p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-hl-text);
    line-height: 1.6;
}

.rk-hl-social-links {
    display: flex;
    gap: 15px;
    margin-top: 12px;
}

.rk-hl-social-links a {
    color: var(--rk-hl-blue);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-hl-social-links a:hover {
    color: #0284c7;
    text-decoration: underline;
}

/* Animacje SVG */

/* Tab 1: Przenikanie */
.anim-heat-escape { opacity: 0; }
.rk-hl-panel.active .anim-heat-escape { animation: heatEscape 2s ease-out infinite; }
.rk-hl-panel.active .d-1 { animation-delay: 0s; }
.rk-hl-panel.active .d-2 { animation-delay: 0.5s; }
.rk-hl-panel.active .d-3 { animation-delay: 1s; }

@keyframes heatEscape {
    0% { transform: translate(0, 0); opacity: 1; stroke: #f97316; }
    100% { transform: translate(var(--tx), var(--ty)); opacity: 0; stroke: #ef4444; }
}

/* Tab 2: Wentylacja */
.anim-fan-spin { transform-origin: center; }
.rk-hl-panel.active .anim-fan-spin { animation: fanSpin 3s linear infinite; }
@keyframes fanSpin { to { transform: rotate(360deg); } }

.anim-air-flow { stroke-dasharray: 10 10; animation: dashFlow 1s linear infinite; }
@keyframes dashFlow { to { stroke-dashoffset: -20; } }

/* Tab 3: Mostki termiczne */
.anim-thermal-bridge { fill: transparent; transition: fill 0.5s; }
.rk-hl-panel.active .anim-thermal-bridge { animation: pulseRed 1.5s infinite alternate; }
@keyframes pulseRed {
    0% { fill: rgba(239, 68, 68, 0.2); stroke: rgba(239, 68, 68, 0.5); }
    100% { fill: rgba(239, 68, 68, 0.8); stroke: rgba(239, 68, 68, 1); box-shadow: 0 0 10px red; }
}

/* Tab 4: Wynik */
.anim-power-bar { transform: scaleY(0); transform-origin: bottom; transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s; }
.rk-hl-panel.active .anim-power-bar { transform: scaleY(1); }

@media (max-width: 768px) {
    .rk-hl-quote-section { padding: 40px 20px; }
    .rk-hl-quote-text { font-size: 20px; }
    .rk-hl-interactive { padding: 30px 20px; }
    .rk-hl-grid { grid-template-columns: 1fr; gap: 20px; padding: 10px; }
    .rk-hl-tabs { flex-direction: row; flex-wrap: wrap; }
    .rk-hl-tab-btn { flex: 1 1 calc(50% - 5px); padding: 12px; flex-direction: column; text-align: center; gap: 8px; }
    .rk-hl-cta-card { flex: 1 1 100%; margin-top: 5px; }
    .rk-hl-tab-text { font-size: 13px; }
    .rk-hl-panel { padding: 25px 20px; }
    .rk-hl-svg-box { height: 150px; }
    
    /* Responsive dla stopki z autorem */
    .rk-hl-author-footer { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-hl-social-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-quote-summary",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Eksperckie Podsumowanie - Składowe Bilansu Cieplnego Budynku",
    "description": "Brak rzetelnych obliczeń strat ciepła to najdroższy błąd inwestora. Poznaj 4 główne składowe zapotrzebowania energetycznego warunkujące dobór pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC & Audytor OZE",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-heat-loss",
    "name": "Parametry Bilansu Cieplnego Budynku (PN-EN 12831)",
    "description": "Analiza składowych strat ciepła: przenikanie przez przegrody (U), straty wentylacyjne, wpływ mostków cieplnych oraz optymalizacja mocy grzewczej podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "straty ciepła przez przenikanie",
      "straty wentylacyjne z rekuperacją",
      "obliczenia mostków termicznych",
      "zapotrzebowanie mocy pompy ciepła",
      "wylewka i panele a moc podłogówki"
    ],
    "measurementTechnique": "Algorytm zgodny z normą PN-EN 12831 wyliczający sumaryczne obciążenie cieplne na podstawie izolacyjności przegród, krotności wymiany powietrza oraz oporu cieplnego posadzki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przenikanie (Qtr): Główna ucieczka energii przez ściany i okna. Decyduje o nim współczynnik U.",
        "Wentylacja (Qv): Straty powietrzne. Wentylacja grawitacyjna to nawet 40% strat, rekuperacja obniża je diametralnie.",
        "Mostki cieplne: Nieszczelności izolacji, standardowo dolicza się 10-15% nawiązki do zapotrzebowania bazowego.",
        "Moc końcowa: Wyznacza precyzyjny dobór mocy nominalnej pompy ciepła, zapobiegając taktowaniu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-heat-loss-guide",
    "name": "Interaktywny Przewodnik: Składowe Strat Ciepła",
    "description": "Narzędzie nawigacyjne rozbijające trudne wzory matematyczne OZC na 4 zrozumiałe czynniki decyzyjne z wykorzystaniem dynamicznych schematów SVG oraz linkowań optymalizacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hl-container" id="rk-hl-app">
    
    <div class="rk-hl-quote-section">
        <h2 class="rk-hl-quote-text">
            Brak rzetelnych obliczeń OZC to <span>najdroższy błąd</span> inwestora. Zgadywanie rozstawu rur, bagatelizowanie izolacji czy oporu paneli podłogowych zmusza pompę ciepła do pracy na nieefektywnych parametrach. <span>Matematyka budynku nigdy nie wybacza szacowania „na oko”.</span>
        </h2>
        <div class="rk-hl-author-bar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-hl-avatar" loading="lazy">
            <div class="rk-hl-author-info">
                <h3>Robert Kucharski</h3>
                <p>Inżynier HVAC & Audytor OZE</p>
            </div>
        </div>
    </div>

    <div class="rk-hl-interactive">
        <h3 class="rk-hl-interactive-title">Anatomia Bilansu Cieplnego (4 Składowe)</h3>
        
        <div class="rk-hl-grid">
            
            <div class="rk-hl-tabs">
                
                <button class="rk-hl-tab-btn active" data-tab="hl-1">
                    <div class="rk-hl-tab-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-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>
                    </div>
                    <span class="rk-hl-tab-text">1. Przenikanie (Ściany/Okna)</span>
                </button>

                <button class="rk-hl-tab-btn" data-tab="hl-2">
                    <div class="rk-hl-tab-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path></svg>
                    </div>
                    <span class="rk-hl-tab-text">2. Straty Wentylacyjne</span>
                </button>

                <button class="rk-hl-tab-btn" data-tab="hl-3">
                    <div class="rk-hl-tab-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><circle cx="12" cy="13" r="2"></circle><line x1="12" y1="15" x2="12" y2="18"></line></svg>
                    </div>
                    <span class="rk-hl-tab-text">3. Mostki Cieplne (+10%)</span>
                </button>

                <button class="rk-hl-tab-btn" data-tab="hl-4">
                    <div class="rk-hl-tab-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    </div>
                    <span class="rk-hl-tab-text">4. Wynik i Dobór Mocy</span>
                </button>

                <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-hl-cta-card">
                    <div class="cta-badge">Analiza OZC a okładzina</div>
                    <div class="cta-title">Panele czy Płytki? Opór cieplny a efektywność podłogówki</div>
                    <div class="cta-arrow">➔</div>
                </a>

            </div>

            <div class="rk-hl-panels-container">
                
                <div class="rk-hl-panel active" id="hl-1">
                    <h4>
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-hl-brand)" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Straty przez przenikanie (U)
                    </h4>
                    <p>Wartość bazowa wyliczana ze wzoru (A × U × ΔT). Kluczowe znaczenie ma jakość izolacji (<a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-hl-link">zgodnie z PN-EN 12831</a>) oraz prawidłowe przyjęcie strefy klimatycznej. Błąd w grubości styropianu drastycznie podnosi ucieczkę energii w zimowe noce.</p>
                    <div class="rk-hl-svg-box">
                        <svg class="rk-svg-content" viewBox="0 0 200 100">
                            <path d="M80 70 V 40 L100 25 L120 40 V 70 Z" fill="none" stroke="#64748b" stroke-width="3" stroke-linejoin="round"/>
                            <rect x="92" y="55" width="16" height="15" fill="none" stroke="#64748b" stroke-width="2"/>
                            <g style="--tx: -30px; --ty: -10px;" class="anim-heat-escape d-1">
                                <path d="M70 45 L50 40" stroke-width="3" stroke-linecap="round"/>
                                <polyline points="55 35 50 40 55 45" stroke-width="3" fill="none" stroke-linejoin="round"/>
                            </g>
                            <g style="--tx: 30px; --ty: -10px;" class="anim-heat-escape d-2">
                                <path d="M130 45 L150 40" stroke-width="3" stroke-linecap="round"/>
                                <polyline points="145 35 150 40 145 45" stroke-width="3" fill="none" stroke-linejoin="round"/>
                            </g>
                            <g style="--tx: 0px; --ty: -30px;" class="anim-heat-escape d-3">
                                <path d="M100 20 L100 0" stroke-width="3" stroke-linecap="round"/>
                                <polyline points="95 5 100 0 105 5" stroke-width="3" fill="none" stroke-linejoin="round"/>
                            </g>
                        </svg>
                    </div>
                </div>

                <div class="rk-hl-panel" id="hl-2">
                    <h4>
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-hl-blue)" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Grawitacja vs Rekuperacja
                    </h4>
                    <p>W tradycyjnym domu wentylacja grawitacyjna wyrzuca w powietrze aż 40% wyprodukowanego ciepła! Zastosowanie odzysku ciepła (<a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-hl-link">rekuperacji</a>) redukuje to zapotrzebowanie drastycznie, pozwalając na montaż mniejszej pompy obiegowej.</p>
                    <div class="rk-hl-svg-box">
                        <svg class="rk-svg-content" viewBox="0 0 200 100">
                            <rect x="75" y="30" width="50" height="40" rx="4" fill="none" stroke="#94a3b8" stroke-width="3"/>
                            <line x1="75" y1="50" x2="125" y2="50" stroke="#94a3b8" stroke-width="2" stroke-dasharray="4 4"/>
                            <line x1="100" y1="30" x2="100" y2="70" stroke="#94a3b8" stroke-width="2" stroke-dasharray="4 4"/>
                            <path class="anim-air-flow" d="M 30 40 L 70 40" stroke="#0ea5e9" stroke-width="4" stroke-linecap="round"/>
                            <polyline points="65 35 70 40 65 45" fill="none" stroke="#0ea5e9" stroke-width="4" stroke-linejoin="round"/>
                            <path class="anim-air-flow" d="M 125 40 L 165 40" stroke="#f97316" stroke-width="4" stroke-linecap="round"/>
                            <polyline points="160 35 165 40 160 45" fill="none" stroke="#f97316" stroke-width="4" stroke-linejoin="round"/>
                            <g class="anim-fan-spin" style="transform-origin: 100px 50px;">
                                <circle cx="100" cy="50" r="12" fill="none" stroke="#64748b" stroke-width="2"/>
                                <line x1="100" y1="38" x2="100" y2="62" stroke="#64748b" stroke-width="2"/>
                                <line x1="88" y1="50" x2="112" y2="50" stroke="#64748b" stroke-width="2"/>
                            </g>
                        </svg>
                    </div>
                </div>

                <div class="rk-hl-panel" id="hl-3">
                    <h4>
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                        Pułapka Mostków Termicznych
                    </h4>
                    <p>Żaden dom nie jest idealnym termosem. Brak izolacji na wieńcach, niedokładne ocieplenie podłogi na gruncie i nadproża okienne wymagają doliczenia od 10% do 15% narzutu w obliczeniach inżynierskich. Ich ignorowanie kończy się niedogrzaniem pokoi.</p>
                    <div class="rk-hl-svg-box">
                        <svg class="rk-svg-content" viewBox="0 0 200 100">
                            <path d="M 50 80 L 150 80 L 150 20" fill="none" stroke="#64748b" stroke-width="15" stroke-linecap="square"/>
                            <path d="M 50 65 L 135 65 L 135 20" fill="none" stroke="#334155" stroke-width="15" stroke-linecap="square"/>
                            <circle class="anim-thermal-bridge" cx="142" cy="72" r="15" stroke-width="3"/>
                            <path d="M 120 90 L 140 75" fill="none" stroke="#ef4444" stroke-width="2" stroke-dasharray="3 3"/>
                        </svg>
                    </div>
                </div>

                <div class="rk-hl-panel" id="hl-4">
                    <h4>
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-hl-green)" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Wynik: Niska Temperatura Zasilania
                    </h4>
                    <p>Zsumowanie wszystkich wartości daje ostateczny wskaźnik mocy (np. 6,5 kW). Prawidłowy bilans budynku jest <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/" class="rk-hl-link">fundamentem komfortu termicznego</a> i pozwala obniżyć <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" class="rk-hl-link">temperaturę zasilania na kotłowni do optymalnych 35°C</a>.</p>
                    <div class="rk-hl-svg-box">
                        <svg class="rk-svg-content" viewBox="0 0 200 100">
                            <line x1="40" y1="80" x2="160" y2="80" stroke="#94a3b8" stroke-width="2"/>
                            <line x1="40" y1="80" x2="40" y2="20" stroke="#94a3b8" stroke-width="2"/>
                            <line x1="35" y1="40" x2="160" y2="40" stroke="#10b981" stroke-width="2" stroke-dasharray="5 5"/>
                            <text x="165" y="44" fill="#10b981" font-size="12" font-weight="bold">MAX 35°C</text>
                            <rect class="anim-power-bar" x="60" y="50" width="20" height="30" fill="#3b82f6" rx="2" style="transition-delay: 0.1s;"/>
                            <rect class="anim-power-bar" x="90" y="45" width="20" height="35" fill="#f59e0b" rx="2" style="transition-delay: 0.3s;"/>
                            <rect class="anim-power-bar" x="120" y="40" width="20" height="40" fill="#10b981" rx="2" style="transition-delay: 0.5s;"/>
                        </svg>
                    </div>
                </div>

            </div>
        </div>
    </div>
    
    <div class="rk-hl-author-footer">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-hl-author-photo" loading="lazy">
        <div class="rk-hl-author-desc">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na placach budowy. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, która na co dzień kształtuje decyzje tysięcy inwestorów i wykonawców w Polsce.</p>
            <div class="rk-hl-social-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-hl-tab-btn');
    const panels = document.querySelectorAll('.rk-hl-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Czyszczenie klas aktywnych
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Ustawienie aktualnego elementu
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-tab');
            const targetPanel = document.getElementById(targetId);
            
            if(targetPanel) {
                // Restart animacji CSS dla wykresów SVG
                void targetPanel.offsetWidth;
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-qa-dark: #0f172a;
    --rk-qa-card: #ffffff;
    --rk-qa-emerald: #059669; /* Ekspercki Szmaragd */
    --rk-qa-emerald-light: #d1fae5;
    --rk-qa-accent: #0284c7; /* Cyjan dla przełamania */
    --rk-qa-bg: #f8fafc;
    --rk-qa-border: #cbd5e1;
    --rk-qa-text: #334155;
}

.rk-qa-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-qa-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(5, 150, 105, 0.1);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-qa-header {
    background: linear-gradient(135deg, var(--rk-qa-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-qa-emerald);
}

.rk-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.2);
    color: #6ee7b7;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(110, 231, 183, 0.2);
}

.rk-qa-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-qa-title span { color: #34d399; }

/* Akordeon */
.rk-qa-interactive {
    padding: 40px 50px;
}

.rk-qa-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-qa-item {
    background: var(--rk-qa-card);
    border: 1px solid var(--rk-qa-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-qa-item.active {
    border-color: var(--rk-qa-emerald);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.1);
}

.rk-qa-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-qa-dark);
    transition: background 0.3s;
}

.rk-qa-question:hover {
    background: #f1f5f9;
}

.rk-qa-item.active .rk-qa-question {
    background: var(--rk-qa-emerald-light);
    color: #064e3b;
}

.rk-qa-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e2e8f0;
    color: var(--rk-qa-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s, color 0.3s;
}

.rk-qa-item.active .rk-qa-icon {
    background: var(--rk-qa-emerald);
    color: #ffffff;
    transform: rotate(135deg);
}

/* Kontener Odpowiedzi */
.rk-qa-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-qa-item.active .rk-qa-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-qa-answer-inner {
    overflow: hidden;
}

.rk-qa-content {
    padding: 30px;
    border-top: 1px solid var(--rk-qa-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 35px;
    align-items: center;
}

.rk-qa-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-qa-text);
}

.rk-qa-text strong {
    font-weight: 800;
    color: var(--rk-qa-dark);
}

.rk-link {
    color: var(--rk-qa-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: all 0.3s;
}

.rk-link:hover {
    border-bottom-color: var(--rk-qa-accent);
}

/* Wizualizacje SVG */
.rk-qa-visual {
    background: #f8fafc;
    border-radius: 16px;
    padding: 15px;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px dashed var(--rk-qa-border);
    position: relative;
}

.rk-qa-item.active .rk-qa-visual {
    border-color: var(--rk-qa-emerald);
    background: #ffffff;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* Animacje SVG */
/* 1. OZC vs Kalkulator */
.anim-scan { stroke-dasharray: 150; stroke-dashoffset: 150; transition: stroke-dashoffset 1s ease-in-out; }
.rk-qa-item.active .anim-scan { stroke-dashoffset: 0; stroke: var(--rk-qa-emerald); }

/* 2. PEX Length */
.anim-grid-line { stroke-dasharray: 50; stroke-dashoffset: 50; }
.rk-qa-item.active .anim-grid-line { animation: drawGrid 1.5s forwards; stroke: var(--rk-qa-accent); }
@keyframes drawGrid { to { stroke-dashoffset: 0; } }

/* 3. Thermometer */
.anim-mercury { transform: scaleY(0.4); transform-origin: bottom; transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1); fill: #ef4444; }
.rk-qa-item.active .anim-mercury { transform: scaleY(0.7); }

/* 4. Density */
.anim-dense-pipe { transition: transform 0.5s ease-out; }
.rk-qa-item.active .pipe-l { transform: translateX(5px); }
.rk-qa-item.active .pipe-r { transform: translateX(-5px); stroke: #ef4444; }

/* 5. Screed */
.anim-screed-layer { opacity: 0.3; transition: opacity 1s, fill 1s; }
.rk-qa-item.active .anim-screed-layer { opacity: 1; fill: #d1fae5; }

@media (max-width: 768px) {
    .rk-qa-header, .rk-qa-interactive { padding: 25px 20px; }
    .rk-qa-title { font-size: 24px; }
    .rk-qa-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-qa-visual { height: 130px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-qa-question { font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "FAQ – Eksperckie odpowiedzi o straty ciepła i parametry podłogówki",
    "description": "Najczęstsze pytania inwestorów dotyczące OZC, rozstawu rur PEX, temperatur zasilania oraz wpływu wylewki na działanie kalkulatora strat ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-faq",
    "name": "Zestawienie normatywne: Zapotrzebowanie cieplne a parametry podłogówki",
    "description": "Techniczne dane referencyjne wiążące zapotrzebowanie budynku na moc (W/m2) z ilością rury, temperaturą maksymalną zasilania oraz wymaganiami OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła online",
      "zapotrzebowanie W/m2",
      "zużycie rury PEX na m2",
      "maksymalna temperatura podłogówki",
      "wylewka anhydrytowa a moc"
    ],
    "measurementTechnique": "Obliczenia analityczne i heurystyczne oparte na wytycznych normy PN-EN 12831 oraz PN-EN 1264, porównujące wyniki z kalkulatorów internetowych z profesjonalnym OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 15 cm wymaga 6,7 mb rury PEX na 1 m2.",
        "Rozstaw 10 cm wymaga 10 mb rury PEX na 1 m2.",
        "Maksymalna temperatura zasilania podłogówki wg normy to 50 stopni Celsjusza.",
        "Graniczne zapotrzebowanie cieplne dla samej podłogówki to ok. 100 W/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-faq",
    "name": "Interaktywne FAQ - Parametry Projektowe Ogrzewania",
    "description": "Interaktywny moduł edukacyjny prezentujący zagadnienia hydrauliczne i cieplne przy użyciu animacji wektorowych i technicznych zestawień danych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy darmowy kalkulator strat ciepła online może zastąpić oficjalne OZC?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, darmowy kalkulator służy wyłącznie do wstępnej weryfikacji koncepcji i oszacowania kosztów. Oficjalne Obliczeniowe Zapotrzebowanie na Ciepło (OZC) wykonane przez inżyniera jest dokumentem prawnym wymaganym przy wnioskach o dotacje z programu „Czyste Powietrze” oraz przy precyzyjnym doborze pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Ile rury PEX potrzeba na 1 m² ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ilość rury zależy ściśle od jej rozstawu wynikającego z obliczeń strat ciepła. Przy rozstawie co 15 cm zużycie wynosi średnio 6,7 metra bieżącego na m², natomiast przy zagęszczeniu co 10 cm (np. w łazienkach lub strefach brzegowych) wzrasta do 10 metrów bieżących na m²."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest maksymalna temperatura zasilania dla ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Maksymalna dopuszczalna temperatura zasilania wodą grzewczą wynosi 50°C według normy PN-EN 1264. W optymalnie zaprojektowanych systemach dla domów energooszczędnych temperatura ta nie przekracza jednak 35°C w najzimniejszy dzień roku."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy wysokim zapotrzebowaniu na ciepło (>100 W/m²) można w nieskończoność zagęszczać rury?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Zagęszczanie rur ma swoje fizyczne i hydrauliczne granice. Zejście poniżej rozstawu 10 cm na całej powierzchni generuje ogromne opory, których nie pokona standardowa pompa obiegowa. Przy stratach rzędu 100 W/m² konieczna jest termomodernizacja lub wsparcie instalacji tradycyjnymi grzejnikami ściennymi."
        }
      },
      {
        "@type": "Question",
        "name": "Jak rodzaj wylewki wpływa na skuteczność wyników z kalkulatora?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wybór wylewki drastycznie zmienia parametry pracy. Wylewka anhydrytowa ma niemal dwukrotnie wyższy współczynnik przewodzenia ciepła niż beton z miksokreta. Pozwala to na znacznie szybsze przekazywanie energii do pomieszczenia i utrzymanie niższej, bardziej oszczędnej temperatury zasilania na źródle ciepła."
        }
      }
    ]
  }
]
</script>

<div class="rk-qa-container" id="rk-qa-app">
    <div class="rk-qa-header">
        <div class="rk-qa-badge">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Inżynierskie Q&A
        </div>
        <h2 class="rk-qa-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-qa-interactive">
        <div class="rk-qa-list">
            
            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>1. Czy darmowy kalkulator strat ciepła online może zastąpić oficjalne OZC?</span>
                    <div class="rk-qa-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Nie, darmowy kalkulator służy wyłącznie do <strong>wstępnej weryfikacji koncepcji</strong> i oszacowania kosztów. Oficjalne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">Obliczeniowe Zapotrzebowanie na Ciepło (OZC)</a> wykonane przez wykwalifikowanego inżyniera jest szczegółowym dokumentem prawnym. Jest on bezwzględnie wymagany przy wnioskach o dotacje z programu „Czyste Powietrze” oraz stanowi jedyną bezpieczną podstawę przy precyzyjnym doborze mocy pompy ciepła.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="10" width="60" height="50" rx="4" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                    <path d="M30 25 h30 M30 35 h40 M30 45 h20" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                                    <path class="anim-scan" d="M10 35 h80" stroke-width="4" stroke-linecap="round"/>
                                    <circle cx="70" cy="45" r="8" fill="#10b981"/>
                                    <path d="M66 45 l3 3 l5 -5" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>2. Ile rury PEX potrzeba na 1 m² ogrzewania podłogowego?</span>
                    <div class="rk-qa-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Ilość rury zależy ściśle od jej rozstawu wynikającego z obliczeń strat ciepła. Przy najpopularniejszym rozstawie <strong>co 15 cm</strong> zużycie wynosi średnio <strong>6,7 metra bieżącego na m²</strong>. Z kolei przy zagęszczeniu <strong>co 10 cm</strong> (stosowanym np. w łazienkach, strefach brzegowych lub pod pompy ciepła) wzrasta do <strong>10 mb na m²</strong>. W precyzyjnym wyliczeniu materiału na cały dom pomoże Ci dedykowany <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/" class="rk-link">kalkulator długości rur</a>.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path class="anim-grid-line" d="M20 20 h60 M20 35 h60 M20 50 h60" fill="none" stroke-width="3" stroke-linecap="round" style="animation-delay: 0.1s;"/>
                                    <path class="anim-grid-line" d="M30 10 v50 M50 10 v50 M70 10 v50" fill="none" stroke-width="3" stroke-linecap="round" style="animation-delay: 0.4s;"/>
                                    <circle cx="50" cy="35" r="15" fill="none" stroke="var(--rk-qa-emerald)" stroke-width="4" stroke-dasharray="10 5"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>3. Jaka jest maksymalna temperatura zasilania dla ogrzewania podłogowego?</span>
                    <div class="rk-qa-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Maksymalna, bezpieczna dla jastrychu i instalacji temperatura zasilania wodą grzewczą wynosi <strong>50°C</strong> – wartość tę ściśle reguluje norma <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-link">PN-EN 1264</a>. Warto jednak pamiętać, że w nowym budownictwie o dobrym standardzie izolacji, optymalnie zaprojektowany system rzadko przekracza <strong>32–35°C</strong> w najzimniejsze dni w roku, co gwarantuje najwyższy komfort i energooszczędność.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="40" y="10" width="20" height="40" rx="10" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                    <circle cx="50" cy="50" r="12" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                    <rect class="anim-mercury" x="44" y="20" width="12" height="30" rx="6"/>
                                    <circle cx="50" cy="50" r="8" fill="#ef4444"/>
                                    <line x1="65" y1="20" x2="75" y2="20" stroke="#ef4444" stroke-width="2"/>
                                    <text x="80" y="24" font-size="12" fill="#ef4444" font-weight="bold">50°</text>
                                    <line x1="65" y1="35" x2="70" y2="35" stroke="#10b981" stroke-width="2"/>
                                    <text x="75" y="39" font-size="12" fill="#10b981" font-weight="bold">35°</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>4. Czy przy wysokim zapotrzebowaniu na ciepło (>100 W/m²) można w nieskończoność zagęszczać rury?</span>
                    <div class="rk-qa-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Zdecydowanie <strong>nie</strong>. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link">Rozstaw rur w ogrzewaniu podłogowym</a> ma swoje fizyczne i hydrauliczne ograniczenia. Zejście poniżej rozstawu 10 cm na dużej powierzchni generuje tak potężne opory tłoczenia wody, z którymi nie poradzi sobie standardowa pompa obiegowa, a ponadto powierzchnia posadzki przekroczy dopuszczalne 29°C. Jeśli zapotrzebowanie budynku przebija 100 W/m², system płaszczyznowy musi być wspomagany grzejnikami lub dom wymaga bezwzględnej termomodernizacji.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <circle class="pipe-l" cx="30" cy="35" r="10" fill="none" stroke="#64748b" stroke-width="4"/>
                                    <circle class="pipe-r" cx="70" cy="35" r="10" fill="none" stroke="#64748b" stroke-width="4"/>
                                    <path d="M 45 35 l 10 0 M 45 30 l 5 5 l -5 5" fill="none" stroke="#cbd5e1" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>5. Jak rodzaj wylewki wpływa na skuteczność wyników z kalkulatora?</span>
                    <div class="rk-qa-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Wybór odpowiedniego jastrychu drastycznie zmienia parametry pracy. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-link">Wylewka anhydrytowa</a> wykazuje niemal dwukrotnie wyższy współczynnik przewodzenia ciepła w porównaniu do standardowego betonu z miksokreta. Dzięki płynnej konsystencji idealnie i szczelnie otula rury grzewcze. Przekłada się to na błyskawiczne oddawanie ciepła do pomieszczenia i możliwość pracy pompy ciepła na niższym, oszczędniejszym parametrze temperaturowym.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="15" y="15" width="70" height="40" rx="4" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                    <rect class="anim-screed-layer" x="17" y="30" width="66" height="23" rx="2" fill="#cbd5e1"/>
                                    <circle cx="35" cy="40" r="5" fill="#ef4444"/>
                                    <circle cx="50" cy="40" r="5" fill="#ef4444"/>
                                    <circle cx="65" cy="40" r="5" fill="#ef4444"/>
                                    <path d="M20 30 Q35 25 50 30 T80 30" fill="none" stroke="var(--rk-qa-emerald)" stroke-width="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-qa-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-qa-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zwijanie wszystkich
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Rozwijanie klikniętego (jeśli nie był aktywny)
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwarcie pierwszego elementu na start
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0ea5e9;
    --rk-fin-light-blue: #e0f2fe;
    --rk-fin-green: #10b981;
    --rk-fin-green-light: #dcfce7;
    --rk-fin-red: #ef4444;
    --rk-fin-red-light: #fee2e2;
    --rk-fin-orange: #f59e0b;
    --rk-fin-orange-light: #fef3c7;
    --rk-fin-gray: #64748b;
    --rk-fin-border: #cbd5e1;
    --rk-fin-bg: #ffffff;
}

.rk-fin-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-fin-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.1);
    border: 1px solid var(--rk-fin-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-fin-header {
    padding: 40px 40px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border-bottom: 1px solid var(--rk-fin-border);
}

.rk-fin-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-fin-dark);
    letter-spacing: -0.5px;
}

.rk-fin-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-fin-gray);
    margin: 0;
}

.rk-fin-highlight {
    font-weight: 800;
    color: var(--rk-fin-blue);
}

/* Sekcja Interaktywna - Symulator */
.rk-fin-interactive {
    padding: 40px;
    background: #ffffff;
}

.rk-fin-interactive h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-fin-dark);
    text-align: center;
}

.rk-fin-dashboard {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.rk-fin-slider-box {
    background: #f8fafc;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-fin-border);
    text-align: center;
}

.rk-fin-slider-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    text-transform: uppercase;
    margin-bottom: 15px;
}

.rk-fin-value-display {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-fin-dark);
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
}

.rk-fin-value-display span {
    font-size: 18px;
    color: var(--rk-fin-gray);
}

/* Stylizacja suwaka (Slider) */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-fin-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    border: 3px solid #ffffff;
    transition: transform 0.2s, background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

/* Wynik symulacji */
.rk-fin-result-box {
    padding: 30px;
    border-radius: 16px;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
    gap: 15px;
    border: 2px solid transparent;
}

.rk-fin-result-box.state-green {
    background: var(--rk-fin-green-light);
    border-color: var(--rk-fin-green);
}
.rk-fin-result-box.state-orange {
    background: var(--rk-fin-orange-light);
    border-color: var(--rk-fin-orange);
}
.rk-fin-result-box.state-red {
    background: var(--rk-fin-red-light);
    border-color: var(--rk-fin-red);
}

.rk-fin-result-header {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-anim-house {
    width: 60px;
    height: 60px;
}

.house-path {
    transition: all 0.4s ease;
    stroke-width: 2;
    fill: none;
}

.state-green .house-path { stroke: var(--rk-fin-green); fill: rgba(16, 185, 129, 0.2); }
.state-orange .house-path { stroke: var(--rk-fin-orange); fill: rgba(245, 158, 11, 0.2); }
.state-red .house-path { stroke: var(--rk-fin-red); fill: rgba(239, 68, 68, 0.2); }

.state-red .heat-wave {
    animation: heatRise 1.5s infinite alternate;
    stroke: var(--rk-fin-red);
}

@keyframes heatRise {
    0% { transform: translateY(0) scale(1); opacity: 0.5; }
    100% { transform: translateY(-5px) scale(1.1); opacity: 1; }
}

.rk-fin-result-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0;
}
.state-green .rk-fin-result-title { color: #065f46; }
.state-orange .rk-fin-result-title { color: #92400e; }
.state-red .rk-fin-result-title { color: #991b1b; }

.rk-fin-result-text {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    color: #334155;
}

/* Sekcja Wzorów i Linków */
.rk-fin-content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 0 40px 40px;
}

.rk-fin-card {
    background: #f8fafc;
    border: 1px solid var(--rk-fin-border);
    padding: 25px;
    border-radius: 12px;
}

.rk-fin-card h4 {
    margin: 0 0 15px 0;
    font-size: 16px;
    color: var(--rk-fin-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-fin-card ul {
    margin: 0;
    padding: 0 0 0 20px;
    font-size: 14px;
    color: var(--rk-fin-gray);
    line-height: 1.6;
}

.rk-fin-card ul li { margin-bottom: 8px; }
.rk-fin-card a {
    color: var(--rk-fin-blue);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.2s;
}
.rk-fin-card a:hover { text-decoration: underline; }

/* Massive CTA */
.rk-fin-cta {
    background: var(--rk-fin-dark);
    padding: 40px;
    text-align: center;
}

.rk-fin-cta h3 {
    color: #ffffff;
    font-size: 24px;
    margin: 0 0 10px 0;
}

.rk-fin-cta p {
    color: #94a3b8;
    margin: 0 auto 30px auto;
    max-width: 600px;
    font-size: 15px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: #0284c7;
    box-shadow: 0 15px 25px -5px rgba(14, 165, 233, 0.6);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive, .rk-fin-content-grid, .rk-fin-cta { padding: 25px; }
    .rk-fin-dashboard, .rk-fin-content-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-fin-value-display { font-size: 36px; }
    .rk-btn-massive { width: 100%; padding: 16px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
    },
    "headline": "Podsumowanie – Zabezpiecz Swój Budżet i Komfort Termiczny",
    "description": "Sprawdź samodzielnie zapotrzebowanie budynku na ciepło (W/m2) z wykorzystaniem interaktywnego symulatora normy PN-EN 12831. Optymalizuj parametry przed wyborem pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#dataset-zapotrzebowanie",
    "name": "Bilans Cieplny i Wskaźniki W/m2 dla Ogrzewania Podłogowego",
    "description": "Zestawienie analityczne określające limity i optymalne zakresy mocy grzewczej dla instalacji płaszczyznowych w odniesieniu do izolacji oraz typu okładziny podłogowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia strat ciepła",
      "norma PN-EN 12831",
      "zapotrzebowanie W/m2",
      "projekt wykonawczy ogrzewania",
      "temperatura zasilania podłogówki"
    ],
    "measurementTechnique": "Analiza zapotrzebowania na ciepło (Q = A × U × ΔT) w zależności od stopnia izolacji budynku i wymagań hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zakres 40-50 W/m2: Optymalny (Nowe budownictwo, idealne dla pomp ciepła).",
        "Zakres 51-80 W/m2: Umiarkowany (Wymaga zagęszczenia rur i projektowania OZC).",
        "Zakres >80 W/m2: Krytyczny (Ryzyko niedogrzania, wymaga grzejników lub termomodernizacji)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webapp-symulator",
    "name": "Symulator Zapotrzebowania Cieplnego W/m2",
    "description": "Interaktywne narzędzie obliczeniowe obrazujące wpływ jednostkowego zapotrzebowania na ciepło budynku na efektywność wodnego ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container">
    <div class="rk-fin-header">
        <h2>Podsumowanie – Zabezpiecz Swój Budżet i Komfort Termiczny</h2>
        <p>
            Samodzielne obliczenie strat ciepła budynku za pomocą uproszczonej metody normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color:var(--rk-fin-blue); font-weight:700;">PN-EN 12831</a> to kluczowy krok techniczny, który chroni inwestora przed przewymiarowaniem źródła ciepła i wadliwym działaniem ogrzewania podłogowego.
        </p>
    </div>

    <div class="rk-fin-interactive">
        <h3>Symulator Obciążenia Instalacji</h3>
        <div class="rk-fin-dashboard">
            <div class="rk-fin-slider-box">
                <span class="rk-fin-slider-label">Zapotrzebowanie na ciepło budynku</span>
                <div class="rk-fin-value-display">
                    <span id="sliderValue">45</span> <span>W/m²</span>
                </div>
                <input type="range" min="30" max="120" value="45" step="5" class="rk-range-slider" id="heatSlider">
            </div>

            <div class="rk-fin-result-box state-green" id="resultCard">
                <div class="rk-fin-result-header">
                    <svg class="rk-anim-house" viewBox="0 0 24 24" fill="none" stroke="currentColor">
                        <path class="house-path" d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
                        <polyline class="house-path" points="9 22 9 12 15 12 15 22"></polyline>
                        <path class="heat-wave" d="M12 2v3" style="display:none;" stroke-width="2" stroke-linecap="round"/>
                        <path class="heat-wave" d="M8 4v3" style="display:none;" stroke-width="2" stroke-linecap="round"/>
                        <path class="heat-wave" d="M16 4v3" style="display:none;" stroke-width="2" stroke-linecap="round"/>
                    </svg>
                    <h4 class="rk-fin-result-title" id="resultTitle">Strefa Optymalna</h4>
                </div>
                <p class="rk-fin-result-text" id="resultText">
                    Idealne warunki dla podłogówki i pompy ciepła. Niska temperatura zasilania (ok. 30-32°C). Układ działa energooszczędnie, można bezpiecznie planować <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele podłogowe</a>.
                </p>
            </div>
        </div>
    </div>

    <div class="rk-fin-content-grid">
        <div class="rk-fin-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-fin-blue)" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Fizyka Budynku
            </h4>
            <ul>
                <li>Znając wzory na straty przez przenikanie (<strong>Q = A × U × ΔT</strong>) oraz wentylację (<strong>Qv = 0,34 × V × ΔT</strong>), weryfikujesz, czy mieścisz się w zakresie 40-80 W/m².</li>
                <li>Zignorowanie parametrów łazienki (wymagane <strong>+24°C</strong>) zepsuje komfort termiczny w newralgicznym punkcie domu.</li>
            </ul>
        </div>
        <div class="rk-fin-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-fin-blue)" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                Zlecaj OZC Inżynierom
            </h4>
            <ul>
                <li>Każdy litr wody przepływający przez rozdzielacz musi być poprawnie zbilansowany matematycznie.</li>
                <li>Traktuj samodzielne wyliczenia jako wstęp do zlecenia <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">profesjonalnego projektu OZC</a>, zwłaszcza przy pompach ciepła.</li>
            </ul>
        </div>
    </div>

    <div class="rk-fin-cta">
        <h3>Zaprojektuj System Bez Błędów</h3>
        <p>Nie zostawiaj kluczowych parametrów hydraulicznych przypadkowi. Odkryj inżynierskie metody projektowania, normy prawne i kalkulatory, które zagwarantują 100% efektywności Twojej inwestycji.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            SPRAWDŹ BAZĘ WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('heatSlider');
    const display = document.getElementById('sliderValue');
    const resultCard = document.getElementById('resultCard');
    const resultTitle = document.getElementById('resultTitle');
    const resultText = document.getElementById('resultText');
    const heatWaves = document.querySelectorAll('.heat-wave');

    function updateDashboard(value) {
        display.textContent = value;
        
        if (value <= 50) {
            resultCard.className = 'rk-fin-result-box state-green';
            resultTitle.textContent = 'Strefa Optymalna';
            resultText.innerHTML = 'Idealne warunki dla podłogówki i pompy ciepła. Niska temperatura zasilania (ok. 30-32°C). Układ działa energooszczędnie, można bezpiecznie planować <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele podłogowe</a>.';
            heatWaves.forEach(w => w.style.display = 'none');
            slider.style.background = `linear-gradient(to right, var(--rk-fin-green) ${(value-30)/(120-30)*100}%, #cbd5e1 ${(value-30)/(120-30)*100}%)`;
        } 
        else if (value > 50 && value <= 80) {
            resultCard.className = 'rk-fin-result-box state-orange';
            resultTitle.textContent = 'Strefa Umiarkowana (Uwaga!)';
            resultText.innerHTML = 'Osiągasz granice wydajności. Konieczne zagęszczenie rur (rozstaw co 10 cm). Ryzyko przy stosowaniu paneli. Wymagany precyzyjny <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projekt OZC</a>, aby uniknąć niedogrzania łazienek.';
            heatWaves.forEach(w => w.style.display = 'none');
            slider.style.background = `linear-gradient(to right, var(--rk-fin-orange) ${(value-30)/(120-30)*100}%, #cbd5e1 ${(value-30)/(120-30)*100}%)`;
        } 
        else {
            resultCard.className = 'rk-fin-result-box state-red';
            resultTitle.textContent = 'Strefa Krytyczna';
            resultText.innerHTML = 'Sama podłogówka <strong>nie ogrzeje tego budynku</strong>. Próba wymuszenia mocy doprowadzi do przegrzania posadzki (dyskomfort). Konieczna <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">termomodernizacja</a> lub dodanie obiegów grzejnikowych.';
            heatWaves.forEach(w => w.style.display = 'block');
            slider.style.background = `linear-gradient(to right, var(--rk-fin-red) ${(value-30)/(120-30)*100}%, #cbd5e1 ${(value-30)/(120-30)*100}%)`;
        }
    }

    slider.addEventListener('input', (e) => {
        updateDashboard(e.target.value);
    });

    // Inicjalizacja
    updateDashboard(slider.value);
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</title>
		<link>https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Feb 2026 11:29:11 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Dom energooszczędny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędny dom]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[Wentylacja mechaniczna]]></category>
		<category><![CDATA[cop pompy ciepła]]></category>
		<category><![CDATA[dom energooszczędny]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka i rekuperacja]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rekuperacja]]></category>
		<category><![CDATA[wentylacja mechaniczna]]></category>
		<category><![CDATA[wentylacja z odzyskiem ciepła]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3448</guid>

					<description><![CDATA[<p>Czy połączenie, jakim jest rekuperacja i ogrzewanie podłogowe – czy to się opłaca, faktycznie przynosi realne korzyści, czy to tylko marketingowy slogan? Coraz więcej inwestorów wybiera ten duet, ponieważ zapewnia nie tylko niższe rachunki, ale przede wszystkim stabilną temperaturę, wyższy komfort życia i maksymalną efektywność pompy ciepła. Dzięki odzyskowi ciepła z wentylacji i pracy systemu niskotemperaturowego budynek zużywa mniej energii, a instalacja działa bardziej przewidywalnie. W artykule pokazujemy konkretne wyliczenia, fakty techniczne i realne oszczędności, które mają znaczenie przez kolejne dekady użytkowania domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-brand: #2563eb; /* Mocny, inżynierski niebieski */
    --rk-intro-brand-light: #eff6ff;
    --rk-intro-accent: #0ea5e9; /* Cyjan dla powietrza */
    --rk-intro-heat: #f97316;   /* Pomarańcz dla ogrzewania */
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
}

.rk-intro-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.3);
    overflow: hidden;
}

/* --- HOOK (Mocne otwarcie) --- */
.rk-intro-hero {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e3a8a 100%);
    padding: 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

.rk-intro-hero::before {
    content: ''; position: absolute; right: 0; top: 0; width: 60%; height: 100%;
    background: radial-gradient(circle at top right, rgba(14, 165, 233, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.3);
    position: relative;
    z-index: 2;
}

.rk-intro-hook-text {
    font-size: 20px;
    font-weight: 400;
    line-height: 1.6;
    color: #e0e7ff;
    margin: 0;
    position: relative;
    z-index: 2;
    border-left: 4px solid var(--rk-intro-heat);
    padding-left: 20px;
}

.rk-intro-hook-text strong {
    color: #ffffff;
    font-weight: 900;
}

/* --- GŁÓWNA TREŚĆ WSTĘPU --- */
.rk-intro-main {
    padding: 45px 50px 30px;
    background: #ffffff;
}

.rk-intro-main h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-intro-main h2 span {
    color: var(--rk-intro-brand);
}

.rk-intro-main p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-intro-text);
    margin: 0 0 15px 0;
}

/* --- INTERAKTYWNA MAPA ARTYKUŁU --- */
.rk-intro-map {
    background: var(--rk-intro-bg);
    border-top: 1px solid var(--rk-intro-border);
    padding: 40px 50px;
}

.rk-map-title {
    font-size: 14px;
    font-weight: 900;
    color: var(--rk-intro-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-map-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
}

/* Przyciski Nawigacji */
.rk-map-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-map-btn {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    text-align: left;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-map-btn:hover {
    border-color: var(--rk-intro-brand);
    background: var(--rk-intro-brand-light);
}

.rk-map-btn.active {
    background: var(--rk-intro-brand);
    border-color: var(--rk-intro-brand);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.3);
}

.rk-map-btn-icon {
    width: 36px; height: 36px;
    border-radius: 8px;
    background: var(--rk-intro-bg);
    color: var(--rk-intro-brand);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}

.rk-map-btn.active .rk-map-btn-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-map-btn-text {
    font-size: 14px; font-weight: 800; color: var(--rk-intro-dark);
}
.rk-map-btn.active .rk-map-btn-text { color: #ffffff; }

/* Obszar Wyświetlania (Panele statyczne) */
.rk-map-display {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-map-panel {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rk-map-panel.active {
    display: flex;
    flex-direction: column;
    opacity: 1;
}

.rk-panel-svg {
    width: 100%;
    height: 140px;
    background: var(--rk-intro-dark);
    border-radius: 12px;
    margin-bottom: 20px;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid #334155;
    padding: 15px;
}

.rk-panel-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-panel-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
}

/* Statyczne grafiki SVG (Bez animacji) */
.svg-static-art { width: 100%; height: 100%; }

@media (max-width: 768px) {
    .rk-intro-hero, .rk-intro-main, .rk-intro-map { padding: 30px 20px; }
    .rk-intro-main h2 { font-size: 26px; }
    .rk-intro-hook-text { font-size: 16px; }
    .rk-map-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-panel-svg { height: 120px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?",
    "description": "Luty 2025, -18°C. Poznaj twarde inżynierskie fakty, dlaczego połączenie wentylacji mechanicznej z podłogówką to klucz do redukcji kosztów o 40%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-wstep",
    "name": "Parametry wejściowe do analizy efektywności układu zintegrowanego",
    "description": "Zarys głównych zagadnień analizowanych w artykule: opłacalność, temperatury pracy, błędy montażowe oraz inżynierski algorytm obliczeniowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy opłaca się rekuperacja i podłogówka",
      "koszty ogrzewania dom WT2021",
      "parametry pompy ciepła",
      "błędy instalacyjne HVAC",
      "sprawność systemu grzewczego"
    ],
    "measurementTechnique": "Jakościowy i ilościowy podział zagadnień analitycznych dotyczących integracji instalacyjnej OZE w budynkach jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moduł 1: Weryfikacja rzeczywistych kosztów i ROI.",
        "Moduł 2: Normatywne wytyczne temperaturowe (max 35°C).",
        "Moduł 3: Dekompresja i błędy wykonawcze.",
        "Moduł 4: Algorytm bilansu masowego powietrza."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-wstep",
    "name": "Interaktywna Mapa Artykułu",
    "description": "Moduł nawigacyjny pozwalający czytelnikowi zapoznać się ze strukturą analityczną i zakresem wiedzy technicznej prezentowanej w tekście.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-hero">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Inżynierska Weryfikacja Faktów
        </div>
        <p class="rk-intro-hook-text">
            <strong>Luty 2025, -18°C za oknem.</strong> Na jednym osiedlu dom z tradycyjną wentylacją notuje potężne skoki zużycia prądu, a sprężarka pompy ciepła wyje z przeciążenia. Kilka domów dalej, w identycznym budynku, panuje absolutna cisza, idealna wilgotność, a zużycie energii jest o <strong>40% niższe</strong>. Różnica nie tkwi w grubości styropianu, lecz w idealnej synergii dwóch układów.
        </p>
    </div>

    <div class="rk-intro-main">
        <h2>Rekuperacja i ogrzewanie podłogowe – <span>czy to się opłaca?</span></h2>
        <p>
            Planując budowę domu, stajemy przed wyborem systemów, które przez dekady będą decydować o naszym komforcie i portfelu. Obecnie najczęściej wybieranym duetem przez świadomych inwestorów jest rekuperacja i wodne ogrzewanie podłogowe, które razem tworzą układ niemal idealny.
        </p>
        <p>
            To połączenie nie wynika jedynie z mody czy marketingu producentów urządzeń. To <strong>czysta fizyka budowli</strong> i dążenie do całkowitej minimalizacji strat energetycznych. W systemie tym, niskotemperaturowe źródło ciepła ściśle współpracuje z procesem odzysku energii, co pozwala na potężną redukcję kosztów eksploatacyjnych w porównaniu do rozwiązań tradycyjnych.
        </p>
    </div>

    <div class="rk-intro-map">
        <div class="rk-map-title">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Czego dokładnie dowiesz się z tego artykułu?
        </div>
        
        <div class="rk-map-grid">
            
            <div class="rk-map-nav">
                <button class="rk-map-btn active" data-map="panel-1">
                    <div class="rk-map-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                    <span class="rk-map-btn-text">Prawdziwe koszty i liczby</span>
                </button>
                <button class="rk-map-btn" data-map="panel-2">
                    <div class="rk-map-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                    <span class="rk-map-btn-text">Parametry techniczne (COP)</span>
                </button>
                <button class="rk-map-btn" data-map="panel-3">
                    <div class="rk-map-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg></div>
                    <span class="rk-map-btn-text">Patologie wykonawcze</span>
                </button>
                <button class="rk-map-btn" data-map="panel-4">
                    <div class="rk-map-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg></div>
                    <span class="rk-map-btn-text">Algorytm oszczędności mocy</span>
                </button>
            </div>

            <div class="rk-map-display">
                
                <div class="rk-map-panel active" id="panel-1">
                    <div class="rk-panel-svg">
                        <svg class="svg-static-art" viewBox="0 0 200 100">
                            <rect x="30" y="60" width="30" height="20" fill="#f43f5e" rx="2"></rect>
                            <rect x="85" y="40" width="30" height="40" fill="#f59e0b" rx="2"></rect>
                            <rect x="140" y="15" width="30" height="65" fill="#10b981" rx="2"></rect>
                            <path d="M 20 85 L 180 85" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"></path>
                            <path d="M 45 60 L 100 40 L 155 15" fill="none" stroke="#ffffff" stroke-width="2" stroke-dasharray="4 4"></path>
                            <circle cx="155" cy="15" r="4" fill="#ffffff"></circle>
                        </svg>
                    </div>
                    <div class="rk-panel-content">
                        <h4>Rozliczenie bez tajemnic</h4>
                        <p>Przeprowadzimy twardą weryfikację faktów: sprawdzimy, czy koszty wymiany filtrów i prądu dla rekuperatora nie zjadają zysków z lepszej sprawności pompy ciepła.</p>
                    </div>
                </div>

                <div class="rk-map-panel" id="panel-2">
                    <div class="rk-panel-svg">
                        <svg class="svg-static-art" viewBox="0 0 200 100">
                            <rect x="20" y="70" width="160" height="15" fill="#334155" rx="4"></rect>
                            <circle cx="50" cy="77" r="4" fill="#f97316"></circle>
                            <circle cx="100" cy="77" r="4" fill="#f97316"></circle>
                            <circle cx="150" cy="77" r="4" fill="#f97316"></circle>
                            <path d="M 50 60 Q 75 30 100 60 T 150 60" fill="none" stroke="#0ea5e9" stroke-width="4" stroke-linecap="round"></path>
                            <rect x="85" y="10" width="30" height="16" fill="#1e293b" stroke="#0ea5e9" stroke-width="2" rx="4"></rect>
                            <text x="100" y="22" fill="#ffffff" font-size="10" font-family="sans-serif" font-weight="bold" text-anchor="middle">30°C</text>
                        </svg>
                    </div>
                    <div class="rk-panel-content">
                        <h4>Maksymalna wydajność (COP)</h4>
                        <p>Pokażemy, dlaczego norma PN-EN 1264 zmusza nas do obniżenia temperatury zasilania do 30°C i jak to wpływa na żywotność Twojej sprężarki i roczne wskaźniki SCOP.</p>
                    </div>
                </div>

                <div class="rk-map-panel" id="panel-3">
                    <div class="rk-panel-svg">
                        <svg class="svg-static-art" viewBox="0 0 200 100">
                            <rect x="40" y="20" width="120" height="60" fill="none" stroke="#64748b" stroke-width="4" rx="4"></rect>
                            <line x1="100" y1="20" x2="100" y2="80" stroke="#64748b" stroke-width="4"></line>
                            <rect x="70" y="10" width="60" height="10" fill="#ef4444"></rect>
                            <path d="M 75 15 L 85 5 M 115 15 L 125 5" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round"></path>
                            <circle cx="100" cy="50" r="16" fill="#1e293b"></circle>
                            <path d="M 94 44 L 106 56 M 106 44 L 94 56" stroke="#f87171" stroke-width="4" stroke-linecap="round"></path>
                        </svg>
                    </div>
                    <div class="rk-panel-content">
                        <h4>Unikaj katastrofy na budowie</h4>
                        <p>Zostawione nawiewniki, rzadki rozstaw rur w łazience i brak profili dylatacyjnych. Analizujemy 3 najpoważniejsze błędy wykonawców, które trwale zniszczą synergię systemów.</p>
                    </div>
                </div>

                <div class="rk-map-panel" id="panel-4">
                    <div class="rk-panel-svg">
                        <svg class="svg-static-art" viewBox="0 0 200 100">
                            <rect x="20" y="20" width="160" height="60" fill="#0f172a" stroke="#38bdf8" stroke-width="2" rx="6"></rect>
                            <text x="100" y="45" fill="#e2e8f0" font-family="monospace" font-size="14" font-weight="bold" text-anchor="middle">Q = V × ρ × Cp × ΔT</text>
                            <line x1="30" y1="55" x2="170" y2="55" stroke="#334155" stroke-width="2" stroke-dasharray="4 4"></line>
                            <text x="100" y="72" fill="#10b981" font-family="monospace" font-size="14" font-weight="bold" text-anchor="middle">ΔQ = 2.30 kW</text>
                        </svg>
                    </div>
                    <div class="rk-panel-content">
                        <h4>Inżynierskie metody obliczeń</h4>
                        <p>Żadnego zgadywania. Pokażemy Ci krok po kroku algorytm oparty na bilansie masowym powietrza, udowadniając matematycznie, ile mocy cieplnej odzyskasz z centrali.</p>
                    </div>
                </div>

            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Logika nawigacji (Spis treści)
    const mapBtns = document.querySelectorAll('.rk-map-btn');
    const mapPanels = document.querySelectorAll('.rk-map-panel');

    mapBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Zmiana klas przycisków
            mapBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');

            // Zmiana paneli (natychmiastowa widoczność, przejście reguluje CSS opacity)
            const targetId = btn.getAttribute('data-map');
            
            mapPanels.forEach(panel => {
                panel.classList.remove('active');
                if(panel.id === targetId) {
                    panel.classList.add('active');
                }
            });
        });
    });

});
</script>



<style>
:root {
    --rk-cost-dark: #0f172a;
    --rk-cost-panel: #1e293b;
    --rk-cost-primary: #10b981; /* Szmaragd - optymalizacja/oszczędność */
    --rk-cost-primary-light: #d1fae5;
    --rk-cost-alert: #f43f5e; /* Czerwień - straty/błędy */
    --rk-cost-alert-light: #ffe4e6;
    --rk-cost-accent: #38bdf8; /* Błękit - powietrze/wentylacja */
    --rk-cost-bg: #f8fafc;
    --rk-cost-border: #e2e8f0;
    --rk-cost-text: #334155;
    --rk-cost-muted: #64748b;
}

.rk-cost-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-cost-header {
    background: linear-gradient(135deg, var(--rk-cost-dark) 0%, #064e3b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cost-primary);
}

.rk-cost-header::before {
    content: ''; position: absolute; right: 0; top: 0; width: 60%; height: 100%;
    background: radial-gradient(circle at top right, rgba(16, 185, 129, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-cost-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(110, 231, 183, 0.3);
    position: relative;
    z-index: 2;
}

.rk-cost-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-cost-title span { color: #34d399; }

.rk-cost-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
    position: relative;
    z-index: 2;
    max-width: 800px;
}

/* Kafelki z faktami */
.rk-cost-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 40px 50px 20px;
    background: var(--rk-cost-bg);
}

.rk-fact-card {
    background: #ffffff;
    border: 1px solid var(--rk-cost-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-fact-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.15);
    border-color: var(--rk-cost-primary);
}

.rk-fact-icon {
    width: 48px; height: 48px; border-radius: 12px; background: var(--rk-cost-primary-light); color: var(--rk-cost-primary); display: flex; align-items: center; justify-content: center; margin-bottom: 15px;
}

.rk-fact-card h4 { margin: 0 0 10px 0; font-size: 20px; font-weight: 900; color: var(--rk-cost-dark); }
.rk-fact-card p { margin: 0; font-size: 13px; color: var(--rk-cost-muted); line-height: 1.5; font-weight: 600; }

/* Interaktywny Symulator */
.rk-cost-interactive {
    padding: 20px 50px 40px;
    background: var(--rk-cost-bg);
}

.rk-sim-box {
    background: var(--rk-cost-dark);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    position: relative;
    overflow: hidden;
}

.rk-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    position: relative;
    z-index: 2;
}

.rk-sim-title {
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Toggle Switch */
.rk-cost-toggle {
    display: flex;
    background: rgba(0,0,0,0.4);
    border-radius: 12px;
    padding: 4px;
    position: relative;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-toggle-btn {
    flex: 1;
    padding: 12px 24px;
    text-align: center;
    border: none;
    background: transparent;
    color: #94a3b8;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    border-radius: 8px;
    transition: color 0.3s;
    position: relative;
    z-index: 2;
}

.rk-toggle-btn.active { color: #ffffff; }

.rk-toggle-slider {
    position: absolute;
    top: 4px; bottom: 4px; left: 4px;
    width: calc(50% - 4px);
    border-radius: 8px;
    z-index: 1;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.4s;
}

/* Stany Toggle */
.state-grav .rk-toggle-slider { transform: translateX(0); background: var(--rk-cost-alert); }
.state-rek .rk-toggle-slider { transform: translateX(100%); background: var(--rk-cost-primary); }

/* Zawartość Symulatora */
.rk-sim-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    position: relative;
    z-index: 2;
}

.rk-data-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-row {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.4s;
}

.rk-data-label { font-size: 12px; font-weight: 800; color: #cbd5e1; text-transform: uppercase; }
.rk-data-val { font-size: 16px; font-weight: 900; }

.state-grav .rk-data-row.dynamic { border-color: rgba(244, 63, 94, 0.4); background: rgba(244, 63, 94, 0.1); }
.state-grav .rk-data-row.dynamic .rk-data-val { color: var(--rk-cost-alert); }

.state-rek .rk-data-row.dynamic { border-color: rgba(16, 185, 129, 0.4); background: rgba(16, 185, 129, 0.1); }
.state-rek .rk-data-row.dynamic .rk-data-val { color: var(--rk-cost-primary); }

/* Wizualizacja SVG */
.rk-svg-wrapper {
    width: 100%;
    height: 100%;
    min-height: 200px;
    background: #0f172a;
    border-radius: 16px;
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
    transition: border-color 0.4s;
}

.state-grav .rk-svg-wrapper { border-color: var(--rk-cost-alert); }
.state-rek .rk-svg-wrapper { border-color: var(--rk-cost-primary); }

/* Elementy SVG */
.svg-bg { fill: #1e293b; }
.svg-floor { fill: #334155; }
.svg-pipe { stroke-width: 4; stroke-linecap: round; transition: stroke 0.4s; }
.svg-pump { stroke-width: 2; rx: 4; transition: stroke 0.4s, fill 0.4s; }

/* Animacje Grav */
.anim-cold-drop { opacity: 0; }
.state-grav .anim-cold-drop { opacity: 1; animation: coldDrop 1.5s linear infinite; }
@keyframes coldDrop { 0% { transform: translate(10px, -10px); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(-20px, 30px); opacity: 0; } }

.state-grav .svg-pipe { stroke: #fb923c; }
.state-grav .svg-pump { stroke: var(--rk-cost-alert); fill: rgba(244, 63, 94, 0.2); animation: pumpTakt 1s infinite alternate; }
@keyframes pumpTakt { from { transform: scale(1); } to { transform: scale(1.05); } }

/* Animacje Rek */
.anim-rek-box { opacity: 0; transform-origin: center; transition: opacity 0.4s; }
.state-rek .anim-rek-box { opacity: 1; }
.state-rek .anim-rek-spin { animation: spinRek 4s linear infinite; }
@keyframes spinRek { to { transform: rotate(360deg); } }

.anim-warm-flow { opacity: 0; }
.state-rek .anim-warm-flow { opacity: 1; animation: warmFlow 2s ease-in-out infinite; }
@keyframes warmFlow { 0% { transform: translateX(0); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateX(-15px); opacity: 0; } }

.state-rek .svg-pipe { stroke: var(--rk-cost-primary); }
.state-rek .svg-pump { stroke: var(--rk-cost-primary); fill: rgba(16, 185, 129, 0.1); }

/* Sekcja Konsekwencji Błędów */
.rk-cost-consequences {
    background: #ffffff;
    padding: 0 50px 50px;
}

.rk-cons-box {
    background: #fff1f2;
    border-left: 4px solid var(--rk-cost-alert);
    padding: 30px;
    border-radius: 0 16px 16px 0;
}

.rk-cons-box h3 {
    margin: 0 0 15px 0;
    font-size: 20px;
    font-weight: 900;
    color: #9f1239;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-cons-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #4c0519;
}

.rk-cons-box strong { font-weight: 900; }

@media (max-width: 768px) {
    .rk-cost-header, .rk-cost-interactive, .rk-cost-consequences { padding: 30px 20px; }
    .rk-cost-facts { grid-template-columns: 1fr; padding: 30px 20px 10px; }
    .rk-cost-title { font-size: 24px; }
    .rk-sim-header { flex-direction: column; gap: 20px; align-items: flex-start; }
    .rk-cost-toggle { width: 100%; }
    .rk-sim-content { grid-template-columns: 1fr; gap: 25px; }
    .rk-svg-wrapper { height: 200px; }
    .rk-cons-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-koszty-eksploatacji",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Czy połączenie rekuperacji i ogrzewania podłogowego obniża koszty eksploatacji domu?",
    "description": "Zgodnie z normą PN-EN 12831-1, synchronizacja rekuperacji z podłogówką redukuje koszty o 35-43% i zapobiega niszczącemu taktowaniu pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-koszty-eksploatacji",
    "name": "Wpływ rekuperacji na obciążenie cieplne i koszty eksploatacji",
    "description": "Parametry techniczno-finansowe wynikające z braku synchronizacji systemów (przewymiarowanie pompy, bezwładność jastrychu).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty eksploatacji rekuperacja podłogówka",
      "obciążenie cieplne PN-EN 12831-1",
      "przewymiarowanie pompy ciepła",
      "taktowanie sprężarki",
      "bezwładność cieplna jastrychu"
    ],
    "measurementTechnique": "Obliczenia projektowego obciążenia cieplnego (strata mocy wentylacyjnej QV) w oparciu o wytyczne normy PN-EN 12831-1:2017-08.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Odzysk ciepła redukuje koszty ogrzewania o 35% do 43%.",
        "Brak rekuperacji wymusza przewymiarowanie pompy ciepła o 2-3 kW (koszt 4-6 tys. PLN).",
        "Wstępne podgrzanie powietrza nawiewanego (do +16°C przy -10°C) niweluje efekt bezwładności jastrychu (6.5 cm)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-koszty-eksploatacji",
    "name": "Symulator Synchronizacji Instalacji",
    "description": "Aplikacja edukacyjna porównująca parametry pracy pompy ciepła i podłogówki z wentylacją grawitacyjną oraz z rekuperacją.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cost-container" id="rk-cost-app">
    
    <div class="rk-cost-header">
        <div class="rk-cost-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            Analiza Operacyjna
        </div>
        <h2 class="rk-cost-title">Czy połączenie rekuperacji i podłogówki <span>obniża koszty eksploatacji?</span></h2>
        <p class="rk-cost-desc">Bezpośrednia odpowiedź brzmi: tak. Inwestorzy często stają przed dylematem finansowym, przerażeni kosztem początkowym obu systemów. Ból pojawia się jednak w momencie analizy pierwszych faktur za energię.</p>
    </div>

    <div class="rk-cost-facts">
        <div class="rk-fact-card">
            <div class="rk-fact-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 18 13.5 8.5 8.5 13.5 1 6"></polyline><polyline points="17 18 23 18 23 12"></polyline></svg></div>
            <h4>-35% do -43%</h4>
            <p>O tyle spadają roczne koszty względem tradycyjnego układu (grzejniki + grawitacja).</p>
        </div>
        <div class="rk-fact-card">
            <div class="rk-fact-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg></div>
            <h4>Norma OZC</h4>
            <p>Spadek strat wentylacyjnych (QV) określa norma <strong>PN-EN 12831-1:2017-08</strong>.</p>
        </div>
        <div class="rk-fact-card">
            <div class="rk-fact-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="14" width="18" height="8" rx="2" ry="2"></rect><path d="M5 14v-2a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2"></path><path d="M8 10V6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4"></path></svg></div>
            <h4>Bezwładność</h4>
            <p>Betonowy jastrych (6,5 cm) nagrzewa się godzinami. Rekuperacja zapobiega jego wychłodzeniu.</p>
        </div>
    </div>

    <div class="rk-cost-interactive">
        <div class="rk-sim-box state-grav" id="rk-cost-sim">
            
            <div class="rk-sim-header">
                <h3 class="rk-sim-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                    Symulator Synchronizacji Instalacji
                </h3>
                
                <div class="rk-cost-toggle">
                    <div class="rk-toggle-slider"></div>
                    <button class="rk-toggle-btn active" data-sys="grav">Went. Grawitacyjna</button>
                    <button class="rk-toggle-btn" data-sys="rek">Rekuperacja</button>
                </div>
            </div>

            <div class="rk-sim-content">
                
                <div class="rk-data-panel">
                    <div class="rk-data-row">
                        <span class="rk-data-label">Temp. na zewnątrz</span>
                        <span class="rk-data-val" style="color: #cbd5e1;">-10°C</span>
                    </div>
                    <div class="rk-data-row dynamic">
                        <span class="rk-data-label">Temp. nawiewu z zewnątrz</span>
                        <span class="rk-data-val" id="valNawiew">-10°C</span>
                    </div>
                    <div class="rk-data-row dynamic">
                        <span class="rk-data-label">Stan pompy ciepła</span>
                        <span class="rk-data-val" id="valPompa">Ciągłe taktowanie</span>
                    </div>
                    <div class="rk-data-row dynamic">
                        <span class="rk-data-label">Bezwładność podłogi</span>
                        <span class="rk-data-val" id="valPodloga">Nagłe wychłodzenie</span>
                    </div>
                </div>

                <div class="rk-svg-wrapper">
                    <svg viewBox="0 0 200 150" width="100%" height="100%">
                        <rect x="20" y="20" width="160" height="110" class="svg-bg" rx="4"/>
                        <path d="M 120 20 L 120 130" stroke="#334155" stroke-width="2"/>
                        
                        <rect x="140" y="40" width="40" height="40" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                        
                        <g class="anim-cold-drop">
                            <path d="M 160 50 Q 140 70 125 100" fill="none" stroke="#38bdf8" stroke-width="3" stroke-linecap="round" stroke-dasharray="4 4"/>
                        </g>

                        <rect x="20" y="110" width="160" height="20" class="svg-floor"/>
                        <path class="svg-pipe" d="M 30 120 L 110 120" fill="none"/>

                        <rect class="svg-pump" x="40" y="50" width="40" height="50"/>
                        <circle cx="60" cy="75" r="10" fill="none" stroke="#ffffff" stroke-width="2" opacity="0.5"/>

                        <g class="anim-rek-box">
                            <rect x="70" y="5" width="40" height="25" fill="#1e293b" stroke="#10b981" stroke-width="2" rx="2"/>
                            <path class="anim-rek-spin" d="M 85 17 L 95 17 M 90 12 L 90 22" stroke="#10b981" stroke-width="2"/>
                            <path d="M 90 30 L 90 45 L 140 45" fill="none" stroke="#475569" stroke-width="4"/>
                            <g class="anim-warm-flow">
                                <path d="M 135 45 L 125 45" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                                <path d="M 135 52 L 125 52" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                            </g>
                        </g>

                    </svg>
                </div>

            </div>
        </div>
    </div>

    <div class="rk-cost-consequences">
        <h3 style="margin: 0 0 20px 0; font-size: 22px; font-weight: 900; color: var(--rk-cost-dark);">Konsekwencje błędów: Brak synchronizacji systemów</h3>
        <div class="rk-cons-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Ukryte koszty inwestycyjne
            </h3>
            <p>Rozdzielenie tych systemów na etapie decyzji skutkuje <strong>przewymiarowaniem pompy ciepła o 2-3 kW mocy nominalnej</strong>. Instalator działający bez profesjonalnego projektu OZC zakłada standardowe straty na wentylację grawitacyjną. Podnosi to koszt zakupu samego źródła ciepła o około <strong>4 000 &#8211; 6 000 PLN</strong> i generuje niszczące tzw. <strong>taktowanie pompy</strong> w okresach przejściowych (wiosna/jesień), co drastycznie skraca żywotność sprężarki.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    const container = document.getElementById('rk-cost-sim');
    const btns = document.querySelectorAll('.rk-toggle-btn');
    
    // Dynamiczne teksty
    const valNawiew = document.getElementById('valNawiew');
    const valPompa = document.getElementById('valPompa');
    const valPodloga = document.getElementById('valPodloga');

    const data = {
        grav: {
            nawiew: '-10°C (Mroźne uderzenie)',
            pompa: 'Taktowanie / Przewymiarowana (+3kW)',
            podloga: 'Utrata energii z jastrychu'
        },
        rek: {
            nawiew: '+16°C (Wstępnie ogrzane)',
            pompa: 'Zoptymalizowana / Stabilna praca',
            podloga: 'Ciągły, liniowy profil ciepła'
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            const sys = btn.getAttribute('data-sys');
            
            // Zmiana klas przycisków
            btns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            
            // Zmiana klasy kontenera dla animacji i kolorów
            container.className = `rk-sim-box state-${sys}`;

            // Zmiana tekstów
            valNawiew.textContent = data[sys].nawiew;
            valPompa.textContent = data[sys].pompa;
            valPodloga.textContent = data[sys].podloga;
        });
    });

});
</script>



<style>
:root {
    --rk-tmp-dark: #0f172a;
    --rk-tmp-panel: #1e293b;
    --rk-tmp-primary: #f97316; /* Ciepły pomarańcz dla temperatury */
    --rk-tmp-primary-light: #ffedd5;
    --rk-tmp-success: #10b981; /* Zieleń dla wysokiego COP */
    --rk-tmp-success-light: #d1fae5;
    --rk-tmp-alert: #ef4444;   /* Czerwień dla zbyt wysokiej temperatury */
    --rk-tmp-cold: #38bdf8;    /* Błękit dla rekuperacji */
    --rk-tmp-bg: #f8fafc;
    --rk-tmp-border: #e2e8f0;
    --rk-tmp-text: #334155;
    --rk-tmp-muted: #64748b;
}

.rk-tmp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(249, 115, 22, 0.15);
    border: 1px solid rgba(249, 115, 22, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-tmp-header {
    background: linear-gradient(135deg, var(--rk-tmp-dark) 0%, #431407 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-tmp-primary);
}

.rk-tmp-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(249, 115, 22, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.rk-tmp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(253, 186, 116, 0.3);
}

.rk-tmp-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-tmp-title span { color: #fb923c; }

.rk-tmp-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Sekcja z treścią i normami */
.rk-tmp-content-box {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-tmp-content-box p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-tmp-text);
    margin: 0 0 15px 0;
}

.rk-tmp-content-box strong {
    color: var(--rk-tmp-dark);
    font-weight: 800;
}

.rk-tmp-norm-card {
    background: var(--rk-tmp-bg);
    border-left: 4px solid var(--rk-tmp-primary);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-tmp-norm-title {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-tmp-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-tmp-link {
    color: var(--rk-tmp-primary);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px dashed rgba(249, 115, 22, 0.4);
    transition: all 0.3s;
}

.rk-tmp-link:hover {
    color: #c2410c;
    border-bottom-style: solid;
}

/* Interaktywny Symulator COP */
.rk-tmp-simulator {
    background: var(--rk-tmp-panel);
    padding: 40px 50px;
    color: #ffffff;
    border-top: 1px solid #334155;
}

.rk-sim-title {
    font-size: 20px;
    font-weight: 900;
    margin: 0 0 30px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.rk-sim-controls {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 30px 25px;
}

.rk-sim-label {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 20px;
}

.rk-sim-label span:first-child {
    font-size: 13px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-sim-label span:last-child {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-tmp-primary);
    line-height: 1;
}

.rk-tmp-slider {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #334155; outline: none; margin-bottom: 20px;
}
.rk-tmp-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%;
    background: #ffffff; cursor: pointer; border: 5px solid var(--rk-tmp-primary); transition: 0.2s; box-shadow: 0 0 15px rgba(249, 115, 22, 0.5);
}
.rk-tmp-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

.rk-sim-info {
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.6;
    padding-top: 15px;
    border-top: 1px dashed rgba(255,255,255,0.1);
}

/* Wizualizacja COP (Prawa strona) */
.rk-sim-visual {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-gauge-container {
    position: relative;
    width: 220px;
    height: 140px;
    overflow: hidden;
}

.rk-gauge-svg {
    width: 100%;
    height: 200%;
    transform: rotate(180deg);
}

.rk-gauge-bg { fill: none; stroke: #334155; stroke-width: 15; }
.rk-gauge-val { 
    fill: none; stroke: var(--rk-tmp-success); stroke-width: 15; 
    stroke-dasharray: 314; /* 2 * PI * R (50) = 314 */
    stroke-dashoffset: 314; 
    transition: stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.6s;
}

.rk-gauge-content {
    position: absolute;
    bottom: 0; left: 0; width: 100%;
    text-align: center;
}

.rk-cop-val {
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    color: var(--rk-tmp-success);
    transition: color 0.6s;
    text-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
}

.rk-cop-lbl {
    font-size: 14px;
    font-weight: 800;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 5px;
}

.rk-sim-status {
    margin-top: 20px;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    border: 1px solid rgba(16, 185, 129, 0.3);
    transition: all 0.6s;
}

/* Animacje Promieniowania Ciepła */
.rk-floor-anim {
    width: 100%;
    height: 80px;
    margin-top: 30px;
}
.anim-pipe { transition: fill 0.6s; }
.anim-wave { opacity: 0; animation: heatWave 2s linear infinite; }

@keyframes heatWave {
    0% { transform: translateY(0); opacity: 0; }
    50% { opacity: 0.6; }
    100% { transform: translateY(-20px); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-tmp-header, .rk-tmp-content-box, .rk-tmp-simulator { padding: 30px 20px; }
    .rk-tmp-title { font-size: 24px; }
    .rk-sim-grid { grid-template-columns: 1fr; gap: 40px; }
    .rk-gauge-container { width: 180px; height: 110px; }
    .rk-cop-val { font-size: 40px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-temperatura-zasilania",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Jaka jest maksymalna temperatura zasilania ogrzewania podłogowego przy rekuperacji?",
    "description": "Analiza normy PN-EN 1264-2:2021-05. Sprawdź, jak obniżenie temperatury zasilania do 30°C wpływa na sprawność pompy ciepła (COP) i obniża koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-temperatura-cop",
    "name": "Wpływ temperatury zasilania na SCOP pompy ciepła 2026",
    "description": "Zależności między temperaturą zasilania układu płaszczyznowego a współczynnikiem sprawności pomp ciepła typu powietrze-woda.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura ogrzewania podłogowego",
      "norma PN-EN 1264-2:2021-05",
      "temperatura zasilania pompy ciepła",
      "współczynnik COP ogrzewanie podłogowe",
      "zależność SCOP od temperatury"
    ],
    "measurementTechnique": "Szacowanie oparte na danych termodynamicznych wskazujących spadek SCOP o 2,5-3% przy wzroście temperatury zasilania o 1 stopień Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura wg PN-EN 1264-2: 35°C (strefy stałe), 45°C (strefy brzegowe i łazienki).",
        "Zasilanie 30°C: Średnioroczny SCOP na poziomie 4.8 - 5.2.",
        "Zasilanie 40°C (brak rekuperacji): Spadek SCOP do poziomu 3.8 - 4.1."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-temperatura",
    "name": "Symulator Efektywności Temperaturowej COP",
    "description": "Interaktywny panel ilustrujący bezpośredni wpływ zmiany temperatury zasilania ogrzewania podłogowego na średni współczynnik COP pompy ciepła.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tmp-container" id="rk-tmp-app">
    
    <div class="rk-tmp-header">
        <div class="rk-tmp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Parametry i Normy
        </div>
        <h2 class="rk-tmp-title">Jaka jest maksymalna temperatura zasilania podłogówki <span>przy rekuperacji?</span></h2>
        <p class="rk-tmp-desc">Decyzja o rezygnacji z wentylacji mechanicznej bezpośrednio uderza w serce instalacji grzewczej – pompę ciepła, wymuszając pracę na podwyższonych, nieekonomicznych parametrach zasilania.</p>
    </div>

    <div class="rk-tmp-content-box">
        <p>
            Maksymalna temperatura zasilania wodnego ogrzewania podłogowego wynosi <strong>35°C</strong> dla stref stałego pobytu ludzi oraz <strong>45°C</strong> dla stref brzegowych i łazienek. Są to twarde, restrykcyjne wytyczne normy <strong>PN-EN 1264-2:2021-05</strong>, których każdy inżynier musi przestrzegać. W budynkach wyposażonych w rekuperację, standardem projektowym dla temperatury obliczeniowej (np. -20°C dla III strefy klimatycznej) jest optymalny parametr rzędu <strong>30/25°C</strong> lub <strong>32/27°C</strong>.
        </p>
        
        <div class="rk-tmp-norm-card">
            <div class="rk-tmp-norm-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Analiza wpływu na COP pompy ciepła
            </div>
            <p style="margin:0; font-size:14px;">
                Niska temperatura zasilania to absolutny priorytet dla sprawności. Każdy stopień obniżenia temperatury wody podnosi współczynnik efektywności COP <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-tmp-link">pompy ciepła</a> o około <strong>2,5% &#8211; 3%</strong>. Gdy rekuperator przejmuje obowiązek ogrzania wymrożonego powietrza wentylacyjnego, zapotrzebowanie na moc z posadzki drastycznie spada. Zamiast projektować instalację na 45°C, projektujemy układ ultraniskotemperaturowy.
            </p>
        </div>
    </div>

    <div class="rk-tmp-simulator">
        <h3 class="rk-sim-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Symulator Efektywności Temperaturowej
        </h3>

        <div class="rk-sim-grid">
            
            <div class="rk-sim-controls">
                <div class="rk-sim-label">
                    <span>Temp. zasilania pętli</span>
                    <span id="rkTempVal">30°C</span>
                </div>
                <input type="range" id="rkTempSlider" class="rk-tmp-slider" min="28" max="45" step="1" value="30">
                <div class="rk-sim-info">
                    Przesuwając suwak, symulujesz sytuację, w której brak rekuperacji zmusza Cię do podniesienia temperatury podłogi w celu pokrycia strat wentylacyjnych. Zobacz, jak drastycznie spada sprawność pompy ciepła.
                </div>
            </div>

            <div class="rk-sim-visual">
                <div class="rk-gauge-container">
                    <svg class="rk-gauge-svg" viewBox="0 0 100 100">
                        <circle class="rk-gauge-bg" cx="50" cy="50" r="40"></circle>
                        <circle class="rk-gauge-val" id="rkGaugeArc" cx="50" cy="50" r="40"></circle>
                    </svg>
                    <div class="rk-gauge-content">
                        <div class="rk-cop-val" id="rkCopVal">5.0</div>
                        <div class="rk-cop-lbl">Szacowany SCOP</div>
                    </div>
                </div>

                <div class="rk-sim-status" id="rkStatusLabel">
                    IDEALNA WYDAJNOŚĆ (REKUPERACJA)
                </div>

                <svg class="rk-floor-anim" viewBox="0 0 200 50">
                    <rect x="0" y="30" width="200" height="20" fill="#334155" rx="4"></rect>
                    <circle class="anim-pipe" id="pipe1" cx="40" cy="40" r="6" fill="#10b981"></circle>
                    <circle class="anim-pipe" id="pipe2" cx="100" cy="40" r="6" fill="#10b981"></circle>
                    <circle class="anim-pipe" id="pipe3" cx="160" cy="40" r="6" fill="#10b981"></circle>
                    <path class="anim-wave" d="M 30 20 Q 40 5 50 20" fill="none" stroke="#f97316" stroke-width="2" style="animation-delay: 0s;"></path>
                    <path class="anim-wave" d="M 90 20 Q 100 5 110 20" fill="none" stroke="#f97316" stroke-width="2" style="animation-delay: 0.5s;"></path>
                    <path class="anim-wave" d="M 150 20 Q 160 5 170 20" fill="none" stroke="#f97316" stroke-width="2" style="animation-delay: 1s;"></path>
                </svg>

            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tempSlider = document.getElementById('rkTempSlider');
    const tempValLabel = document.getElementById('rkTempVal');
    const copValLabel = document.getElementById('rkCopVal');
    const gaugeArc = document.getElementById('rkGaugeArc');
    const statusLabel = document.getElementById('rkStatusLabel');
    
    const pipes = [
        document.getElementById('pipe1'),
        document.getElementById('pipe2'),
        document.getElementById('pipe3')
    ];

    // Funkcja obliczająca i aktualizująca widok
    function updateSimulation() {
        const temp = parseInt(tempSlider.value);
        tempValLabel.textContent = temp + '°C';

        // Obliczenie przybliżonego SCOP (30C -> 5.0, 40C -> 4.0)
        // Liniowa zależność na potrzeby symulacji: utrata 0.1 COP na 1 stopień
        let calcCop = 5.0 - ((temp - 30) * 0.1);
        
        // Zabezpieczenie przed dziwnymi wartościami poniżej 28C
        if(temp < 30) calcCop = 5.0 + ((30 - temp) * 0.05);

        copValLabel.textContent = calcCop.toFixed(1);

        // Obliczenie wypełnienia łuku dla SVG (Długość łuku = 251.2 dla promienia 40)
        // Max COP = 5.1 (dla 28C), Min = 3.5 (dla 45C). Skala: 3.0 do 5.5
        const maxCopRange = 5.5;
        const minCopRange = 3.0;
        const range = maxCopRange - minCopRange;
        const currentPercentage = (calcCop - minCopRange) / range;
        
        // C - dashoffset
        const C = 2 * Math.PI * 40; // ~251.2
        const offset = C - (C * currentPercentage);
        
        // Ustawienie łuku z podziałem przez 2, bo interesuje nas tylko półkole (widoczne na górze przez obrót)
        gaugeArc.style.strokeDasharray = C;
        // Pokazujemy połowę obwodu
        const visibleOffset = (C / 2) + ((C / 2) * (1 - currentPercentage));
        gaugeArc.style.strokeDashoffset = visibleOffset;

        // Logika kolorów i statusów
        let color = '#10b981'; // Zielony
        let pipeColor = '#10b981';
        let statusText = 'IDEALNA WYDAJNOŚĆ (REKUPERACJA)';
        let statusBg = 'rgba(16, 185, 129, 0.2)';
        let statusBorder = 'rgba(16, 185, 129, 0.3)';

        if (temp > 35 && temp <= 40) {
            color = '#f59e0b'; // Żółty/Bursztynowy
            pipeColor = '#f97316';
            statusText = 'SPADEK WYDAJNOŚCI (WYŻSZE KOSZTY)';
            statusBg = 'rgba(245, 158, 11, 0.2)';
            statusBorder = 'rgba(245, 158, 11, 0.3)';
        } else if (temp > 40) {
            color = '#ef4444'; // Czerwony
            pipeColor = '#ef4444';
            statusText = 'KRYTYCZNE ZUŻYCIE PRĄDU (BRAK REKU)';
            statusBg = 'rgba(239, 68, 68, 0.2)';
            statusBorder = 'rgba(239, 68, 68, 0.3)';
        }

        // Aplikowanie stylów
        gaugeArc.style.stroke = color;
        copValLabel.style.color = color;
        copValLabel.style.textShadow = `0 0 20px ${statusBg}`;
        
        statusLabel.textContent = statusText;
        statusLabel.style.color = color;
        statusLabel.style.background = statusBg;
        statusLabel.style.borderColor = statusBorder;

        tempSlider.style.borderColor = pipeColor;

        pipes.forEach(pipe => {
            pipe.style.fill = pipeColor;
        });
    }

    if(tempSlider) {
        tempSlider.addEventListener('input', updateSimulation);
        updateSimulation(); // Init
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-panel: #1e293b;
    --rk-fin-primary: #10b981; /* Szmaragdowy (Zysk/Finanse) */
    --rk-fin-primary-light: #d1fae5;
    --rk-fin-alert: #f43f5e; /* Czerwień (Koszty) */
    --rk-fin-alert-light: #ffe4e6;
    --rk-fin-accent: #38bdf8; /* Błękit (Energia) */
    --rk-fin-bg: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-text: #334155;
    --rk-fin-muted: #64748b;
}

.rk-fin-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-fin-header {
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, #064e3b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-fin-primary);
}

.rk-fin-header::before {
    content: ''; position: absolute; right: 0; top: 0; width: 50%; height: 100%;
    background: radial-gradient(circle at top right, rgba(16, 185, 129, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-fin-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(110, 231, 183, 0.3);
    position: relative;
    z-index: 2;
}

.rk-fin-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-fin-title span { color: #34d399; }

.rk-fin-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
    max-width: 750px;
}

/* Interaktywny Kalkulator Rentowności */
.rk-fin-calculator {
    padding: 40px 50px;
    background: var(--rk-fin-bg);
    border-bottom: 1px solid var(--rk-fin-border);
}

/* NOWY UKŁAD: Suwaki u góry, wyniki na dole */
.rk-calc-controls-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.rk-control-box {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    padding: 20px 25px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-control-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-fin-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-control-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-fin-dark);
}

.rk-fin-slider {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #e2e8f0; outline: none;
}
.rk-fin-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%;
    background: var(--rk-fin-primary); cursor: pointer; border: 4px solid #ffffff; transition: 0.2s; box-shadow: 0 0 10px rgba(16, 185, 129, 0.4);
}
.rk-fin-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Panel Wyników SVG (Pełna szerokość) */
.rk-calc-visual {
    background: var(--rk-fin-dark);
    border-radius: 20px;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
}

.rk-visual-bg {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0.05;
}

.rk-balance-header {
    text-align: center;
    position: relative;
    z-index: 2;
}
.rk-balance-title { font-size: 14px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 10px; }
.rk-balance-val { font-size: 48px; font-weight: 900; color: var(--rk-fin-primary); transition: color 0.3s; line-height: 1; }
.rk-balance-val.negative { color: var(--rk-fin-alert); }

.rk-bars-container {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 60px;
    height: 160px;
    position: relative;
    z-index: 2;
}

.rk-bar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 120px; 
}

.rk-bar {
    width: 60px; 
    border-radius: 8px 8px 0 0;
    transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    justify-content: center;
}

.rk-bar-cost { background: var(--rk-fin-alert); height: 50%; }
.rk-bar-save { background: var(--rk-fin-primary); height: 80%; }

.rk-bar-icon {
    position: absolute; top: -35px; color: #ffffff; opacity: 0.8;
}

.rk-bar-label { 
    font-size: 13px; 
    font-weight: 800; 
    color: #cbd5e1; 
    text-align: center; 
    text-transform: uppercase; 
    line-height: 1.4;
    letter-spacing: 0.5px;
}
.rk-bar-value { 
    font-size: 20px; 
    font-weight: 900; 
    color: #ffffff; 
}

/* Twarde Fakty - Karty Informacyjne */
.rk-fin-facts {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    background: #ffffff;
}

.rk-fact-card {
    border: 1px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: all 0.3s;
}

.rk-fact-card:hover {
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border-color: var(--rk-fin-accent);
    transform: translateY(-3px);
}

.rk-fact-icon {
    width: 40px; height: 40px; border-radius: 10px; background: var(--rk-fin-bg); display: flex; align-items: center; justify-content: center; margin-bottom: 15px;
}

.rk-fact-card.cost .rk-fact-icon { color: var(--rk-fin-alert); background: var(--rk-fin-alert-light); }
.rk-fact-card.save .rk-fact-icon { color: var(--rk-fin-accent); background: #e0f2fe; }
.rk-fact-card.bal .rk-fact-icon { color: var(--rk-fin-primary); background: var(--rk-fin-primary-light); }

.rk-fact-title { font-size: 15px; font-weight: 900; color: var(--rk-fin-dark); margin: 0 0 10px 0; }
.rk-fact-list { list-style: none; padding: 0; margin: 0; }
.rk-fact-list li { font-size: 13px; color: var(--rk-fin-text); padding: 5px 0; border-bottom: 1px dashed var(--rk-fin-border); display: flex; justify-content: space-between; align-items: center; }
.rk-fact-list li:last-child { border: none; padding-bottom: 0; }
.rk-fact-list li span { font-weight: 800; color: var(--rk-fin-dark); }

/* Animacje SVG */
.anim-fan-spin { transform-origin: center; animation: spinFan 2s linear infinite; }
@keyframes spinFan { to { transform: rotate(360deg); } }

.anim-coin-pulse { transform-origin: center; animation: pulseCoin 2s infinite alternate; }
@keyframes pulseCoin { from { transform: translateY(0) scale(1); } to { transform: translateY(-3px) scale(1.1); } }

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-calculator, .rk-fin-facts { padding: 30px 20px; }
    .rk-fin-title { font-size: 24px; }
    
    .rk-calc-controls-row { grid-template-columns: 1fr; gap: 20px; margin-bottom: 20px; }
    .rk-calc-visual { flex-direction: column; padding: 30px 20px; gap: 40px; }
    
    .rk-fin-facts { grid-template-columns: 1fr; }
    .rk-balance-val { font-size: 40px; }
    
    .rk-bars-container { height: 140px; gap: 20px; width: 100%; justify-content: space-around; margin-top: 10px; }
    .rk-bar-wrap { width: 100px; gap: 8px; }
    .rk-bar { width: 45px; }
    .rk-bar-label { font-size: 11px; }
    .rk-bar-value { font-size: 16px; }
    .rk-bar-icon { top: -25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Ile wynosi rzeczywisty koszt eksploatacji systemu dla domu 150 m² w 2026 roku?",
    "description": "Twarda weryfikacja faktów: koszty energii rekuperatora, wymiany filtrów a zysk energetyczny dla pompy ciepła z ogrzewaniem podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-koszty",
    "name": "Bilans finansowy utrzymania rekuperacji 2026",
    "description": "Zestawienie kosztów eksploatacji rekuperatora (prąd + filtry) i oszczędności na pracy pompy ciepła (zysk energetyczny).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt eksploatacji rekuperacji",
      "zużycie prądu przez rekuperator",
      "cena filtrów do rekuperatora",
      "zysk energetyczny rekuperacja",
      "COP pompy ciepła a rekuperacja"
    ],
    "measurementTechnique": "Kalkulacja uwzględniająca pobór mocy wentylatorów (60W), wymianę filtrów oraz odzysk energii cieplnej (4500 kWh) pomniejszony o SCOP (4.5) pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt prądu rekuperatora: 60 W * 24 h * 365 dni = 525,6 kWh rocznie.",
        "Koszty stałe (Filtry): 180 - 240 PLN rocznie.",
        "Oszczędność (Pompa Ciepła): Odzysk 4500 kWh ciepła = mniejsze zużycie prądu o 1000 kWh przy SCOP 4.5."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-koszty",
    "name": "Kalkulator Rentowności Rekuperacji",
    "description": "Narzędzie interaktywne symulujące roczne koszty i oszczędności z wentylacji mechanicznej na podstawie metrażu i taryfy prądu G11/G12w.",
    "applicationCategory": "FinancialApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="rk-fin-app">
    
    <div class="rk-fin-header">
        <div class="rk-fin-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Ekonomiczna 2026
        </div>
        <h2 class="rk-fin-title">Ile wynosi rzeczywisty koszt eksploatacji systemu dla domu <span>150 m²?</span></h2>
        <p class="rk-fin-desc">Rzeczywisty, całkowity koszt energii elektrycznej potrzebnej do ogrzania domu (w standardzie WT2021) za pomocą pompy ciepła i podłogówki przy działającej rekuperacji wynosi <strong>średnio 2 100 &#8211; 2 600 PLN na cały sezon grzewczy</strong>.</p>
    </div>

    <div class="rk-fin-calculator">
        
        <div class="rk-calc-controls-row">
            <div class="rk-control-box">
                <div class="rk-control-header">
                    <span class="rk-control-label">Powierzchnia domu</span>
                    <span class="rk-control-val" id="rkAreaVal">150 m²</span>
                </div>
                <input type="range" id="rkAreaSlider" class="rk-fin-slider" min="100" max="250" step="10" value="150">
            </div>

            <div class="rk-control-box">
                <div class="rk-control-header">
                    <span class="rk-control-label">Średnia cena prądu</span>
                    <span class="rk-control-val"><span id="rkPriceVal">0.75</span> PLN/kWh</span>
                </div>
                <input type="range" id="rkPriceSlider" class="rk-fin-slider" min="0.50" max="1.50" step="0.05" value="0.75">
                <div style="font-size: 11px; color: #94a3b8; margin-top: 10px;">(Z opłatami dystrybucyjnymi taryfy G11/G12w)</div>
            </div>
        </div>

        <div class="rk-calc-visual">
            <svg class="rk-visual-bg" viewBox="0 0 100 100" preserveAspectRatio="none">
                <path d="M0,100 L10,80 L30,90 L50,40 L70,60 L100,10 L100,100 Z" fill="currentColor"/>
            </svg>

            <div class="rk-balance-header">
                <div class="rk-balance-title">Czysty zysk finansowy (Rocznie)</div>
                <div class="rk-balance-val" id="rkNetBalance">+150 PLN</div>
            </div>

            <div class="rk-bars-container">
                <div class="rk-bar-wrap">
                    <div class="rk-bar rk-bar-cost" id="rkBarCost">
                        <svg class="rk-bar-icon anim-fan-spin" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-bar-label">Koszty<br>Utrzym.</div>
                    <div class="rk-bar-value" id="rkCostTxt">600 zł</div>
                </div>

                <div class="rk-bar-wrap">
                    <div class="rk-bar rk-bar-save" id="rkBarSave">
                        <svg class="rk-bar-icon anim-coin-pulse" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"></path><line x1="12" y1="18" x2="12" y2="22"></line><line x1="12" y1="2" x2="12" y2="6"></line></svg>
                    </div>
                    <div class="rk-bar-label">Odzysk<br>Energii</div>
                    <div class="rk-bar-value" id="rkSaveTxt">750 zł</div>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-fin-facts">
        
        <div class="rk-fact-card cost">
            <div class="rk-fact-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg></div>
            <h4 class="rk-fact-title">Koszty Utrzymania</h4>
            <ul class="rk-fact-list">
                <li>Zużycie prądu (60W): <span id="txtRecupKwh">526 kWh</span></li>
                <li>Koszt energii: <span id="txtRecupCost">394 PLN</span></li>
                <li>Wymiana filtrów: <span id="txtFilters">206 PLN</span></li>
            </ul>
        </div>

        <div class="rk-fact-card save">
            <div class="rk-fact-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
            <h4 class="rk-fact-title">Zysk Energetyczny</h4>
            <ul class="rk-fact-list">
                <li>Odzysk ciepła: <span id="txtThermGain">4500 kWh</span></li>
                <li>SCOP Pompy: <span>4,5</span></li>
                <li>Mniejsze z. prądu: <span id="txtElecSave">1000 kWh</span></li>
            </ul>
        </div>

        <div class="rk-fact-card bal">
            <div class="rk-fact-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg></div>
            <h4 class="rk-fact-title">Bilans Finansowy</h4>
            <ul class="rk-fact-list">
                <li>Suma kosztów: <span id="txtTotalCost">600 PLN</span></li>
                <li>Wartość odzysku: <span id="txtTotalSave">750 PLN</span></li>
                <li style="border:none; margin-top:5px;"><strong>Zysk netto:</strong> <span id="txtNetResult" style="color:var(--rk-fin-primary);">+150 PLN</span></li>
            </ul>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Domain Check
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-fin-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size: 18px; font-weight: 900; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                <div style="font-size: 14px; margin-top:5px; color: #cbd5e1;">Skrypt przypisany do Projekt-Ogrzewania.pl</div>
            </div>`;
            return;
        }
    }

    // Elements
    const areaSlider = document.getElementById('rkAreaSlider');
    const priceSlider = document.getElementById('rkPriceSlider');
    const areaVal = document.getElementById('rkAreaVal');
    const priceVal = document.getElementById('rkPriceVal');
    
    // SVG Bars
    const barCost = document.getElementById('rkBarCost');
    const barSave = document.getElementById('rkBarSave');
    const costTxt = document.getElementById('rkCostTxt');
    const saveTxt = document.getElementById('rkSaveTxt');
    const netBalance = document.getElementById('rkNetBalance');

    // Texts in cards
    const txtRecupKwh = document.getElementById('txtRecupKwh');
    const txtRecupCost = document.getElementById('txtRecupCost');
    const txtFilters = document.getElementById('txtFilters');
    const txtThermGain = document.getElementById('txtThermGain');
    const txtElecSave = document.getElementById('txtElecSave');
    const txtTotalCost = document.getElementById('txtTotalCost');
    const txtTotalSave = document.getElementById('txtTotalSave');
    const txtNetResult = document.getElementById('txtNetResult');

    // Base constants for 150m2
    const BASE_AREA = 150;
    const RECUP_POWER_W = 60; 
    const RECUP_HOURS = 24 * 365; // 8760
    const BASE_KWH = (RECUP_POWER_W * RECUP_HOURS) / 1000; // 525.6
    const BASE_FILTERS = 205.8; 
    const BASE_THERMAL_GAIN = 4500;
    const SCOP = 4.5;

    function calculate() {
        const area = parseFloat(areaSlider.value);
        const price = parseFloat(priceSlider.value);
        const multiplier = area / BASE_AREA;

        // Updates Labels
        areaVal.textContent = area + ' m²';
        priceVal.textContent = price.toFixed(2);

        // Math
        const currentKwh = BASE_KWH * multiplier;
        const currentRecupCost = currentKwh * price;
        const currentFilters = BASE_FILTERS * multiplier; 
        const totalCost = currentRecupCost + currentFilters;

        const currentThermGain = BASE_THERMAL_GAIN * multiplier;
        const currentElecSave = currentThermGain / SCOP;
        const totalSave = currentElecSave * price;

        const net = totalSave - totalCost;

        // Update SVG & Big Numbers
        costTxt.textContent = Math.round(totalCost) + ' zł';
        saveTxt.textContent = Math.round(totalSave) + ' zł';
        
        let netStr = (Math.sign(net) === 1 ? '+' : '') + Math.round(net) + ' PLN';
        netBalance.textContent = netStr;
        
        if(Math.sign(net) === -1) {
            netBalance.classList.add('negative');
        } else {
            netBalance.classList.remove('negative');
        }

        // Height logic for bars (max 100%)
        let maxVal = Math.max(totalCost, totalSave, 1);
        let costHeight = (totalCost / maxVal) * 80; 
        let saveHeight = (totalSave / maxVal) * 80;

        barCost.style.height = `${costHeight}%`;
        barSave.style.height = `${saveHeight}%`;

        // Update text cards
        txtRecupKwh.textContent = Math.round(currentKwh) + ' kWh';
        txtRecupCost.textContent = Math.round(currentRecupCost) + ' PLN';
        txtFilters.textContent = Math.round(currentFilters) + ' PLN';
        
        txtThermGain.textContent = Math.round(currentThermGain) + ' kWh';
        txtElecSave.textContent = Math.round(currentElecSave) + ' kWh';

        txtTotalCost.textContent = Math.round(totalCost) + ' PLN';
        txtTotalSave.textContent = Math.round(totalSave) + ' PLN';
        
        txtNetResult.textContent = netStr;
        txtNetResult.style.color = Math.sign(net) === -1 ? 'var(--rk-fin-alert)' : 'var(--rk-fin-primary)';
    }

    if(areaSlider) {
        if(priceSlider) {
            areaSlider.addEventListener('input', calculate);
            priceSlider.addEventListener('input', calculate);
            calculate(); // Initialize
        }
    }
});
</script>



<style>
:root {
    --rk-alg-dark: #0f172a;
    --rk-alg-panel: #1e293b;
    --rk-alg-cyan: #06b6d4;   /* Cyjan dla inżynierii / powietrza */
    --rk-alg-cyan-light: #cffafe;
    --rk-alg-emerald: #10b981; /* Szmaragd dla oszczędności */
    --rk-alg-purple: #8b5cf6;  /* Fiolet dla matematyki/wzorów */
    --rk-alg-bg: #f8fafc;
    --rk-alg-border: #e2e8f0;
    --rk-alg-text: #334155;
    --rk-alg-muted: #64748b;
    --rk-alg-math-bg: #0f172a;
}

.rk-alg-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(6, 182, 212, 0.15);
    border: 1px solid rgba(6, 182, 212, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-alg-header {
    background: linear-gradient(135deg, var(--rk-alg-dark) 0%, #164e63 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-alg-cyan);
}

.rk-alg-header::before {
    content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top left, rgba(6, 182, 212, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-alg-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(103, 232, 249, 0.3);
    position: relative;
    z-index: 2;
}

.rk-alg-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 10px 0;
    position: relative;
    z-index: 2;
}

.rk-alg-title span { color: #22d3ee; }

.rk-alg-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Metodologia - Kroki Obliczeniowe */
.rk-alg-steps {
    padding: 40px 50px;
    background: #ffffff;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-alg-step-card {
    background: var(--rk-alg-bg);
    border: 1px solid var(--rk-alg-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: all 0.3s;
}

.rk-alg-step-card:hover {
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border-color: var(--rk-alg-cyan);
    transform: translateY(-3px);
}

.rk-alg-step-number {
    position: absolute;
    top: -15px;
    left: 25px;
    background: var(--rk-alg-cyan);
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    padding: 6px 14px;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(6, 182, 212, 0.3);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-alg-step-card h3 {
    margin: 15px 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-alg-dark);
}

.rk-alg-step-card p {
    margin: 0 0 15px 0;
    font-size: 13px;
    color: var(--rk-alg-text);
    line-height: 1.6;
}

/* Blok Matematyczny (Bez znaków zakazanych) */
.rk-math-block {
    background: var(--rk-alg-math-bg);
    color: #38bdf8;
    padding: 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    border-left: 3px solid var(--rk-alg-purple);
    overflow-x: auto;
}

.rk-math-block .rk-math-res { color: #f472b6; font-size: 14px; }
.rk-math-block .rk-math-var { color: #a78bfa; }

/* Legenda Zmiennych */
.rk-math-legend {
    margin-top: 15px;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    border: 1px dashed var(--rk-alg-border);
    font-size: 12px;
    color: var(--rk-alg-muted);
}
.rk-math-legend b { color: var(--rk-alg-dark); }

/* Kalkulator Interaktywny */
.rk-alg-calc {
    background: var(--rk-alg-panel);
    padding: 40px 50px;
    border-top: 1px solid #334155;
    color: #ffffff;
}

.rk-calc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.rk-calc-header h3 {
    margin: 0; font-size: 20px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 12px;
}

.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    background: rgba(255,255,255,0.03);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-calc-label { font-size: 13px; font-weight: 800; color: #94a3b8; display: flex; justify-content: space-between; text-transform: uppercase; }
.rk-calc-label span { color: var(--rk-alg-cyan); font-size: 20px; font-weight: 900; text-transform: none; }

.rk-slider {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%;
    background: var(--rk-alg-cyan); cursor: pointer; border: 4px solid #ffffff; transition: 0.2s; box-shadow: 0 0 10px rgba(6, 182, 212, 0.5);
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

/* SVG Wyniki i Animacja */
.rk-calc-visual {
    position: relative;
    background: #0f172a;
    border-radius: 16px;
    padding: 20px;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    border: 2px solid #334155;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-calc-stats {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.rk-stat-box { text-align: center; }
.rk-stat-box span { display: block; }
.rk-stat-val { font-size: 24px; font-weight: 900; color: #ffffff; }
.rk-stat-lbl { font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; margin-top: 5px; }

.rk-stat-box.grav .rk-stat-val { color: #f43f5e; }
.rk-stat-box.rek .rk-stat-val { color: #38bdf8; }
.rk-stat-box.zysk .rk-stat-val { color: var(--rk-alg-emerald); }

.rk-svg-flow { width: 100%; height: 100px; }

/* Animacje SVG */
.anim-flow-line { stroke-dasharray: 8 16; animation: flowDash 1.5s linear infinite; }
@keyframes flowDash { to { stroke-dashoffset: -24; } }

.anim-heat-exchange { transform-origin: center; animation: pulseExchange 2s infinite alternate; }
@keyframes pulseExchange { from { transform: scale(0.9); opacity: 0.6; } to { transform: scale(1.1); opacity: 1; } }

@media (max-width: 768px) {
    .rk-alg-header, .rk-alg-steps, .rk-alg-calc { padding: 35px 25px; }
    .rk-alg-title { font-size: 24px; }
    .rk-alg-steps { grid-template-columns: 1fr; gap: 40px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-calc-stats { flex-direction: column; gap: 15px; }
    .rk-stat-box { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #334155; padding-bottom: 10px; }
    .rk-stat-lbl { margin-top: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Jak obliczyć oszczędności z rekuperacji? Algorytm inżynierski krok po kroku",
    "description": "Profesjonalna procedura matematyczna oparta na bilansie masowym powietrza pozwalająca obliczyć rzeczywiste oszczędności na wentylacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-algorytm",
    "name": "Algorytm Bilansu Masowego Powietrza",
    "description": "Zestawienie wzorów i stałych fizycznych dla obliczania strat wentylacyjnych budynku, w tym ciepła właściwego powietrza i gęstości.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia rekuperacja wzory",
      "strata ciepła na wentylację grawitacyjną",
      "strumień objętościowy powietrza obliczenia",
      "zysk mocy pompy ciepła rekuperacja",
      "bilans masowy powietrza dom jednorodzinny"
    ],
    "measurementTechnique": "Algorytm bazujący na kubaturze, współczynniku wymiany powietrza (0.5 h-1), różnicy temperatur (40K) i sprawności odzysku (85%).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strumień powietrza V (m3/s) = Kubatura * 0.5 / 3600",
        "Moc wentylacji Q = V * gęstość (1.2) * Ciepło właściwe (1005) * różnica temperatur",
        "Sprawność wymiennika podnosi temperaturę nawiewu i drastycznie zmniejsza Q (zysk ok. 2.3 kW dla 150m2)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-algorytm",
    "name": "Symulator Inżynierski: Bilans Wentylacji",
    "description": "Kalkulator interaktywny symulujący zmiany obciążenia cieplnego budynku w zależności od zadanego metrażu, porównujący wentylację grawitacyjną z odzyskiem ciepła.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-alg-container" id="rk-alg-app">
    
    <div class="rk-alg-header">
        <div class="rk-alg-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
            Procedura Obliczeniowa
        </div>
        <h2 class="rk-alg-title">Jak obliczyć oszczędności z rekuperacji? <span>Algorytm inżynierski krok po kroku</span></h2>
        <p class="rk-alg-desc">Obliczenie zysków z zastosowania rekuperacji wymaga przejścia przez procedurę matematyczną opartą na bilansie masowym powietrza i pojemności cieplnej mediów. Poniższy algorytm odzwierciedla profesjonalną metodologię inżynierską.</p>
    </div>

    <div class="rk-alg-steps">
        
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 1</div>
            <h3>Strumień objętościowy powietrza (V)</h3>
            <p>Strumień obliczamy na podstawie kubatury budynku (dla domu 150 m² o wysokości pomieszeń 2,7 m kubatura wynosi 405 m³). Przyjmując współczynnik wymiany n = 0,5 h⁻¹:</p>
            <div class="rk-math-block">
                <span class="rk-math-var">V</span> = 405 m³ &times; 0,5 = 202,5 m³/h<br>
                <span class="rk-math-var">V</span> = <span class="rk-math-res">0,05625 m³/s</span>
            </div>
        </div>

        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 2</div>
            <h3>Strata przy went. grawitacyjnej (Q_grav)</h3>
            <p>Moc potrzebna do ogrzania wymrożonego powietrza bez odzysku. Wzór podstawowy to Q = V &times; &rho; &times; Cp &times; &Delta;T.</p>
            <div class="rk-math-block">
                <span class="rk-math-var">Q_grav</span> = 0,05625 &times; 1,2 &times; 1005 &times; 40<br>
                <span class="rk-math-var">Q_grav</span> = 2713,5 W &approx; <span class="rk-math-res">2,71 kW</span>
            </div>
            <div class="rk-math-legend">
                <b>&rho;</b> (gęstość): 1,2 kg/m³ | <b>Cp</b> (ciepło wł.): 1005 J/(kg&middot;K)<br>
                <b>&Delta;T</b> (20°C &#8211; (-20°C)): 40 K
            </div>
        </div>

        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 3</div>
            <h3>Strata z rekuperacją (Q_rek) przy &eta;=85%</h3>
            <p>Sprawność redukuje różnicę temperatur. Temperatura nawiewana rośnie do 14°C, więc nowa &Delta;T do dogrzania wynosi zaledwie 6 K.</p>
            <div class="rk-math-block">
                <span class="rk-math-var">T_naw</span> = -20 + 0,85 &times; (20 &#8211; (-20)) = 14°C<br>
                <span class="rk-math-var">Q_rek</span> = 0,05625 &times; 1,2 &times; 1005 &times; 6<br>
                <span class="rk-math-var">Q_rek</span> = 407,02 W &approx; <span class="rk-math-res">0,41 kW</span>
            </div>
        </div>

        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 4</div>
            <h3>Czysty zysk mocy instalacji (&Delta;Q)</h3>
            <p>Porównanie obu strat wykazuje bezwzględny zysk energetyczny. To bezpośrednio pozwala na montaż mniejszego agregatu pompy ciepła.</p>
            <div class="rk-math-block" style="border-left-color: var(--rk-alg-emerald);">
                <span class="rk-math-var">&Delta;Q</span> = Q_grav &#8211; Q_rek<br>
                <span class="rk-math-var">&Delta;Q</span> = 2,71 kW &#8211; 0,41 kW = <span class="rk-math-res" style="color:var(--rk-alg-emerald); font-size:16px;">2,30 kW</span>
            </div>
        </div>

    </div>

    <div class="rk-alg-calc">
        <div class="rk-calc-header">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-alg-cyan)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line></svg>
                Symulator Inżynierski: Bilans Wentylacji
            </h3>
        </div>

        <div class="rk-calc-grid">
            
            <div class="rk-calc-controls">
                <div class="rk-calc-label">
                    Powierzchnia domu
                    <span id="algAreaOut">150 m²</span>
                </div>
                <input type="range" class="rk-slider" id="algAreaSlider" min="80" max="300" step="10" value="150">
                <div style="font-size: 11px; color:#64748b; font-weight:600; line-height:1.5;">
                    Kalkulacja dla standardowej wysokości 2,7m, krotności wymiany 0,5 h⁻¹ oraz skrajnej temperatury zewnętrznej -20°C (III strefa).
                </div>
            </div>

            <div class="rk-calc-visual">
                <div class="rk-calc-stats">
                    <div class="rk-stat-box grav">
                        <span class="rk-stat-lbl">Grawitacja (Q_grav)</span>
                        <span class="rk-stat-val" id="outGrav">2.71 kW</span>
                    </div>
                    <div class="rk-stat-box rek">
                        <span class="rk-stat-lbl">Rekuperacja (Q_rek)</span>
                        <span class="rk-stat-val" id="outRek">0.41 kW</span>
                    </div>
                    <div class="rk-stat-box zysk">
                        <span class="rk-stat-lbl">Zysk Mocy (ΔQ)</span>
                        <span class="rk-stat-val" id="outZysk">2.30 kW</span>
                    </div>
                </div>

                <svg class="rk-svg-flow" viewBox="0 0 200 50">
                    <path class="anim-flow-line" d="M 20 15 L 90 15" fill="none" stroke="#f43f5e" stroke-width="4" stroke-linecap="round"/>
                    <path class="anim-flow-line" d="M 180 35 L 110 35" fill="none" stroke="#0ea5e9" stroke-width="4" stroke-linecap="round"/>
                    
                    <rect x="90" y="5" width="20" height="40" fill="none" stroke="#64748b" stroke-width="2" rx="4"/>
                    <path class="anim-heat-exchange" d="M 95 20 L 105 30 M 105 20 L 95 30" stroke="#10b981" stroke-width="2"/>

                    <path class="anim-flow-line" d="M 90 35 L 20 35" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linecap="round"/>
                    <path class="anim-flow-line" d="M 110 15 L 180 15" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domeny bez H2/H3 w komunikacie o błędzie
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-alg-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Intelektualne</div>
                <div style="font-size: 14px; color: #cbd5e1;">Skrypt jest chroniony i przeznaczony wyłącznie dla domeny Projekt-Ogrzewania.pl</div>
            </div>`;
            return;
        }
    }

    // Algorytm
    const slider = document.getElementById('algAreaSlider');
    const outArea = document.getElementById('algAreaOut');
    const outGrav = document.getElementById('outGrav');
    const outRek = document.getElementById('outRek');
    const outZysk = document.getElementById('outZysk');

    // Stałe z artykułu
    const h = 2.7; // wysokość
    const n = 0.5; // wymiana h-1
    const rho = 1.2; // gęstość
    const cp = 1005; // ciepło właściwe
    const deltaT_grav = 40; // 20 - (-20)
    const deltaT_rek = 6;   // 20 - 14

    function calculateValues() {
        const area = parseFloat(slider.value);
        outArea.textContent = area + ' m²';

        // Obliczenia
        const volume = area * h;
        const v_m3_h = volume * n;
        const v_m3_s = v_m3_h / 3600;

        const q_grav_w = v_m3_s * rho * cp * deltaT_grav;
        const q_rek_w = v_m3_s * rho * cp * deltaT_rek;

        const q_grav_kw = (q_grav_w / 1000).toFixed(2);
        const q_rek_kw = (q_rek_w / 1000).toFixed(2);
        const zysk_kw = (q_grav_kw - q_rek_kw).toFixed(2);

        outGrav.textContent = q_grav_kw + ' kW';
        outRek.textContent = q_rek_kw + ' kW';
        outZysk.textContent = zysk_kw + ' kW';
    }

    if(slider) {
        slider.addEventListener('input', calculateValues);
        calculateValues(); // init
    }
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-card: #1e293b;
    --rk-mat-indigo: #6366f1; /* Główny kolor interfejsu */
    --rk-mat-indigo-light: #e0e7ff;
    --rk-mat-teal: #14b8a6;   /* Sukces / Optymalnie */
    --rk-mat-rose: #f43f5e;   /* Ostrzeżenie / Tradycyjnie */
    --rk-mat-amber: #f59e0b;  /* Etapy pośrednie */
    --rk-mat-bg: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
    --rk-mat-muted: #64748b;
}

.rk-mat-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-mat-header {
    background: linear-gradient(135deg, var(--rk-mat-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-mat-indigo);
}

.rk-mat-header::before {
    content: ''; position: absolute; right: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(99, 102, 241, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-mat-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.3);
    color: #c7d2fe;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(165, 180, 252, 0.3);
    position: relative;
    z-index: 2;
}

.rk-mat-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 10px 0;
    position: relative;
    z-index: 2;
}

.rk-mat-title span { color: #818cf8; }

.rk-mat-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Nawigacja Wariantów (Przyciski) */
.rk-mat-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--rk-mat-bg);
    border-bottom: 1px solid var(--rk-mat-border);
    padding: 20px 30px;
    gap: 15px;
}

.rk-mat-btn {
    background: #ffffff;
    border: 2px solid var(--rk-mat-border);
    border-radius: 12px;
    padding: 15px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-mat-btn:hover { border-color: #818cf8; transform: translateY(-3px); }
.rk-mat-btn.active { border-color: var(--rk-mat-indigo); background: var(--rk-mat-indigo-light); box-shadow: 0 10px 20px -5px rgba(99, 102, 241, 0.2); }

.rk-mat-btn-icon {
    width: 40px; height: 40px; border-radius: 10px; background: #f1f5f9; color: var(--rk-mat-muted); display: flex; align-items: center; justify-content: center; transition: 0.3s;
}
.rk-mat-btn.active .rk-mat-btn-icon { background: var(--rk-mat-indigo); color: #ffffff; }

.rk-mat-btn-text { font-size: 12px; font-weight: 800; color: var(--rk-mat-text); line-height: 1.3; }
.rk-mat-btn.active .rk-mat-btn-text { color: var(--rk-mat-indigo); }

/* Matryca Wyników (Kafelki) */
.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-mat-card {
    background: var(--rk-mat-bg);
    border: 1px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}

.rk-mat-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px -10px rgba(0,0,0,0.05); }

/* Dynamiczne Kolory Stanów Kafelka */
.state-danger { border-top: 4px solid var(--rk-mat-rose); }
.state-danger .rk-val { color: var(--rk-mat-rose); }
.state-warning { border-top: 4px solid var(--rk-mat-amber); }
.state-warning .rk-val { color: var(--rk-mat-amber); }
.state-good { border-top: 4px solid var(--rk-mat-indigo); }
.state-good .rk-val { color: var(--rk-mat-indigo); }
.state-perfect { border-top: 4px solid var(--rk-mat-teal); }
.state-perfect .rk-val { color: var(--rk-mat-teal); }

.rk-mat-card-icon { height: 60px; margin-bottom: 15px; display: flex; align-items: center; justify-content: center; }

.rk-mat-card h4 { margin: 0 0 10px 0; font-size: 13px; font-weight: 800; color: var(--rk-mat-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.rk-val { display: block; font-size: 26px; font-weight: 900; line-height: 1.1; margin-bottom: 8px; transition: color 0.4s; }
.rk-desc { display: block; font-size: 13px; color: var(--rk-mat-text); font-weight: 600; min-height: 36px; }

/* Animacje SVG w Kafelkach */
.rk-svg-dyn { width: 100%; height: 100%; overflow: visible; }

/* Temp Anim */
.anim-thermo-bar { transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1), y 0.5s cubic-bezier(0.4, 0, 0.2, 1), fill 0.5s; }
.anim-thermo-bulb { transition: fill 0.5s; }

/* SCOP Anim */
.anim-dial { transform-origin: 50% 90%; transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Loss Anim */
.anim-loss-wave { stroke-dasharray: 4 8; animation: lossWave 1.5s linear infinite; transition: stroke 0.5s; }
@keyframes lossWave { to { stroke-dashoffset: -24; } }

/* Humidity Anim */
.anim-drop-fill { transition: fill 0.5s; }
.anim-drop-pulse { transform-origin: center; animation: dropPulse 2s infinite; }
@keyframes dropPulse { 0% { transform: scale(0.9); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 0; } }

/* Profile Anim */
.anim-gradient-stop1 { transition: stop-color 0.5s; }
.anim-gradient-stop2 { transition: stop-color 0.5s; }

/* Dust Anim */
.anim-particle { transition: transform 1s, opacity 0.5s, fill 0.5s; }

/* Legenda / Podsumowanie na dole */
.rk-mat-footer {
    background: var(--rk-mat-dark);
    padding: 20px 50px;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-mat-footer p {
    margin: 0;
    color: #cbd5e1;
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-grid, .rk-mat-footer { padding: 30px 20px; }
    .rk-mat-nav { grid-template-columns: 1fr 1fr; padding: 20px; }
    .rk-mat-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-mat-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Porównanie parametrów technicznych: Ogrzewanie podłogowe i rekuperacja vs Układy tradycyjne",
    "description": "Zestawienie kluczowych parametrów techniczno-operacyjnych dla różnych wariantów instalacyjnych w budynku 150m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-porownanie",
    "name": "Macierz Parametrów: Systemy Tradycyjne vs Zintegrowane",
    "description": "Zestawienie efektywności energetycznej i mikroklimatycznej dla instalacji w domu jednorodzinnym 150 m2 (WT2021).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie podłogówki i grzejników",
      "SCOP pompy ciepła parametry",
      "strata wentylacyjna grawitacja vs rekuperacja",
      "wilgotność wymiennik entalpiczny",
      "temperatura zasilania ogrzewania"
    ],
    "measurementTechnique": "Wartości obliczeniowe i normatywne dla budynku 150m2 w standardzie WT2021 (OZC, COP, wilgotność względna).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Grzejniki + Grawitacja: Temp. 55-65°C, SCOP 2.8-3.2, Strata 2.71 kW",
        "Podłogówka + Grawitacja: Temp. 35-40°C, SCOP 3.8-4.2, Strata 2.71 kW",
        "Podłogówka + Rekuperacja (Std): Temp. 30-35°C, SCOP 4.6-5.0, Strata 0.41 kW",
        "Podłogówka + Rekuperacja (Entalpiczny): Temp. 28-32°C, SCOP 4.8-5.3, Strata 0.41 kW, Wilgotność 40-50%"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-porownanie",
    "name": "Symulator Efektywności Instalacyjnej",
    "description": "Interaktywna matryca porównująca wskaźniki COP, straty ciepła i wilgotność w zależności od wybranego systemu grzewczo-wentylacyjnego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-mat-app">
    
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Macierz Analityczna
        </div>
        <h2 class="rk-mat-title">Porównanie parametrów technicznych: <span>Systemy tradycyjne vs Zintegrowane</span></h2>
        <p class="rk-mat-desc">Zestawienie kluczowych parametrów techniczno-operacyjnych dla różnych wariantów instalacyjnych w budynku jednorodzinnym o powierzchni 150 m². Zobacz, jak zmienia się efektywność i mikroklimat.</p>
    </div>

    <div class="rk-mat-nav">
        <button class="rk-mat-btn" data-sys="rad-grav">
            <div class="rk-mat-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path><path d="M4 10V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5"></path><line x1="8" y1="3" x2="8" y2="21"></line><line x1="12" y1="3" x2="12" y2="21"></line><line x1="16" y1="3" x2="16" y2="21"></line></svg></div>
            <span class="rk-mat-btn-text">Grzejniki + Grawitacja</span>
        </button>
        <button class="rk-mat-btn" data-sys="ufh-grav">
            <div class="rk-mat-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg></div>
            <span class="rk-mat-btn-text">Podłogówka + Grawitacja</span>
        </button>
        <button class="rk-mat-btn" data-sys="ufh-rec">
            <div class="rk-mat-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v8"></path><path d="M8 12h8"></path><path d="M9.5 9.5l5 5"></path><path d="M14.5 9.5l-5 5"></path></svg></div>
            <span class="rk-mat-btn-text">Podłogówka + Reku (Std)</span>
        </button>
        <button class="rk-mat-btn active" data-sys="ufh-ent">
            <div class="rk-mat-btn-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 4.2c1.33 1.04 2.34 2.58 2.34 4.61 0 3.59-2.91 6.5-6.5 6.5s-6.5-2.91-6.5-6.5c0-2.03 1.01-3.57 2.34-4.61L12 2.69z"></path></svg></div>
            <span class="rk-mat-btn-text">Podłogówka + Reku (Entalp.)</span>
        </button>
    </div>

    <div class="rk-mat-grid">
        
        <div class="rk-mat-card" id="card-temp">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 50 60">
                    <rect x="20" y="5" width="10" height="40" fill="none" stroke="#cbd5e1" stroke-width="2" rx="5"/>
                    <circle cx="25" cy="45" r="8" fill="none" stroke="#cbd5e1" stroke-width="2"/>
                    <circle class="anim-thermo-bulb" id="svg-temp-bulb" cx="25" cy="45" r="5" fill="#f43f5e"/>
                    <rect class="anim-thermo-bar" id="svg-temp-bar" x="23" y="15" width="4" height="30" fill="#f43f5e" rx="2"/>
                </svg>
            </div>
            <h4>Projektowa temp. zasilania</h4>
            <span class="rk-val" id="val-temp">&#8212;</span>
            <span class="rk-desc" id="desc-temp">&#8212;</span>
        </div>

        <div class="rk-mat-card" id="card-scop">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 80 60">
                    <path d="M 10 50 A 30 30 0 0 1 70 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    <path id="svg-scop-arc" d="M 10 50 A 30 30 0 0 1 70 50" fill="none" stroke="#14b8a6" stroke-width="8" stroke-linecap="round" stroke-dasharray="95" stroke-dashoffset="95" style="transition: stroke-dashoffset 0.6s, stroke 0.6s;"/>
                    <line class="anim-dial" id="svg-scop-dial" x1="40" y1="50" x2="20" y2="30" stroke="#334155" stroke-width="3" stroke-linecap="round"/>
                    <circle cx="40" cy="50" r="4" fill="#0f172a"/>
                </svg>
            </div>
            <h4>Średni roczny SCOP pompy</h4>
            <span class="rk-val" id="val-scop">&#8212;</span>
            <span class="rk-desc" id="desc-scop">Współczynnik efektywności</span>
        </div>

        <div class="rk-mat-card" id="card-loss">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 60 60">
                    <path d="M 15 15 L 45 15 L 45 45 L 15 45 Z" fill="none" stroke="#cbd5e1" stroke-width="3"/>
                    <path class="anim-loss-wave" id="svg-loss-wave" d="M 25 30 L 55 30" fill="none" stroke="#f43f5e" stroke-width="4" stroke-linecap="round"/>
                    <path class="anim-loss-wave" style="animation-delay: 0.5s;" id="svg-loss-wave2" d="M 25 40 L 55 40" fill="none" stroke="#f43f5e" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>
            <h4>Projektowa strata wentylacyjna</h4>
            <span class="rk-val" id="val-loss">&#8212;</span>
            <span class="rk-desc" id="desc-loss">Dla domu 150 m²</span>
        </div>

        <div class="rk-mat-card" id="card-hum">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 60 60">
                    <path d="M 30 15 Q 45 35 45 45 A 15 15 0 0 1 15 45 Q 15 35 30 15 Z" fill="none" stroke="#cbd5e1" stroke-width="3"/>
                    <path class="anim-drop-fill" id="svg-hum-fill" d="M 30 25 Q 42 40 42 45 A 12 12 0 0 1 18 45 Q 18 40 30 25 Z" fill="#6366f1"/>
                    <circle class="anim-drop-pulse" cx="30" cy="45" r="3" fill="#ffffff" opacity="0.5"/>
                </svg>
            </div>
            <h4>Wilgotność względna zimą</h4>
            <span class="rk-val" id="val-hum">&#8212;</span>
            <span class="rk-desc" id="desc-hum">&#8212;</span>
        </div>

        <div class="rk-mat-card" id="card-prof">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 50 60">
                    <defs>
                        <linearGradient id="gradProf" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop class="anim-gradient-stop1" id="svg-prof-top" offset="0%" stop-color="#f43f5e" />
                            <stop class="anim-gradient-stop2" id="svg-prof-bot" offset="100%" stop-color="#3b82f6" />
                        </linearGradient>
                    </defs>
                    <path d="M 10 50 L 10 10 L 25 5 L 40 10 L 40 50 Z" fill="url(#gradProf)" stroke="#334155" stroke-width="2"/>
                </svg>
            </div>
            <h4>Profil pionowy temperatury</h4>
            <span class="rk-val" id="val-prof" style="font-size: 18px; line-height:30px;">&#8212;</span>
            <span class="rk-desc" id="desc-prof">&#8212;</span>
        </div>

        <div class="rk-mat-card" id="card-dust">
            <div class="rk-mat-card-icon">
                <svg class="rk-svg-dyn" viewBox="0 0 60 60" id="svg-dust-group">
                    </svg>
            </div>
            <h4>Kurz i alergeny</h4>
            <span class="rk-val" id="val-dust" style="font-size: 20px; line-height:30px;">&#8212;</span>
            <span class="rk-desc" id="desc-dust">&#8212;</span>
        </div>

    </div>

    <div class="rk-mat-footer">
        <p>Powyższe zestawienie jasno pokazuje, dlaczego połączenie wodnego ogrzewania podłogowego z rekuperacją wyposażoną w wymiennik entalpiczny jest aktualnie najbardziej efektywnym modelem instalacyjnym na rynku.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Bezpieczeństwo
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-mat-app');
        if(wrap) wrap.innerHTML = `<div style="padding:30px; background:#0f172a; color:#ef4444; text-align:center;"><b>Naruszenie licencji Projekt-Ogrzewania.pl</b></div>`;
        return;
    }

    const data = {
        'rad-grav': {
            temp: '55 - 65°C', tempDesc: 'Wysoki parametr zasilania', stateTemp: 'state-danger',
            scop: '2,8 - 3,2', stateScop: 'state-danger', scopVal: 20, scopRot: -60,
            loss: '2,71 kW', stateLoss: 'state-danger', lossCol: '#f43f5e',
            hum: '25% - 30%', humDesc: 'Zbyt suche powietrze', stateHum: 'state-danger', humFill: '#f59e0b',
            prof: 'Niekorzystny', profDesc: 'Ciepło gromadzi się pod sufitem', stateProf: 'state-danger', gradTop: '#f43f5e', gradBot: '#3b82f6',
            dust: 'Wysoka konwekcja', dustDesc: 'Ciągłe unoszenie kurzu', stateDust: 'state-danger', dustSpeed: 'fast'
        },
        'ufh-grav': {
            temp: '35 - 40°C', tempDesc: 'Umiarkowany parametr zasilania', stateTemp: 'state-warning',
            scop: '3,8 - 4,2', stateScop: 'state-warning', scopVal: 50, scopRot: -10,
            loss: '2,71 kW', stateLoss: 'state-danger', lossCol: '#f43f5e',
            hum: '30% - 35%', humDesc: 'Podatność na przesuszenia', stateHum: 'state-warning', humFill: '#818cf8',
            prof: 'Stabilny', profDesc: 'Ciepło przy stopach', stateProf: 'state-good', gradTop: '#3b82f6', gradBot: '#f43f5e',
            dust: 'Średnia', dustDesc: 'Zmniejszony ruch powietrza', stateDust: 'state-warning', dustSpeed: 'med'
        },
        'ufh-rec': {
            temp: '30 - 35°C', tempDesc: 'Niski parametr zasilania', stateTemp: 'state-good',
            scop: '4,6 - 5,0', stateScop: 'state-good', scopVal: 80, scopRot: 40,
            loss: '0,41 kW', stateLoss: 'state-perfect', lossCol: '#14b8a6',
            hum: '30% - 40%', humDesc: 'Poprawna wilgotność', stateHum: 'state-good', humFill: '#3b82f6',
            prof: 'Stabilny', profDesc: 'Brak ciągów chłodnych z okien', stateProf: 'state-perfect', gradTop: '#60a5fa', gradBot: '#14b8a6',
            dust: 'Czysto', dustDesc: 'Filtracja w centrali', stateDust: 'state-good', dustSpeed: 'slow'
        },
        'ufh-ent': {
            temp: '28 - 32°C', tempDesc: 'Ultrakiski parametr zasilania', stateTemp: 'state-perfect',
            scop: '4,8 - 5,3', stateScop: 'state-perfect', scopVal: 95, scopRot: 70,
            loss: '0,41 kW', stateLoss: 'state-perfect', lossCol: '#14b8a6',
            hum: '40% - 50%', humDesc: 'Optymalny mikroklimat', stateHum: 'state-perfect', humFill: '#14b8a6',
            prof: 'Idealny', profDesc: 'Brak ruchów konwekcyjnych', stateProf: 'state-perfect', gradTop: '#99f6e4', gradBot: '#14b8a6',
            dust: 'Maksymalna czystość', dustDesc: 'Oczyszczone z PM2.5/PM10', stateDust: 'state-perfect', dustSpeed: 'static'
        }
    };

    const btns = document.querySelectorAll('.rk-mat-btn');
    const cards = {
        temp: document.getElementById('card-temp'),
        scop: document.getElementById('card-scop'),
        loss: document.getElementById('card-loss'),
        hum: document.getElementById('card-hum'),
        prof: document.getElementById('card-prof'),
        dust: document.getElementById('card-dust')
    };

    // SVGs
    const svgTempBar = document.getElementById('svg-temp-bar');
    const svgTempBulb = document.getElementById('svg-temp-bulb');
    const svgScopArc = document.getElementById('svg-scop-arc');
    const svgScopDial = document.getElementById('svg-scop-dial');
    const svgLossWave = document.getElementById('svg-loss-wave');
    const svgLossWave2 = document.getElementById('svg-loss-wave2');
    const svgHumFill = document.getElementById('svg-hum-fill');
    const svgProfTop = document.getElementById('svg-prof-top');
    const svgProfBot = document.getElementById('svg-prof-bot');
    const svgDustGroup = document.getElementById('svg-dust-group');

    // Create Dust Particles
    for(let i=0; i<12; i++) {
        let c = document.createElementNS("http://www.w3.org/2000/svg", "circle");
        c.setAttribute("r", Math.random()*2 + 1);
        c.classList.add("anim-particle");
        svgDustGroup.appendChild(c);
    }

    function updateMatrix(sysId) {
        const d = data[sysId];
        
        // Reset classes
        Object.values(cards).forEach(card => card.className = 'rk-mat-card');

        // Temp
        document.getElementById('val-temp').textContent = d.temp;
        document.getElementById('desc-temp').textContent = d.tempDesc;
        cards.temp.classList.add(d.stateTemp);
        let tH = sysId==='rad-grav'? 35 : sysId==='ufh-grav'? 25 : sysId==='ufh-rec'? 15 : 10;
        let tY = sysId==='rad-grav'? 10 : sysId==='ufh-grav'? 20 : sysId==='ufh-rec'? 30 : 35;
        let tCol = d.stateTemp.includes('danger') ? '#f43f5e' : d.stateTemp.includes('warning') ? '#f59e0b' : '#14b8a6';
        svgTempBar.setAttribute('height', tH);
        svgTempBar.setAttribute('y', tY);
        svgTempBar.setAttribute('fill', tCol);
        svgTempBulb.setAttribute('fill', tCol);

        // SCOP
        document.getElementById('val-scop').textContent = d.scop;
        cards.scop.classList.add(d.stateScop);
        // arc length is 95 (half circle approx)
        let offset = 95 - (95 * (d.scopVal / 100));
        svgScopArc.style.strokeDashoffset = offset;
        svgScopArc.style.stroke = tCol;
        svgScopDial.style.transform = `rotate(${d.scopRot}deg)`;

        // Loss
        document.getElementById('val-loss').textContent = d.loss;
        cards.loss.classList.add(d.stateLoss);
        svgLossWave.style.stroke = d.lossCol;
        svgLossWave2.style.stroke = d.lossCol;

        // Humidity
        document.getElementById('val-hum').textContent = d.hum;
        document.getElementById('desc-hum').textContent = d.humDesc;
        cards.hum.classList.add(d.stateHum);
        svgHumFill.setAttribute('fill', d.humFill);

        // Profile
        document.getElementById('val-prof').textContent = d.prof;
        document.getElementById('desc-prof').textContent = d.profDesc;
        cards.prof.classList.add(d.stateProf);
        svgProfTop.setAttribute('stop-color', d.gradTop);
        svgProfBot.setAttribute('stop-color', d.gradBot);

        // Dust
        document.getElementById('val-dust').textContent = d.dust;
        document.getElementById('desc-dust').textContent = d.dustDesc;
        cards.dust.classList.add(d.stateDust);
        
        let particles = svgDustGroup.querySelectorAll('.anim-particle');
        particles.forEach(p => {
            let px = Math.random() * 40 + 10;
            let py = d.dustSpeed === 'fast' ? Math.random() * 20 + 10 : d.dustSpeed === 'med' ? Math.random() * 20 + 20 : d.dustSpeed === 'slow' ? 50 : 55;
            let pOp = d.dustSpeed === 'static' ? 0 : Math.random() * 0.5 + 0.2;
            let pCol = d.dustSpeed === 'fast' ? '#f43f5e' : '#cbd5e1';
            
            p.setAttribute("cx", px);
            p.setAttribute("cy", py);
            p.setAttribute("opacity", pOp);
            p.setAttribute("fill", pCol);
        });
    }

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            btns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            updateMatrix(btn.getAttribute('data-sys'));
        });
    });

    // Init
    updateMatrix('ufh-ent');
});
</script>



<style>
:root {
    --rk-mc-dark: #0f172a;
    --rk-mc-card: #1e293b;
    --rk-mc-health: #10b981; /* Zieleń dla zdrowia */
    --rk-mc-health-light: #d1fae5;
    --rk-mc-water: #0ea5e9;  /* Niebieski dla wilgotności */
    --rk-mc-water-light: #e0f2fe;
    --rk-mc-dry: #f59e0b;    /* Bursztyn dla suchego powietrza */
    --rk-mc-bg: #f8fafc;
    --rk-mc-border: #e2e8f0;
    --rk-mc-text: #334155;
    --rk-mc-muted: #64748b;
}

.rk-mc-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Header */
.rk-mc-header {
    background: linear-gradient(135deg, var(--rk-mc-dark) 0%, #064e3b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-mc-health);
}

.rk-mc-header::before {
    content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(16, 185, 129, 0.15), transparent 60%);
    pointer-events: none;
}

.rk-mc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(110, 231, 183, 0.3);
    position: relative;
    z-index: 2;
}

.rk-mc-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-mc-title span { color: #34d399; }

.rk-mc-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Kafelki z Danymi (Grid) */
.rk-mc-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 40px 50px 20px;
    background: var(--rk-mc-bg);
}

.rk-mc-stat-card {
    background: #ffffff;
    border: 1px solid var(--rk-mc-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-mc-stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.15);
    border-color: var(--rk-mc-health);
}

.rk-mc-stat-icon {
    width: 48px; height: 48px; border-radius: 12px; background: var(--rk-mc-health-light); color: var(--rk-mc-health); display: flex; align-items: center; justify-content: center; margin-bottom: 15px;
}

.rk-mc-stat-card h4 { margin: 0 0 8px 0; font-size: 22px; font-weight: 900; color: var(--rk-mc-dark); }
.rk-mc-stat-card p { margin: 0; font-size: 13px; color: var(--rk-mc-muted); font-weight: 700; text-transform: uppercase; }

/* Interaktywny Symulator Wilgotności */
.rk-mc-interactive {
    padding: 20px 50px 40px;
    background: var(--rk-mc-bg);
}

.rk-mc-sim-box {
    background: var(--rk-mc-dark);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}

/* Lewa strona - Kontrolki */
.rk-mc-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    position: relative;
    z-index: 2;
}

.rk-mc-control-group {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px;
    border-radius: 16px;
}

.rk-mc-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    margin-bottom: 15px;
}
.rk-mc-label span { color: #ffffff; font-size: 16px; }

/* Toggle */
.rk-mc-toggle {
    display: flex;
    background: rgba(0,0,0,0.3);
    border-radius: 8px;
    padding: 4px;
    position: relative;
}

.rk-mc-toggle-btn {
    flex: 1;
    padding: 10px;
    text-align: center;
    border: none;
    background: transparent;
    color: #94a3b8;
    font-weight: 800;
    font-size: 13px;
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}
.rk-mc-toggle-btn.active { color: #ffffff; }

.rk-mc-toggle-slider {
    position: absolute;
    top: 4px; bottom: 4px; left: 4px;
    width: calc(50% - 4px);
    background: var(--rk-mc-water);
    border-radius: 6px;
    z-index: 1;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
}

.rk-mc-toggle.mode-entalpy .rk-mc-toggle-slider { transform: translateX(100%); background: var(--rk-mc-health); }

/* Slider */
.rk-mc-range {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: rgba(255,255,255,0.2); outline: none;
}
.rk-mc-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: #ffffff; cursor: pointer; border: 3px solid var(--rk-mc-water); transition: 0.2s;
}

/* Prawa strona - Wizualizacja */
.rk-mc-display {
    text-align: center;
    position: relative;
    z-index: 2;
}

.rk-mc-gauge {
    position: relative;
    width: 180px;
    height: 180px;
    margin: 0 auto 20px;
}

.rk-svg-gauge { width: 100%; height: 100%; transform: rotate(-90deg); }
.rk-gauge-bg { fill: none; stroke: rgba(255,255,255,0.1); stroke-width: 12; }
.rk-gauge-val { fill: none; stroke: var(--rk-mc-water); stroke-width: 12; stroke-dasharray: 440; stroke-dashoffset: 440; transition: stroke-dashoffset 0.5s ease-out, stroke 0.5s; stroke-linecap: round; }

.rk-mc-gauge-text {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-mc-gauge-text h5 { margin: 0; font-size: 42px; font-weight: 900; color: #ffffff; line-height: 1; transition: color 0.3s; }
.rk-mc-gauge-text p { margin: 5px 0 0 0; font-size: 12px; color: #94a3b8; font-weight: 700; text-transform: uppercase; }

.rk-mc-status-box {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    transition: all 0.3s;
}

/* Stany Kolorystyczne */
.status-dry .rk-gauge-val { stroke: var(--rk-mc-dry); }
.status-dry .rk-mc-gauge-text h5 { color: var(--rk-mc-dry); }
.status-dry .rk-mc-status-box { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.3); }

.status-good .rk-gauge-val { stroke: var(--rk-mc-health); }
.status-good .rk-mc-gauge-text h5 { color: var(--rk-mc-health); }
.status-good .rk-mc-status-box { background: rgba(16, 185, 129, 0.2); color: #6ee7b7; border: 1px solid rgba(16, 185, 129, 0.3); }

/* Animacje Tła SVG w panelu */
.rk-mc-bg-anim { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; opacity: 0.1; pointer-events: none; }
.anim-drop { transform-origin: center; animation: dropFall 3s infinite; }
.anim-drop:nth-child(2) { animation-delay: 1s; left: 30%; }
.anim-drop:nth-child(3) { animation-delay: 2s; left: 70%; }

@keyframes dropFall { 0% { transform: translateY(-20px) scale(0.5); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateY(100px) scale(1.5); opacity: 0; } }

/* Tekst i Wyjaśnienie */
.rk-mc-expl {
    padding: 0 50px 40px;
    background: var(--rk-mc-bg);
}

.rk-mc-expl-box {
    background: #ffffff;
    border-left: 4px solid var(--rk-mc-health);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mc-expl-box h4 { margin: 0 0 10px 0; font-size: 18px; font-weight: 900; color: var(--rk-mc-dark); display: flex; align-items: center; gap: 10px; }
.rk-mc-expl-box p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--rk-mc-text); }
.rk-mc-expl-box p strong { font-weight: 800; color: var(--rk-mc-dark); }

@media (max-width: 768px) {
    .rk-mc-header, .rk-mc-stats, .rk-mc-interactive, .rk-mc-expl { padding: 30px 20px; }
    .rk-mc-title { font-size: 24px; }
    .rk-mc-stats { grid-template-columns: 1fr; gap: 15px; padding-top: 30px; }
    .rk-mc-sim-box { grid-template-columns: 1fr; gap: 30px; padding: 25px 20px; }
    .rk-mc-gauge { width: 140px; height: 140px; }
    .rk-mc-gauge-text h5 { font-size: 32px; }
    .rk-mc-expl-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-mikroklimat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Jak rekuperacja i ogrzewanie podłogowe wpływają na mikroklimat i zdrowie mieszkańców?",
    "description": "Analiza wpływu wymienników entalpicznych na wilgotność powietrza oraz redukcji kurzu o 70% zgodnie z normą PN-EN 16798-1:2019-06.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-mikroklimat",
    "name": "Analiza parametrów mikroklimatu 2026",
    "description": "Twarde dane dotyczące jakości powietrza w domach z ogrzewaniem podłogowym i rekuperacją, z uwzględnieniem odzysku wilgoci.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wymiennik entalpiczny wilgotność",
      "rekuperacja suche powietrze zimą",
      "PM2.5 PM10 filtry rekuperator",
      "zdrowie ogrzewanie podłogowe",
      "norma PN-EN 16798-1:2019-06"
    ],
    "measurementTechnique": "Badania jakości powietrza i stężenia alergenów w strefie oddychania zgodnie z wytycznymi normy higienicznej PN-EN 16798-1:2019-06.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Redukcja kurzu i zawieszonych alergenów w strefie oddychania o ponad 70%.",
        "Eliminacja zjawiska termicznej konwekcji i przypiekania kurzu.",
        "Utrzymanie wilgotności na poziomie 40-50% dzięki wymiennikom entalpicznym z membraną polimerową."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-mikroklimat",
    "name": "Symulator Mikroklimatu i Wilgotności",
    "description": "Interaktywne narzędzie obrazujące spadek wilgotności względnej zimą w zależności od rodzaju zastosowanego wymiennika (standard vs entalpiczny).",
    "applicationCategory": "HealthApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mc-container" id="rk-mc-app">
    
    <div class="rk-mc-header">
        <div class="rk-mc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Zdrowie i Komfort
        </div>
        <h2 class="rk-mc-title">Wpływ na mikroklimat i <span>zdrowie mieszkańców</span></h2>
        <p class="rk-mc-desc">Ogrzewanie podłogowe i rekuperacja to nie tylko oszczędności, ale przede wszystkim twarde dane dotyczące jakości powietrza, zgodne z rygorystyczną normą higieniczną <strong>PN-EN 16798-1:2019-06</strong>.</p>
    </div>

    <div class="rk-mc-stats">
        <div class="rk-mc-stat-card">
            <div class="rk-mc-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <h4>-70%</h4>
            <p>Stężenia kurzu i alergenów</p>
        </div>
        <div class="rk-mc-stat-card">
            <div class="rk-mc-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            </div>
            <h4>0%</h4>
            <p>Konwekcji termicznej (Brak kaloryferów)</p>
        </div>
        <div class="rk-mc-stat-card">
            <div class="rk-mc-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z"></path><line x1="16" y1="8" x2="2" y2="22"></line><line x1="17.5" y1="15" x2="9" y2="6.5"></line></svg>
            </div>
            <h4>PM2.5</h4>
            <p>Stała filtracja cząstek stałych</p>
        </div>
    </div>

    <div class="rk-mc-interactive">
        <div class="rk-mc-sim-box" id="rkMcSimWrapper">
            
            <svg class="rk-mc-bg-anim" viewBox="0 0 100 100" preserveAspectRatio="none">
                <path class="anim-drop" d="M50 20 Q55 35 60 50 A10 10 0 1 1 40 50 Q45 35 50 20" fill="currentColor"></path>
                <path class="anim-drop" style="left:20%;" d="M20 10 Q25 25 30 40 A10 10 0 1 1 10 40 Q15 25 20 10" fill="currentColor"></path>
                <path class="anim-drop" style="left:80%;" d="M80 30 Q85 45 90 60 A10 10 0 1 1 70 60 Q75 45 80 30" fill="currentColor"></path>
            </svg>

            <div class="rk-mc-controls">
                
                <div class="rk-mc-control-group">
                    <div class="rk-mc-label">Rodzaj wymiennika ciepła</div>
                    <div class="rk-mc-toggle" id="rkMcExchangerToggle">
                        <div class="rk-mc-toggle-slider"></div>
                        <button class="rk-mc-toggle-btn active" data-mode="standard">Standardowy</button>
                        <button class="rk-mc-toggle-btn" data-mode="entalpy">Entalpiczny (Odzysk)</button>
                    </div>
                </div>

                <div class="rk-mc-control-group">
                    <div class="rk-mc-label">Temp. zewnętrzna <span><span id="rkMcTempOut">-5</span>°C</span></div>
                    <input type="range" class="rk-mc-range" id="rkMcTempSlider" min="-15" max="10" step="1" value="-5">
                </div>

            </div>

            <div class="rk-mc-display">
                <div class="rk-mc-gauge">
                    <svg class="rk-svg-gauge" viewBox="0 0 160 160">
                        <circle class="rk-gauge-bg" cx="80" cy="80" r="70"></circle>
                        <circle class="rk-gauge-val" id="rkMcGaugeRing" cx="80" cy="80" r="70"></circle>
                    </svg>
                    <div class="rk-mc-gauge-text">
                        <h5 id="rkMcHumOut">28%</h5>
                        <p>Wilgotność w domu</p>
                    </div>
                </div>
                <div class="rk-mc-status-box status-dry" id="rkMcStatusBox">
                    Zbyt suche powietrze
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mc-expl">
        <div class="rk-mc-expl-box">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Rozwiązanie inżynierskie: Wymiennik entalpiczny
            </h4>
            <p>Problem suchego powietrza w zimie to klasyczna zmora nowoczesnego budownictwa. Inwestorzy montujący tradycyjną rekuperację skarżą się na spadek wilgotności <strong>poniżej 30%</strong>, co wysusza śluzówki i niszczy podłogi.</p>
            <p style="margin-top: 10px;">Rozwiązaniem, które zawsze wdrażam w projektach, jest wymiennik entalpiczny. Posiada on specjalną membranę polimerową, która odzyskuje z wywiewu nie tylko temperaturę, ale też <strong>cząsteczki pary wodnej</strong>, przekazując je do powietrza nawiewanego. Utrzymuje to wilgotność na idealnym, zdrowym poziomie <strong>40-50%</strong> niezależnie od mrozów na zewnątrz.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie domenowe usunięte zgodnie z wytycznymi

    // Wykorzystanie ZMODYFIKOWANYCH i W PEŁNI UNIKALNYCH identyfikatorów
    const toggleContainer = document.getElementById('rkMcExchangerToggle');
    const toggleBtns = toggleContainer.querySelectorAll('.rk-mc-toggle-btn');
    const tempSlider = document.getElementById('rkMcTempSlider');
    const tempOut = document.getElementById('rkMcTempOut');
    const humOut = document.getElementById('rkMcHumOut');
    const gaugeRing = document.getElementById('rkMcGaugeRing');
    const statusBox = document.getElementById('rkMcStatusBox');
    const wrapper = document.getElementById('rkMcSimWrapper');

    let currentMode = 'standard'; 

    // Obliczenia symulatora
    function calculateHumidity() {
        const temp = parseInt(tempSlider.value);
        tempOut.textContent = temp;

        let humidity;

        if (currentMode === 'standard') {
            humidity = Math.round(35 + (temp * 0.8));
            if(humidity < 15) humidity = 15;
            if(humidity > 45) humidity = 45;
        } else {
            humidity = Math.round(45 + (temp * 0.2)); 
            if(humidity < 40) humidity = 40;
            if(humidity > 55) humidity = 55;
        }

        humOut.textContent = humidity + '%';

        // Gauge SVG logic
        const circumference = 440;
        const offset = circumference - (circumference * humidity / 100);
        gaugeRing.style.strokeDashoffset = offset;

        // Colors & Status
        wrapper.classList.remove('status-dry', 'status-good');
        if (humidity < 40) {
            wrapper.classList.add('status-dry');
            statusBox.textContent = 'Zbyt suche powietrze';
            wrapper.style.color = '#f59e0b'; 
        } else {
            wrapper.classList.add('status-good');
            statusBox.textContent = 'Idealny mikroklimat';
            wrapper.style.color = '#10b981'; 
        }
    }

    // Dodanie nasłuchiwaczy zdarzeń
    toggleBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            currentMode = btn.getAttribute('data-mode');
            
            toggleBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            
            toggleContainer.className = `rk-mc-toggle mode-${currentMode}`;
            calculateHumidity();
        });
    });

    if(tempSlider) {
        tempSlider.addEventListener('input', calculateHumidity);
        tempSlider.addEventListener('change', calculateHumidity); // Dodatkowe zabezpieczenie
        calculateHumidity(); 
    }
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-danger: #ef4444; /* Czerwień dla błędów */
    --rk-err-danger-light: #fee2e2;
    --rk-err-success: #10b981; /* Zieleń dla poprawnego stanu */
    --rk-err-success-light: #d1fae5;
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-err-danger);
}

.rk-err-header::before {
    content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(239, 68, 68, 0.15), transparent 60%);
    pointer-events: none;
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(252, 165, 165, 0.3);
}

.rk-err-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 10px 0;
    position: relative;
    z-index: 2;
}

.rk-err-title span { color: #f87171; }

.rk-err-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Interfejs Skanera */
.rk-err-scanner {
    display: flex;
    flex-direction: column;
}

/* Nawigacja Błędów */
.rk-err-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-tab {
    padding: 20px 15px;
    text-align: center;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-err-muted);
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-err-tab:hover { background: #f1f5f9; color: var(--rk-err-text); }
.rk-err-tab.active { border-bottom-color: var(--rk-err-danger); color: var(--rk-err-danger); background: var(--rk-err-danger-light); }

.rk-err-tab-icon {
    width: 32px; height: 32px; border-radius: 50%; background: #e2e8f0; display: flex; align-items: center; justify-content: center; transition: 0.3s;
}
.rk-err-tab.active .rk-err-tab-icon { background: var(--rk-err-danger); color: #ffffff; }

/* Panel Detali */
.rk-err-panel-container {
    padding: 40px 50px;
}

.rk-err-panel {
    display: none;
    animation: fadeIn 0.4s ease-out;
}
.rk-err-panel.active { display: block; }

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Przełącznik Stanu (Zły vs Dobry) */
.rk-err-switch-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}

.rk-err-switch {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 99px;
    padding: 4px;
    position: relative;
}

.rk-err-switch-btn {
    padding: 10px 24px;
    border: none;
    background: transparent;
    border-radius: 99px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-err-muted);
    cursor: pointer;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.rk-err-switch-btn.active { color: #ffffff; }

.rk-err-switch-bg {
    position: absolute;
    top: 4px; left: 4px; bottom: 4px;
    width: calc(50% - 4px);
    border-radius: 99px;
    background: var(--rk-err-danger);
    z-index: 1;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Layout Panelu */
.rk-err-content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.rk-err-text-box h3 { margin: 0 0 15px 0; font-size: 22px; font-weight: 900; color: var(--rk-err-dark); transition: color 0.3s; }
.rk-err-text-box p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--rk-err-text); }
.rk-err-text-box p strong { font-weight: 800; }

/* Wizualizacja SVG */
.rk-err-visual-box {
    background: var(--rk-err-dark);
    border-radius: 16px;
    height: 240px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    border: 2px solid #334155;
    transition: border-color 0.3s;
}

.rk-svg-layer { width: 100%; height: 100%; }

/* --- ANIMACJE DLA STANÓW --- */
/* Zmiana kolorów w zależności od stanu (BŁĄD vs POPRAWNIE) */
.state-good .rk-err-switch-bg { transform: translateX(100%); background: var(--rk-err-success); }
.state-good .rk-err-text-box h3 { color: var(--rk-err-success); }
.state-bad .rk-err-text-box h3 { color: var(--rk-err-danger); }
.state-good .rk-err-visual-box { border-color: rgba(16, 185, 129, 0.5); }
.state-bad .rk-err-visual-box { border-color: rgba(239, 68, 68, 0.5); }

/* Błąd 1: Nawiewniki */
.anim-bad-air { opacity: 0; }
.state-bad .anim-bad-air { opacity: 1; animation: leakAir 1.5s infinite; }
@keyframes leakAir { 0% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-20px); opacity: 0; } }

.anim-good-air { opacity: 0; stroke-dasharray: 5 10; }
.state-good .anim-good-air { opacity: 1; animation: cycleAir 2s linear infinite; }
@keyframes cycleAir { to { stroke-dashoffset: -30; } }

/* Błąd 2: Łazienka (Rozstaw) */
.anim-bad-pipe { stroke: #3b82f6; transition: stroke 0.5s; }
.state-good .anim-bad-pipe { stroke: #ef4444; }

.anim-extra-pipe { opacity: 0; transform: translateY(-10px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.state-good .anim-extra-pipe { opacity: 1; transform: translateY(0); }

.anim-temp-glow { transition: fill 0.5s; }
.state-bad .anim-temp-glow { fill: #93c5fd; }
.state-good .anim-temp-glow { fill: #fca5a5; }

/* Błąd 3: Dylatacje */
.anim-crack { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.5s ease-out; }
.state-bad .anim-crack { stroke-dashoffset: 0; }

.anim-joint { opacity: 0; transform: scaleY(0); transform-origin: bottom; transition: all 0.5s; }
.state-good .anim-joint { opacity: 1; transform: scaleY(1); }

.anim-peszel { stroke-width: 2; transition: stroke-width 0.5s, stroke 0.5s; }
.state-good .anim-peszel { stroke-width: 6; stroke: #94a3b8; stroke-dasharray: 2 2; }

@media (max-width: 768px) {
    .rk-err-header, .rk-err-panel-container { padding: 30px 20px; }
    .rk-err-nav { grid-template-columns: 1fr; }
    .rk-err-tab { border-bottom: none; border-left: 3px solid transparent; flex-direction: row; text-align: left; padding: 15px; }
    .rk-err-tab.active { border-left-color: var(--rk-err-danger); }
    .rk-err-content-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-err-visual-box { height: 180px; }
    .rk-err-switch-btn { padding: 10px 15px; font-size: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy łączeniu podłogówki z wentylacją mechaniczną",
    "description": "Katalog najpoważniejszych patologii instalacyjnych niszczących synergię rekuperacji i ogrzewania podłogowego. Dowiedz się, jak ich unikać.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-bledy",
    "name": "Katalog Błędów Instalacyjnych 2026",
    "description": "Zestawienie krytycznych błędów (nawiewniki okienne, błędny rozstaw w łazienkach, brak dylatacji) wpływających na dekompresję i uszkodzenia systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażowe rekuperacja i podłogówka",
      "nawiewniki okienne przy rekuperacji",
      "rozstaw rur podłogówki w łazience",
      "dylatacje przy ogrzewaniu podłogowym",
      "test szczelności n50"
    ],
    "measurementTechnique": "Weryfikacja szczelności n50 budynku oraz wizualna inspekcja rozstawu rur i profili dylatacyjnych przed wylaniem jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zostawienie nawiewników okiennych: Dekompresja układu i utrata standardu n50.",
        "Rzadki rozstaw rur w łazience (np. 15 cm): Brak możliwości osiągnięcia wymaganych +24°C.",
        "Brak peszli i dylatacji w progach: Pękanie posadzki i mechaniczne uszkodzenie rur PEX/PERT."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-bledy",
    "name": "Symulator Patologii Instalacyjnych",
    "description": "Interaktywny moduł edukacyjny z animacjami SVG obrazującymi skutki błędów wykonawczych i wizualizujący poprawne rozwiązania inżynierskie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Patologie Wykonawcze
        </div>
        <h2 class="rk-err-title">Najczęstsze błędy wykonawcze <span>niszczące synergię</span></h2>
        <p class="rk-err-desc">Jako inżynierowie z wieloletnim stażem regularnie spotykamy na budowach patologie instalacyjne. Poniżej przedstawiam trzy najpoważniejsze błędy, które rujnują współpracę ogrzewania podłogowego z rekuperacją.</p>
    </div>

    <div class="rk-err-scanner">
        
        <div class="rk-err-nav">
            <button class="rk-err-tab active" data-tab="tab-1">
                <div class="rk-err-tab-icon">1</div>
                Nawiewniki i nieszczelności
            </button>
            <button class="rk-err-tab" data-tab="tab-2">
                <div class="rk-err-tab-icon">2</div>
                Złe strefowanie łazienek
            </button>
            <button class="rk-err-tab" data-tab="tab-3">
                <div class="rk-err-tab-icon">3</div>
                Brak dylatacji w progach
            </button>
        </div>

        <div class="rk-err-panel-container state-bad" id="rk-state-container">
            
            <div class="rk-err-switch-wrap">
                <div class="rk-err-switch">
                    <div class="rk-err-switch-bg"></div>
                    <button class="rk-err-switch-btn active" data-state="bad">
                        Wykonawstwo &#8222;na oko&#8221;
                    </button>
                    <button class="rk-err-switch-btn" data-state="good">
                        Standard Inżynierski
                    </button>
                </div>
            </div>

            <div class="rk-err-panel active" id="tab-1">
                <div class="rk-err-content-grid">
                    <div class="rk-err-text-box">
                        <h3 id="txt-title-1">Dekompresja budynku i straty ciepła</h3>
                        <p id="txt-desc-1">Wykonawcy potrafią zostawić nawiewniki w oknach pomimo montażu rekuperacji. Powoduje to <strong>całkowite rozbalansowanie ciśnień w budynku</strong>. Ciepłe powietrze ucieka bezpośrednio na zewnątrz, omijając wymiennik rekuperatora, a dom traci cechy szczelności n50, wymaganej przez standardy domów pasywnych.</p>
                    </div>
                    <div class="rk-err-visual-box">
                        <svg class="rk-svg-layer" viewBox="0 0 100 80">
                            <rect x="20" y="20" width="60" height="50" fill="none" stroke="#64748b" stroke-width="3"/>
                            <line x1="50" y1="20" x2="50" y2="70" stroke="#64748b" stroke-width="2"/>
                            <rect class="anim-bad-air" x="40" y="15" width="20" height="5" fill="#ef4444"/>
                            <path class="anim-bad-air" d="M 45 15 L 40 5 M 55 15 L 60 5" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                            <path class="anim-good-air" d="M 70 30 Q 80 10 90 30 T 70 50" fill="none" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="tab-2">
                <div class="rk-err-content-grid">
                    <div class="rk-err-text-box">
                        <h3 id="txt-title-2">Niedogrzana łazienka</h3>
                        <p id="txt-desc-2">Zgodnie z normą, wymagana jest temperatura wewnętrzna <strong>+24°C</strong>. Jednocześnie rekuperacja stale wywiewa stąd powietrze. Jeśli instalator ułoży rury podłogówki rzadko (np. co 15 cm), jak w salonie, pomieszczenie to nigdy nie osiągnie wymaganej temperatury bez montażu prądożernego grzejnika elektrycznego.</p>
                    </div>
                    <div class="rk-err-visual-box">
                        <svg class="rk-svg-layer" viewBox="0 0 100 80">
                            <rect class="anim-temp-glow" x="10" y="40" width="80" height="30" fill="#93c5fd" opacity="0.3" rx="4"/>
                            <path class="anim-bad-pipe" d="M 20 50 L 80 50" fill="none" stroke-width="4" stroke-linecap="round"/>
                            <path class="anim-extra-pipe anim-bad-pipe" d="M 20 60 L 80 60" fill="none" stroke-width="4" stroke-linecap="round"/>
                            <rect x="85" y="10" width="6" height="20" fill="none" stroke="#94a3b8" stroke-width="1" rx="3"/>
                            <circle class="anim-bad-pipe" cx="88" cy="30" r="4" stroke="none"/>
                            <line class="anim-bad-pipe" x1="88" y1="30" x2="88" y2="15" stroke-width="2" stroke-linecap="round"/>
                        </svg>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="tab-3">
                <div class="rk-err-content-grid">
                    <div class="rk-err-text-box">
                        <h3 id="txt-title-3">Pękające płytki i uszkodzone rury</h3>
                        <p id="txt-desc-3">Podłogówka pracująca pod rekuperacją ma stabilną temperaturę, ale jastrych i tak ulega rozszerzalności liniowej. Brak profilu dylatacyjnego w progach (szczególnie przy powierzchniach >40 m²) powoduje niekontrolowane pęknięcia, które przenoszą się na płytki. Przejście rur bez <strong>peszli ochronnych</strong> to gwarancja ich zgilotynowania.</p>
                    </div>
                    <div class="rk-err-visual-box">
                        <svg class="rk-svg-layer" viewBox="0 0 100 80">
                            <rect x="10" y="30" width="80" height="30" fill="#475569" rx="2"/>
                            <line class="anim-peszel" x1="10" y1="45" x2="90" y2="45" stroke="#3b82f6" stroke-linecap="round"/>
                            <path class="anim-crack" d="M 50 30 L 45 40 L 52 50 L 48 60" fill="none" stroke="#ef4444" stroke-width="2"/>
                            <rect class="anim-joint" x="48" y="25" width="4" height="40" fill="#10b981"/>
                        </svg>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domeny
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-err-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie licencyjne</div>
                <div style="font-size: 14px; color: #cbd5e1;">Skrypt jest przeznaczony wyłącznie do uruchamiania na domenie Projekt-Ogrzewania.pl</div>
            </div>`;
            return;
        }
    }

    // Nawigacja Zakładek
    const tabs = document.querySelectorAll('.rk-err-tab');
    const panels = document.querySelectorAll('.rk-err-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            tab.classList.add('active');
            const target = document.getElementById(tab.getAttribute('data-tab'));
            if(target) target.classList.add('active');
        });
    });

    // Przełącznik Stanu (Złe vs Dobre)
    const switchBtns = document.querySelectorAll('.rk-err-switch-btn');
    const mainContainer = document.getElementById('rk-state-container');

    const contentData = {
        'tab-1': {
            bad: {
                title: 'Dekompresja budynku i straty ciepła',
                desc: 'Wykonawcy potrafią zostawić nawiewniki w oknach pomimo montażu rekuperacji. Powoduje to <strong>całkowite rozbalansowanie ciśnień w budynku</strong>. Ciepłe powietrze ucieka bezpośrednio na zewnątrz, omijając wymiennik rekuperatora, a dom traci cechy szczelności n50, wymaganej przez standardy domów pasywnych.'
            },
            good: {
                title: 'Szczelność n50 i odzysk z wymiennika',
                desc: 'W pełni uszczelniona stolarka okienna (bez nawiewników) gwarantuje, że 100% powietrza przechodzi przez przeciwprądowy wymiennik rekuperatora. Ciśnienia są <strong>idealnie zbalansowane</strong>, a system grzewczy pracuje stabilnie bez konieczności dogrzewania uciekającego powietrza.'
            }
        },
        'tab-2': {
            bad: {
                title: 'Niedogrzana łazienka (+20°C zamiast +24°C)',
                desc: 'Zgodnie z normą, wymagana jest temperatura wewnętrzna <strong>+24°C</strong>. Jednocześnie rekuperacja stale wywiewa stąd powietrze. Jeśli instalator ułoży rury podłogówki rzadko (np. co 15 cm), jak w salonie, pomieszczenie to nigdy nie osiągnie wymaganej temperatury bez montażu prądożernego grzejnika elektrycznego.'
            },
            good: {
                title: 'Zagęszczony rozstaw i strefa wyższych parametrów',
                desc: 'Inżynierski standard to bezwzględne <strong>zagęszczenie rur co 5-7,5 cm</strong> w łazience oraz dedykowany przepływ na rotametrze rozdzielacza. Dzięki temu system kompensuje straty cieplne wywołane wywiewem rekuperatora i zapewnia komfortowe +24°C nawet przy niskiej temperaturze zasilania z pompy ciepła.'
            }
        },
        'tab-3': {
            bad: {
                title: 'Pękające płytki i zgilotynowane rury',
                desc: 'Podłogówka pracująca pod rekuperacją ma stabilną temperaturę, ale jastrych i tak ulega rozszerzalności liniowej. Brak profilu dylatacyjnego w progach (szczególnie przy powierzchniach >40 m²) powoduje niekontrolowane pęknięcia. Przejście rur <strong>bez peszli ochronnych</strong> to gwarancja ich mechanicznego uszkodzenia.'
            },
            good: {
                title: 'Maty dylatacyjne i ochronne peszle',
                desc: 'Zastosowanie elastycznej taśmy dylatacyjnej w progu oddziela fizycznie płyty grzewcze jastrychu. Rury przechodzące przez tę strefę zabezpieczone są <strong>karbowanym peszlem o długości 40-50 cm</strong>, co absorbuje siły ścinające i gwarantuje 100% bezpieczeństwo instalacji oraz płytek.'
            }
        }
    };

    switchBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            const state = btn.getAttribute('data-state');
            
            // Zmiana klas w switchu i kontenerze
            switchBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            
            mainContainer.classList.remove('state-bad', 'state-good');
            mainContainer.classList.add(`state-${state}`);

            // Zmiana tekstów w zależności od aktywnej zakładki i stanu
            ['tab-1', 'tab-2', 'tab-3'].forEach((tabId, index) => {
                const num = index + 1;
                const titleEl = document.getElementById(`txt-title-${num}`);
                const descEl = document.getElementById(`txt-desc-${num}`);
                
                if(titleEl && descEl) {
                    titleEl.innerHTML = contentData[tabId][state].title;
                    descEl.innerHTML = contentData[tabId][state].desc;
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-brand: #8b5cf6; /* Fiolet techniczny / projektowy */
    --rk-proj-brand-light: #ede9fe;
    --rk-proj-accent: #06b6d4; /* Cyjan dla przepływów */
    --rk-proj-alert: #f43f5e; /* Czerwień dla ostrzeżeń/grawitacji */
    --rk-proj-bg: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
}

.rk-proj-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
}

/* Header */
.rk-proj-header {
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #2e1065 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-proj-brand);
}

.rk-proj-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 400px; height: 100%;
    background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(139, 92, 246, 0.05) 10px, rgba(139, 92, 246, 0.05) 20px);
    pointer-events: none;
}

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.3);
    color: #c4b5fd;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(196, 181, 253, 0.3);
}

.rk-proj-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-proj-title span { color: #a78bfa; }

.rk-proj-desc {
    color: #cbd5e1;
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    max-width: 700px;
    position: relative;
    z-index: 2;
}

/* Interaktywny Schemat Algorytmu OZC */
.rk-proj-algo {
    padding: 40px 50px;
    background: var(--rk-proj-bg);
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-algo-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 25px 0;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-algo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 700px;
    margin: 0 auto;
}

.rk-algo-step {
    background: #ffffff;
    border: 2px solid var(--rk-proj-border);
    border-radius: 12px;
    padding: 15px 25px;
    text-align: center;
    font-weight: 800;
    color: var(--rk-proj-dark);
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-algo-step.main { border-color: var(--rk-proj-brand); background: var(--rk-proj-brand-light); color: #4c1d95; }
.rk-algo-step.final { border-color: var(--rk-proj-accent); background: #cffafe; color: #164e63; }

.rk-algo-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    position: relative;
}

/* Linie łączące grid (desktop) */
.rk-algo-split::before {
    content: ''; position: absolute; top: -20px; left: 50%; width: 2px; height: 20px; background: var(--rk-proj-border); transform: translateX(-50%);
}
.rk-algo-split::after {
    content: ''; position: absolute; top: -10px; left: 25%; right: 25%; height: 2px; background: var(--rk-proj-border);
}

.rk-algo-box {
    background: #ffffff;
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: all 0.3s;
}

.rk-algo-box::before {
    content: ''; position: absolute; top: -10px; left: 50%; width: 2px; height: 10px; background: var(--rk-proj-border); transform: translateX(-50%);
}

.rk-algo-box.grav { border-top-color: var(--rk-proj-alert); }
.rk-algo-box.recup { border-top-color: var(--rk-proj-brand); box-shadow: 0 10px 25px -5px rgba(139, 92, 246, 0.15); }

.rk-algo-box h5 { margin: 0 0 15px 0; font-size: 15px; font-weight: 900; color: var(--rk-proj-dark); text-align: center; }
.rk-algo-box.grav h5 { color: var(--rk-proj-alert); }
.rk-algo-box.recup h5 { color: var(--rk-proj-brand); }

.rk-algo-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.rk-algo-list li { font-size: 13px; color: var(--rk-proj-text); display: flex; justify-content: space-between; border-bottom: 1px dashed var(--rk-proj-border); padding-bottom: 5px; }
.rk-algo-list li span { font-weight: 800; color: var(--rk-proj-dark); }

/* Sekcja Parametrów (Interaktywna) */
.rk-proj-params {
    padding: 40px 50px;
}

.rk-param-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-param-card {
    background: var(--rk-proj-bg);
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: default;
}

.rk-param-card:hover {
    background: #ffffff;
    border-color: var(--rk-proj-brand);
    box-shadow: 0 15px 30px -10px rgba(139, 92, 246, 0.2);
    transform: translateY(-5px);
}

.rk-param-icon {
    width: 50px; height: 50px; margin: 0 auto 15px; border-radius: 12px; background: var(--rk-proj-brand-light); color: var(--rk-proj-brand); display: flex; align-items: center; justify-content: center;
}

.rk-param-card h4 { margin: 0 0 10px 0; font-size: 16px; font-weight: 900; color: var(--rk-proj-dark); }
.rk-param-card p { margin: 0; font-size: 13px; color: var(--rk-proj-text); line-height: 1.6; }

/* Dynamiczne Formuły (SVG / CSS) */
.rk-formula-box {
    margin-top: 15px;
    padding: 10px;
    background: var(--rk-proj-dark);
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    color: #38bdf8;
    font-weight: bold;
    display: none;
}
.rk-param-card:hover .rk-formula-box { display: block; animation: fadeIn 0.3s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.rk-link { color: var(--rk-proj-brand); font-weight: 700; text-decoration: none; border-bottom: 2px dashed rgba(139, 92, 246, 0.4); transition: all 0.3s; }
.rk-link:hover { color: #5b21b6; border-bottom-style: solid; }

/* Mocne CTA - Sprzedaż Projektu */
.rk-proj-cta-section {
    background: var(--rk-proj-dark);
    padding: 50px;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,0.1);
    position: relative;
    overflow: hidden;
}

.rk-proj-cta-section::before {
    content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at center, rgba(139, 92, 246, 0.2) 0%, transparent 60%);
    pointer-events: none;
}

.rk-cta-title { color: #ffffff; font-size: 24px; font-weight: 900; margin: 0 0 15px 0; position: relative; z-index: 2; }
.rk-cta-text { color: #cbd5e1; font-size: 16px; line-height: 1.6; max-width: 650px; margin: 0 auto 30px; position: relative; z-index: 2; }
.rk-cta-text strong { color: #c4b5fd; font-weight: 800; }

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(139, 92, 246, 0.5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-massive:hover {
    transform: translateY(-5px) scale(1.02);
    background: #7c3aed;
    box-shadow: 0 20px 35px -5px rgba(139, 92, 246, 0.6);
}

.rk-btn-massive svg { transition: transform 0.3s; }
.rk-btn-massive:hover svg { transform: translateX(5px); }

/* Animacje w kartach */
.anim-pipe-density { stroke-dasharray: 4 8; animation: movePipe 1s linear infinite; }
.rk-param-card:hover .anim-pipe-density { stroke: var(--rk-proj-brand); }
@keyframes movePipe { to { stroke-dashoffset: -12; } }

.anim-glass-shield { transition: all 0.3s; }
.rk-param-card:hover .anim-glass-shield { fill: #06b6d4; opacity: 0.2; }

.anim-pump-rotor { transform-origin: center; transition: all 0.3s; }
.rk-param-card:hover .anim-pump-rotor { animation: spinRotor 2s linear infinite; stroke: var(--rk-proj-brand); }
@keyframes spinRotor { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-algo, .rk-proj-params, .rk-proj-cta-section { padding: 35px 25px; }
    .rk-proj-title { font-size: 24px; }
    .rk-algo-split { grid-template-columns: 1fr; gap: 15px; }
    .rk-algo-split::before, .rk-algo-split::after { display: none; }
    .rk-algo-box { padding: 20px; }
    .rk-param-cards { grid-template-columns: 1fr; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-projekt-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Jak rekuperacja drastycznie zmienia wejściowe dane projektowe do obliczeń hydraulicznych ogrzewania podłogowego",
    "description": "Analiza wpływu odzysku ciepła na bilans OZC (PN-EN 12831). Zobacz, dlaczego zagęszczenie rur i odpowiedni dobór pompy obiegowej obniżają koszty ogrzewania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-projekt",
    "name": "Wytyczne Projektowe: Podłogówka z Rekuperacją",
    "description": "Zestawienie różnic w parametrach projektowych (rozstaw rur, zasilanie, przepływ) pomiędzy układami z wentylacją grawitacyjną a mechaniczną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC z rekuperacją",
      "zagęszczenie rur ogrzewania podłogowego",
      "strefy brzegowe przy oknach HS",
      "dobór pompy obiegowej podłogówka",
      "norma PN-EN 12831 bilans cieplny"
    ],
    "measurementTechnique": "Algorytm obliczeniowy OZC oparty na normie PN-EN 12831 modyfikujący przepływy masowe i zasilanie źródła (np. 30°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg zagęszczenia rur do 10 cm w strefach głównych (30°C zasilanie).",
        "Strefy brzegowe pod dużymi oknami (5-7.5 cm) na 1 metr w głąb.",
        "Redukcja oporów hydraulicznych i dobór energooszczędnej pompy obiegowej (4-20 W)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-projekt",
    "name": "Schemat Algorytmu OZC",
    "description": "Wizualizacja inżynierskiego procesu decyzyjnego, pokazująca, jak odzysk ciepła (85%) modyfikuje moc źródła i parametry pętli grzewczych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"></path></svg>
            Inżynieria Projektowa
        </div>
        <h2 class="rk-proj-title">Jak rekuperacja wpływa na <span>projekt podłogówki?</span></h2>
        <p class="rk-proj-desc">Obecność wentylacji mechanicznej drastycznie zmienia wejściowe dane projektowe do obliczeń hydraulicznych instalacji ogrzewania podłogowego. Profesjonalny inżynier rozpoczyna pracę od wykonania pełnego bilansu cieplnego <strong>OZC wg PN-EN 12831</strong>.</p>
    </div>

    <div class="rk-proj-algo">
        <h3 class="rk-algo-title">Schemat Procesu Obliczeniowego</h3>
        
        <div class="rk-algo-grid">
            <div class="rk-algo-step main">
                [Dane Wejściowe: Kubatura, Izolacja, Szczelność]
            </div>
            
            <div style="text-align:center; color:var(--rk-proj-muted); font-size: 24px; line-height:0.5;">↓</div>
            
            <div class="rk-algo-step">
                [Obliczenia OZC budynku]
            </div>

            <div style="text-align:center; color:var(--rk-proj-muted); font-size: 24px; line-height:0.5;">↓</div>

            <div class="rk-algo-split">
                <div class="rk-algo-box grav">
                    <h5>Wentylacja Grawitacyjna</h5>
                    <ul class="rk-algo-list">
                        <li>Strata cieplna (V): <span>~3,0 kW</span></li>
                        <li>Wymagane zasilanie: <span>40-45°C</span></li>
                        <li>Rozstaw rur: <span>co 15 cm</span></li>
                    </ul>
                </div>

                <div class="rk-algo-box recup">
                    <h5>Rekuperacja (Odzysk 85%)</h5>
                    <ul class="rk-algo-list">
                        <li>Strata cieplna (V): <span>~0,45 kW</span></li>
                        <li>Wymagane zasilanie: <span>30-35°C</span></li>
                        <li>Rozstaw rur: <span>co 10 cm (dla PC)</span></li>
                    </ul>
                </div>
            </div>

            <div style="text-align:center; color:var(--rk-proj-muted); font-size: 24px; margin-top:15px; line-height:0.5;">↓</div>

            <div class="rk-algo-step final">
                [Dobór Mocy Pompy Ciepła i Rozłożenie Pętli]
            </div>
        </div>
    </div>

    <div class="rk-proj-params">
        <h3 class="rk-algo-title" style="margin-bottom: 30px;">Zmiany w parametrach technicznych</h3>
        
        <div class="rk-param-cards">
            
            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg>
                </div>
                <h4>Zmniejszenie rozstawu rur</h4>
                <p>W domach z pompą ciepła i rekuperacją projektuję rozstaw rur ściśle <strong>co 10 cm</strong>. Mimo mniejszych strat, gęstsze ułożenie zwiększa powierzchnię wymiany, co pozwala obniżyć temperaturę zasilania do 30°C i podnosi COP pompy.</p>
                <svg width="100%" height="20" style="margin-top:15px;" viewBox="0 0 100 20">
                    <path class="anim-pipe-density" d="M 0 10 L 100 10" fill="none" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="12" y1="3" x2="12" y2="21"></line><line x1="3" y1="12" x2="21" y2="12"></line></svg>
                </div>
                <h4>Strefy brzegowe przy HS</h4>
                <p>Mimo że rekuperacja eliminuje ciągi chłodu, duże <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/" class="rk-link">okna przesuwne typu HS</a> generują straty promieniowania. Tu niezbędne są <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefy brzegowe</a> na 1m w głąb z rozstawem <strong>5-7,5 cm</strong>.</p>
                <svg width="100%" height="30" style="margin-top:15px;" viewBox="0 0 100 30">
                    <rect x="10" y="5" width="80" height="20" fill="none" stroke="#94a3b8" stroke-width="2"/>
                    <rect class="anim-glass-shield" x="10" y="5" width="20" height="20" fill="none"/>
                </svg>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="3"></circle><line x1="12" y1="2" x2="12" y2="9"></line><line x1="12" y1="15" x2="12" y2="22"></line><line x1="2" y1="12" x2="9" y2="12"></line><line x1="15" y1="12" x2="22" y2="12"></line></svg>
                </div>
                <h4>Dobór pompy obiegowej</h4>
                <p>Mniejsza moc Q pozwala na redukcję przepływu masowego. Dzięki temu dobieramy mniejszą, energooszczędną pompę obiegową (np. klasa <strong>4-20 W</strong>), co eliminuje szumy hydrauliczne w <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-link">rozdzielaczach</a>.</p>
                <div class="rk-formula-box">m = Q / (Cw * ΔT)</div>
                <svg width="100%" height="30" style="margin-top:10px;" viewBox="0 0 100 30">
                    <circle class="anim-pump-rotor" cx="50" cy="15" r="10" fill="none" stroke="#94a3b8" stroke-width="2" stroke-dasharray="4 6"/>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3 class="rk-cta-title">Nie trać pieniędzy na wykonawstwo &#8222;z pamięci&#8221;</h3>
        <p class="rk-cta-text">
            Brak rzetelnych wyliczeń OZC powoduje, że <strong>wykonawca układa za mało rur</strong> i dobiera zbyt mocną, prądożerną pompę ciepła. Zamów profesjonalną dokumentację, a zaoszczędzisz na materiałach instalacyjnych i rachunkach przez najbliższe 30 lat.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
        <div style="margin-top: 20px; font-size: 13px; color: #94a3b8; font-weight: 700;">
            Gwarancja optymalizacji hydraulicznej • Pełny bilans cieplny OZC • Indywidualne strefy
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Domain Check
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-proj-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie antykradzieżowe</div>
                <div style="font-size: 14px; color: #cbd5e1;">Skrypt jest przeznaczony wyłącznie dla domeny Projekt-Ogrzewania.pl</div>
            </div>`;
        }
    }
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-panel: #1e293b;
    --rk-cs-primary: #10b981; /* Szmaragd - optymalne zużycie */
    --rk-cs-primary-light: #d1fae5;
    --rk-cs-alert: #f43f5e; /* Czerwień - skoki zużycia */
    --rk-cs-alert-light: #ffe4e6;
    --rk-cs-accent: #0ea5e9; /* Cyjan - mróz/wentylacja */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-muted: #64748b;
}

.rk-cs-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.3);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #082f49 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cs-accent);
}

.rk-cs-header::before {
    content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at top right, rgba(14, 165, 233, 0.2), transparent 70%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(125, 211, 252, 0.3);
    position: relative;
    z-index: 2;
}

.rk-cs-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    position: relative;
    z-index: 2;
}

.rk-cs-title span { color: #38bdf8; }

/* --- TREŚĆ CASE STUDY --- */
.rk-cs-intro {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-cs-story {
    background: #ffffff;
    border-left: 4px solid var(--rk-cs-accent);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-cs-story p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-cs-text);
}

.rk-cs-story p:last-child { margin: 0; }
.rk-cs-story strong { color: var(--rk-cs-dark); font-weight: 900; }

.rk-cs-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.rk-cs-tag {
    background: var(--rk-cs-bg);
    border: 1px solid var(--rk-cs-border);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-cs-muted);
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-cs-tag svg { color: var(--rk-cs-accent); }

/* --- INTERAKTYWNY SYMULATOR --- */
.rk-cs-dashboard {
    padding: 40px 50px;
    background: var(--rk-cs-dark);
    color: #ffffff;
}

.rk-dash-title {
    font-size: 20px;
    font-weight: 900;
    margin: 0 0 30px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #ffffff;
}

.rk-dash-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Kontrolki (Suwak temperatury) */
.rk-dash-controls {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 25px;
    border-radius: 16px;
}

.rk-ctrl-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-ctrl-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-cs-accent);
    transition: color 0.3s;
}

.rk-slider {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #334155; outline: none; margin-bottom: 15px;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%;
    background: #ffffff; cursor: pointer; border: 5px solid var(--rk-cs-accent); transition: border-color 0.3s, transform 0.2s; box-shadow: 0 0 15px rgba(14, 165, 233, 0.4);
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Kafelki z wynikami */
.rk-dash-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-stat-info h5 { margin: 0 0 5px 0; font-size: 14px; font-weight: 800; color: #e2e8f0; }
.rk-stat-info p { margin: 0; font-size: 12px; color: #94a3b8; }

.rk-stat-val { font-size: 24px; font-weight: 900; }
.rk-stat-card.jan .rk-stat-val { color: var(--rk-cs-primary); }
.rk-stat-card.sas .rk-stat-val { color: var(--rk-cs-alert); }

/* Wizualizacja SVG (Wykres słupkowy dynamiczny) */
.rk-dash-visual {
    background: var(--rk-cs-panel);
    border-radius: 16px;
    padding: 30px;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    border: 1px solid #334155;
}

.rk-vis-title {
    position: absolute; top: 20px; left: 0; width: 100%; text-align: center;
    font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px;
}

.rk-svg-chart { width: 100%; height: 160px; overflow: visible; margin-top: 30px; }

.svg-bar-bg { fill: rgba(255,255,255,0.03); rx: 6; }
.svg-bar-fg { transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1), y 0.4s cubic-bezier(0.4, 0, 0.2, 1); rx: 6; }
.svg-bar-jan { fill: var(--rk-cs-primary); }
.svg-bar-sas { fill: var(--rk-cs-alert); }

/* Animacje pogodowe (Śnieżynki/Słońce dodawane przez JS) */
.anim-snow { animation: fallSnow 3s linear infinite; opacity: 0; transition: opacity 0.5s; fill: #e0f2fe; }
@keyframes fallSnow { 0% { transform: translateY(-10px); opacity: 0; } 50% { opacity: 0.5; } 100% { transform: translateY(40px); opacity: 0; } }

.anim-heat-wave { stroke-dasharray: 4 8; animation: heatRise 1.5s linear infinite; }
@keyframes heatRise { to { stroke-dashoffset: -24; } }

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-intro, .rk-cs-dashboard { padding: 30px 20px; }
    .rk-cs-title { font-size: 24px; }
    .rk-cs-story { padding: 20px; }
    .rk-dash-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-svg-chart { height: 140px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Case Study: Ogrzewanie podłogowe i rekuperacja w praktyce (-18°C)",
    "description": "Analiza rzeczywistego zużycia energii domu 142m2 z rekuperacją podczas fali mrozów. Stabilne 1.1 kW vs skoki w tradycyjnych budynkach.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-casestudy",
    "name": "Case Study: Zużycie energii przy -18°C (Kielce)",
    "description": "Porównanie poboru mocy elektrycznej pompy ciepła w budynku z rekuperacją vs wentylacja grawitacyjna.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie prądu pompa ciepła",
      "rekuperacja oszczędności zima",
      "stabilna moc elektryczna",
      "case study WT2021",
      "spadek zapotrzebowania na moc"
    ],
    "measurementTechnique": "Odczyt poboru mocy elektrycznej ze sterownika pompy ciepła w skrajnych warunkach zimowych dla budynku 142m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Lokalizacja: Kielce, Powierzchnia: 142 m2, Standard: WT2021.",
        "System: Pompa ciepła powietrze-woda + Ogrzewanie podłogowe + Rekuperacja.",
        "Wynik w mrozie -18°C: Pobór stabilny 1,1 kW.",
        "Redukcja zapotrzebowania na moc cieplną: 30-45% względem wentylacji grawitacyjnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-casestudy",
    "name": "Symulator Ekstremów Zimowych",
    "description": "Interaktywny panel ilustrujący zachowanie i skoki poboru mocy systemów grzewczych w zależności od temperatury zewnętrznej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Case Study: Analiza z placu budowy
        </div>
        <h2 class="rk-cs-title">Rekuperacja i ogrzewanie podłogowe <span>– czy to się opłaca?</span></h2>
    </div>

    <div class="rk-cs-intro">
        <div class="rk-cs-story">
            <p>
                <strong>W lutym 2026 roku</strong>, podczas fali mrozów dochodzących do <strong>-18°C</strong>, uruchamialiśmy instalację w domu Pana Jana koło Kielc. Podczas gdy sąsiednie budynki z tradycyjną wentylacją grawitacyjną notowały gwałtowne skoki zużycia energii (chłodzenie przez nawiewniki), ten obiekt zużywał <strong>stabilne 1,1 kW mocy elektrycznej</strong>.
            </p>
            <p>
                Kluczem do tego sukcesu była zsynchronizowana rekuperacja i ogrzewanie podłogowe. System mechanicznej wentylacji nawiewno-wywiewnej z odzyskiem ciepła współpracował tu bezpośrednio z niskotemperaturowym systemem płaszczyznowym. To połączenie fizycznie <strong>redukuje zapotrzebowanie na moc cieplną budynku o 30-45%</strong> i pozwala pompie ciepła osiągnąć najwyższą możliwą sprawność bez efektu niszczącego taktowania.
            </p>
            <div class="rk-cs-tags">
                <div class="rk-cs-tag"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-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> Dom: 142 m² (WT2021)</div>
                <div class="rk-cs-tag"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg> Źródło: Pompa Ciepła Powietrze-Woda</div>
                <div class="rk-cs-tag"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg> Oszczędność: 30-45%</div>
            </div>
        </div>
    </div>

    <div class="rk-cs-dashboard">
        <h3 class="rk-dash-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Symulator Ekstremów Zimowych
        </h3>

        <div class="rk-dash-grid">
            
            <div class="rk-cs-panel-left">
                <div class="rk-dash-controls">
                    <div class="rk-ctrl-header">
                        <span class="rk-ctrl-label">Temperatura zewnętrzna</span>
                        <span class="rk-ctrl-val" id="rkCsTempVal">-18°C</span>
                    </div>
                    <input type="range" id="rkCsTempSlider" class="rk-slider" min="-20" max="10" step="1" value="-18">
                    
                    <div style="font-size:11px; color:#64748b; line-height:1.5;">
                        Zasymuluj uderzenie mrozu. Zobacz, jak brak odzysku ciepła dewastuje pobór prądu przez wychładzanie jastrychu wentylacją grawitacyjną.
                    </div>
                </div>

                <div class="rk-dash-stats" style="margin-top: 20px;">
                    <div class="rk-stat-card jan">
                        <div class="rk-stat-info">
                            <h5>Dom Pana Jana (Rekuperacja)</h5>
                            <p>Zintegrowane systemy, odzysk ciepła</p>
                        </div>
                        <div class="rk-stat-val" id="rkCsValJan">1.1 kW</div>
                    </div>
                    <div class="rk-stat-card sas">
                        <div class="rk-stat-info">
                            <h5>Sąsiedzi (Grawitacja)</h5>
                            <p>Skoki mocy, uderzenia mrozu</p>
                        </div>
                        <div class="rk-stat-val" id="rkCsValSas">3.8 kW</div>
                    </div>
                </div>
            </div>

            <div class="rk-dash-visual">
                <div class="rk-vis-title">Pobór Mocy Elektrycznej (kW)</div>
                
                <svg class="rk-svg-chart" viewBox="0 0 200 160">
                    <rect class="svg-bar-bg" x="30" y="0" width="50" height="160" />
                    <rect class="svg-bar-bg" x="120" y="0" width="50" height="160" />
                    
                    <line x1="10" y1="159" x2="190" y2="159" stroke="#475569" stroke-width="2"/>

                    <rect class="svg-bar-fg svg-bar-jan" id="svgBarJan" x="30" y="110" width="50" height="50" />
                    <rect class="svg-bar-fg svg-bar-sas" id="svgBarSas" x="120" y="20" width="50" height="140" />
                    
                    <text x="55" y="150" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle" id="svgTxtJan">1.1 kW</text>
                    <text x="145" y="150" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle" id="svgTxtSas">3.8 kW</text>
                    
                    <g id="svgSnowGroup">
                        </g>
                </svg>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie zrealizowane przez style inline, bez nagłówków H2/H3
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-cs-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size:18px; font-weight:900; text-transform:uppercase; margin-bottom:10px;">Brak autoryzacji</div>
                <div style="font-size:14px; color:#cbd5e1;">Zasób interaktywny przeznaczony wyłącznie dla domeny Projekt-Ogrzewania.pl</div>
            </div>`;
            return;
        }
    }

    // Logika symulatora
    const slider = document.getElementById('rkCsTempSlider');
    const tempVal = document.getElementById('rkCsTempVal');
    
    const valJan = document.getElementById('rkCsValJan');
    const valSas = document.getElementById('rkCsValSas');
    
    const barJan = document.getElementById('svgBarJan');
    const barSas = document.getElementById('svgBarSas');
    
    const txtJan = document.getElementById('svgTxtJan');
    const txtSas = document.getElementById('svgTxtSas');
    
    const snowGroup = document.getElementById('svgSnowGroup');

    // Generowanie płatków śniegu w tle dla mrozów
    for(let i=0; i<8; i++) {
        let circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
        circle.setAttribute("cx", Math.random() * 200);
        circle.setAttribute("cy", Math.random() * 50);
        circle.setAttribute("r", Math.random() * 2 + 1);
        circle.classList.add("anim-snow");
        circle.style.animationDelay = (Math.random() * 2) + "s";
        snowGroup.appendChild(circle);
    }

    function calculatePower() {
        const temp = parseInt(slider.value);
        tempVal.textContent = temp > 0 ? `+${temp}°C` : `${temp}°C`;

        // Kolorowanie suwaka zaleznie od temperatury
        if(temp < 0) {
            slider.style.setProperty('--rk-cs-accent', '#0ea5e9'); // Mróz (niebieski)
            tempVal.style.color = '#0ea5e9';
            snowGroup.style.display = 'block';
        } else {
            slider.style.setProperty('--rk-cs-accent', '#f97316'); // Ciepło (pomarańcz)
            tempVal.style.color = '#f97316';
            snowGroup.style.display = 'none';
        }

        // Uproszczony model matematyczny zużycia mocy kW
        // Pan Jan (Reku): stabilny wzrost. +10C = 0.3 kW, -18C = 1.1 kW. Liniowo.
        // Zakres temp: 30 stopni (od +10 do -20)
        let ratio = (10 - temp) / 30; // 0 przy +10, 1 przy -20
        
        let powerJan = 0.3 + (ratio * 0.9); // max ok 1.2 kW przy -20
        
        // Sąsiad (Grawitacja): wykładniczy wzrost z powodu wychładzania nawiewnikami i spadku COP
        // +10C = 0.5 kW, -18C = 3.8 kW. 
        let powerSas = 0.5 + (Math.pow(ratio, 1.5) * 3.8); // nieliniowy skok

        // Render tekstów
        let pJ = powerJan.toFixed(1);
        let pS = powerSas.toFixed(1);
        
        valJan.textContent = pJ + ' kW';
        valSas.textContent = pS + ' kW';
        
        txtJan.textContent = pJ + ' kW';
        txtSas.textContent = pS + ' kW';

        // Render słupków (Max height SVG = 160)
        // Maksymalna symulowana moc to ok 4.5 kW. Skalujemy względem 5 kW = 150px wys.
        const maxKw = 5;
        const maxHeight = 140; // max px

        let hJan = (powerJan / maxKw) * maxHeight;
        let hSas = (powerSas / maxKw) * maxHeight;

        // Ustawianie atrybutów (y = dno(159) - wysokosc)
        if(barJan) {
            barJan.setAttribute('height', hJan);
            barJan.setAttribute('y', 159 - hJan);
        }
        if(barSas) {
            barSas.setAttribute('height', hSas);
            barSas.setAttribute('y', 159 - hSas);
        }
    }

    if(slider) {
        slider.addEventListener('input', calculatePower);
        calculatePower(); // Init
    }
});
</script>



<style>
:root {
    --rk-qa-dark: #0f172a;
    --rk-qa-card: #1e293b;
    --rk-qa-teal: #0d9488; /* Główny techniczny morski */
    --rk-qa-teal-light: #ccfbf1;
    --rk-qa-accent: #f59e0b; /* Bursztyn dla ciepła */
    --rk-qa-blue: #3b82f6; /* Niebieski dla zimnego powietrza */
    --rk-qa-bg: #f8fafc;
    --rk-qa-border: #e2e8f0;
    --rk-qa-text: #334155;
    --rk-qa-muted: #64748b;
}

.rk-qa-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(13, 148, 136, 0.15);
    border: 1px solid rgba(13, 148, 136, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-qa-header {
    background: linear-gradient(135deg, var(--rk-qa-dark) 0%, #134e4a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-qa-teal);
}

.rk-qa-header::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 300px;
    height: 100%;
    background: radial-gradient(circle at right, rgba(20, 184, 166, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.rk-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(20, 184, 166, 0.2);
    color: #5eead4;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(94, 234, 212, 0.3);
}

.rk-qa-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    position: relative;
    z-index: 2;
}

.rk-qa-title span { color: #2dd4bf; }

/* Interaktywny Akordeon */
.rk-qa-interactive {
    padding: 40px 50px;
    background: var(--rk-qa-bg);
}

.rk-qa-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-qa-item {
    background: #ffffff;
    border: 1px solid var(--rk-qa-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-qa-item:hover {
    border-color: rgba(13, 148, 136, 0.4);
}

.rk-qa-item.active {
    border-color: var(--rk-qa-teal);
    box-shadow: 0 10px 25px -5px rgba(13, 148, 136, 0.15);
}

/* Przycisk Pytania */
.rk-qa-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-qa-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-qa-question:hover {
    background: var(--rk-qa-teal-light);
}

.rk-qa-item.active .rk-qa-question {
    background: var(--rk-qa-teal);
    color: #ffffff;
}

.rk-qa-icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--rk-qa-teal-light);
    color: var(--rk-qa-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-qa-item.active .rk-qa-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi */
.rk-qa-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-qa-item.active .rk-qa-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-qa-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-qa-content {
    padding: 25px;
    border-top: 1px solid var(--rk-qa-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 35px;
    align-items: center;
}

.rk-qa-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-qa-text);
}

.rk-qa-text strong {
    font-weight: 800;
    color: var(--rk-qa-dark);
}

.rk-link {
    color: var(--rk-qa-teal);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(13, 148, 136, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #0f766e;
    border-bottom-style: solid;
}

/* Wizualizacje SVG */
.rk-qa-visual {
    background: var(--rk-qa-dark);
    border-radius: 14px;
    padding: 15px;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 2px solid #1e293b;
    position: relative;
    overflow: hidden;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Odzysk a Produkcja (Rekuperator vs Rury) */
.anim-recup-wheel { transform-origin: 50px 30px; transition: transform 2s ease-out; }
.rk-qa-item.active .anim-recup-wheel { animation: spinRecup 4s linear infinite; }
@keyframes spinRecup { to { transform: rotate(360deg); } }

.anim-heat-wave { stroke-dasharray: 4 8; animation: radiateUp 1.5s linear infinite; opacity: 0; }
.rk-qa-item.active .anim-heat-wave { opacity: 1; stroke: var(--rk-qa-accent); }
@keyframes radiateUp { to { stroke-dashoffset: -24; } }

/* 2. Otwieranie Okien (Straty) */
.anim-window-open { transform-origin: right; transition: transform 0.6s 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-qa-item.active .anim-window-open { transform: skewY(-15deg) scaleX(0.8); }

.anim-cold-in { opacity: 0; transform: translateX(-10px); transition: all 0.4s 0.6s; }
.rk-qa-item.active .anim-cold-in { opacity: 1; transform: translateX(0); animation: slideCold 1.5s infinite; }
@keyframes slideCold { 0% { transform: translateX(-5px); opacity: 0.5; } 50% { opacity: 1; } 100% { transform: translateX(15px); opacity: 0; } }

.anim-heat-out { opacity: 0; transform: translateX(10px); transition: all 0.4s 0.6s; }
.rk-qa-item.active .anim-heat-out { opacity: 1; transform: translateX(0); animation: slideHeat 1.5s infinite reverse; }
@keyframes slideHeat { 0% { transform: translateX(-15px); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateX(5px); opacity: 0.5; } }

/* 3. Wylewka (Transfer Ciepła) */
.anim-screed-fill { transform: scaleY(0); transform-origin: bottom; transition: transform 0.8s 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-qa-item.active .anim-screed-fill { transform: scaleY(1); }

.anim-fast-arrows { opacity: 0; transition: opacity 0.3s 1s; }
.rk-qa-item.active .anim-fast-arrows { opacity: 1; animation: shootUp 1s ease-out infinite; }
@keyframes shootUp { 0% { transform: translateY(5px); opacity: 0; } 50% { opacity: 1; } 100% { transform: translateY(-10px); opacity: 0; } }

@media (max-width: 768px) {
    .rk-qa-header, .rk-qa-interactive { padding: 30px 20px; }
    .rk-qa-title { font-size: 24px; }
    .rk-qa-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-qa-visual { height: 130px; max-width: 280px; margin: 0 auto; width: 100%; }
    .rk-qa-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o symbiozę rekuperacji i podłogówki",
    "description": "Eksperckie odpowiedzi na pytania dotyczące otwierania okien, wydajności rekuperacji i wyboru wylewki przy ogrzewaniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#faqpage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy rekuperacja ogrzewa dom samodzielnie bez pracy ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, rekuperacja nie jest systemem grzewczym, lecz wentylacyjnym; jej zadaniem jest odzyskiwanie ciepła już wytworzonego, a nie jego produkcja. Urządzenie jedynie przekazuje energię z powietrza wywiewanego do nawiewanego, zmniejszając obciążenie wodnego ogrzewania podłogowego."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy ogrzewaniu podłogowym i rekuperacji można otwierać okna w domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, otwieranie okien jest fizycznie możliwe i bezpieczne dla systemu, jednak w sezonie grzewczym jest całkowicie nieuzasadnione ekonomicznie. Otwarcie okien generuje nagłe straty ciepła i wprowadza nieprzefiltrowane powietrze, co neguje oszczędności generowane przez rekuperator."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką wylewkę wybrać na ogrzewanie podłogowe współpracujące z rekuperacją?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepszym wyborem jest płynna wylewka anhydrytowa, która charakteryzuje się wysokim współczynnikiem przewodzenia ciepła (λ ≈ 1,6 - 1,8 W/(m·K)) oraz mniejszą grubością nad rurkami (min. 35 mm). Zapewnia to szybszy transfer ciepła i lepszą dynamikę sterowania w porównaniu do tradycyjnej wylewki cementowej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-faq",
    "name": "Parametry i zasady pracy: Rekuperacja + Ogrzewanie Podłogowe",
    "description": "Zbiór danych określających zasady współpracy wentylacji mechanicznej z jastrychami grzewczymi oraz wpływ wietrzenia na bilans energetyczny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy rekuperacja grzeje dom",
      "otwieranie okien przy rekuperacji",
      "wylewka anhydrytowa czy betonowa",
      "współczynnik przewodzenia ciepła jastrychu",
      "odzysk ciepła z wentylacji"
    ],
    "measurementTechnique": "Określenie wpływu rekuperacji na obciążenie cieplne oraz porównanie przewodności cieplnej λ jastrychów (1,6 - 1,8 W/mK dla anhydrytu).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rekuperacja obniża moc systemu grzewczego, ale go nie zastępuje.",
        "Otwieranie okien zimą niszczy bilans odzysku energii.",
        "Anhydryt minimalizuje bezwładność cieplną, przyspieszając reakcję układu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy HVAC",
    "description": "Aplikacja w formie interaktywnego akordeonu z animacjami SVG ułatwiającymi zrozumienie procesów odzysku ciepła i wymiany termicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-qa-container" id="rk-qa-app">
    <div class="rk-qa-header">
        <div class="rk-qa-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-qa-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-qa-interactive">
        <div class="rk-qa-list">
            
            <div class="rk-qa-item active">
                <button class="rk-qa-question">
                    <span>Czy rekuperacja ogrzewa dom samodzielnie bez pracy ogrzewania podłogowego?</span>
                    <div class="rk-qa-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                <strong>Nie, rekuperacja nie jest systemem grzewczym</strong>, lecz wentylacyjnym; jej zadaniem jest odzyskiwanie ciepła już wytworzonego, a nie jego produkcja. Urządzenie jedynie przekazuje energię z powietrza wywiewanego do nawiewanego, zmniejszając drastycznie obciążenie <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" class="rk-link">wodnego ogrzewania podłogowego</a>, ale go nie zastępuje.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="35" y="10" width="30" height="30" fill="none" stroke="#64748b" stroke-width="2" rx="4"/>
                                    <path d="M 20 20 L 40 20 M 60 20 L 80 20" stroke="#3b82f6" stroke-width="2" stroke-dasharray="2 2"/>
                                    <path d="M 20 30 L 40 30 M 60 30 L 80 30" stroke="#f59e0b" stroke-width="2" stroke-dasharray="2 2"/>
                                    <circle class="anim-recup-wheel" cx="50" cy="25" r="8" fill="none" stroke="#2dd4bf" stroke-width="2" stroke-dasharray="6 4"/>
                                    
                                    <path d="M 10 60 L 90 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                                    <path class="anim-heat-wave" d="M 20 60 L 20 40 M 50 60 L 50 40 M 80 60 L 80 40" fill="none" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>Czy przy ogrzewaniu podłogowym i rekuperacji można otwierać okna w domu?</span>
                    <div class="rk-qa-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Tak, otwieranie okien jest fizycznie możliwe i bezpieczne dla systemu, jednak <strong>w sezonie grzewczym jest całkowicie nieuzasadnione ekonomicznie</strong>. Otwarcie okien generuje nagłe straty energii cieplnej zgromadzonej w pomieszczeniu i wprowadza z zewnątrz nieprzefiltrowane, brudne powietrze, co całkowicie neguje matematyczne oszczędności generowane przez wymiennik rekuperatora.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 45 10 L 45 60" stroke="#64748b" stroke-width="4"/>
                                    <rect x="40" y="20" width="10" height="30" fill="#1e293b" stroke="#334155" stroke-width="2"/>
                                    <rect class="anim-window-open" x="45" y="20" width="20" height="30" fill="none" stroke="#2dd4bf" stroke-width="2"/>
                                    
                                    <path class="anim-cold-in" d="M 70 30 L 40 30 L 35 25" fill="none" stroke="#3b82f6" stroke-width="2" stroke-linecap="round"/>
                                    <path class="anim-heat-out" d="M 30 40 L 50 40 L 55 45" fill="none" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-qa-item">
                <button class="rk-qa-question">
                    <span>Jaką wylewkę wybrać na ogrzewanie podłogowe współpracujące z rekuperacją?</span>
                    <div class="rk-qa-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-qa-answer-wrapper">
                    <div class="rk-qa-answer-inner">
                        <div class="rk-qa-content">
                            <div class="rk-qa-text">
                                Najlepszym inżynierskim wyborem jest płynna <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-link">wylewka anhydrytowa</a>. Charakteryzuje się ona bardzo wysokim współczynnikiem przewodzenia ciepła <strong>(λ ≈ 1,6 - 1,8 W/(m·K))</strong> oraz pozwala na zastosowanie mniejszej grubości nad rurkami (minimum 35 mm). Zapewnia to błyskawiczny transfer ciepła do otoczenia i zdecydowanie lepszą dynamikę sterowania w porównaniu do tradycyjnej, grubej wylewki cementowej.
                            </div>
                            <div class="rk-qa-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="55" width="80" height="10" fill="#334155"/>
                                    <circle cx="30" cy="50" r="5" fill="#f59e0b"/>
                                    <circle cx="50" cy="50" r="5" fill="#f59e0b"/>
                                    <circle cx="70" cy="50" r="5" fill="#f59e0b"/>
                                    <rect class="anim-screed-fill" x="10" y="30" width="80" height="25" fill="#0d9488" opacity="0.7"/>
                                    <g class="anim-fast-arrows">
                                        <path d="M 30 25 L 30 15 M 27 18 L 30 15 L 33 18" fill="none" stroke="#2dd4bf" stroke-width="2"/>
                                        <path d="M 50 25 L 50 15 M 47 18 L 50 15 L 53 18" fill="none" stroke="#2dd4bf" stroke-width="2"/>
                                        <path d="M 70 25 L 70 15 M 67 18 L 70 15 L 73 18" fill="none" stroke="#2dd4bf" stroke-width="2"/>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Domain Check z blokadą kradzieży (bez H2/H3)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const wrap = document.getElementById('rk-qa-app');
        if(wrap) {
            wrap.innerHTML = `<div style="padding:40px; background:#0f172a; color:#ef4444; text-align:center; font-family:sans-serif; border-radius:24px; border:2px solid #ef4444;">
                <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie licencji i praw autorskich</div>
                <div style="font-size: 14px; color: #cbd5e1;">Skrypt i struktura danych JSON-LD są przeznaczone wyłącznie dla domeny Projekt-Ogrzewania.pl</div>
            </div>`;
            return;
        }
    }

    // Akordeon Logic
    const qaItems = document.querySelectorAll('.rk-qa-item');

    qaItems.forEach(item => {
        const btn = item.querySelector('.rk-qa-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie
            qaItems.forEach(i => i.classList.remove('active'));
            
            // Otwórz kliknięty, jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-panel: #1e293b;
    --rk-exp-heat: #f97316; /* Orange for heating */
    --rk-exp-air: #0ea5e9;  /* Cyan/Blue for air/recuperation */
    --rk-exp-air-light: #e0f2fe;
    --rk-exp-heat-light: #ffedd5;
    --rk-exp-bg: #ffffff;
    --rk-exp-border: #e2e8f0;
    --rk-exp-text: #334155;
    --rk-exp-text-dim: #64748b;
}

.rk-expert-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-exp-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-exp-border);
    overflow: hidden;
}

/* Header */
.rk-expert-header {
    background: linear-gradient(135deg, var(--rk-exp-dark) 0%, #0f172a 100%);
    padding: 45px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    position: relative;
    overflow: hidden;
    border-bottom: 4px solid var(--rk-exp-air);
}

.rk-expert-header::before {
    content: ''; position: absolute; right: 0; top: 0; width: 50%; height: 100%;
    background: radial-gradient(circle at top right, rgba(14, 165, 233, 0.15), transparent 70%);
}

.rk-expert-header::after {
    content: ''; position: absolute; left: 0; bottom: 0; width: 50%; height: 100%;
    background: radial-gradient(circle at bottom left, rgba(249, 115, 22, 0.15), transparent 70%);
}

.rk-exp-avatar {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 3px solid var(--rk-exp-air);
    box-shadow: 0 0 25px rgba(14, 165, 233, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-exp-hcontent {
    position: relative;
    z-index: 2;
}

.rk-exp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-exp-hcontent h2 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 10px 0;
    line-height: 1.2;
}

.rk-exp-hcontent p {
    color: #cbd5e1;
    font-size: 15px;
    margin: 0;
    font-weight: 400;
    line-height: 1.6;
}

/* Tabs & Details Body */
.rk-exp-body {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    background: var(--rk-exp-bg);
}

.rk-exp-tabs {
    padding: 35px;
    border-right: 1px solid var(--rk-exp-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #f8fafc;
}

.rk-exp-tab-btn {
    background: #ffffff;
    border: 1px solid var(--rk-exp-border);
    padding: 20px;
    border-radius: 16px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.rk-exp-tab-btn:hover {
    border-color: var(--rk-exp-air);
    transform: translateX(5px);
}

.rk-exp-tab-btn.active {
    background: var(--rk-exp-air-light);
    border-color: var(--rk-exp-air);
    box-shadow: inset 5px 0 0 var(--rk-exp-air);
}

.rk-exp-icon {
    width: 36px; height: 36px;
    background: #f1f5f9;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-exp-text-dim);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-exp-tab-btn.active .rk-exp-icon {
    background: var(--rk-exp-air);
    color: #ffffff;
}

.rk-exp-tab-btn[data-target="rk-exp-p2"].active { background: var(--rk-exp-heat-light); border-color: var(--rk-exp-heat); box-shadow: inset 5px 0 0 var(--rk-exp-heat); }
.rk-exp-tab-btn[data-target="rk-exp-p2"].active .rk-exp-icon { background: var(--rk-exp-heat); }

.rk-exp-tab-text h3 { margin: 0 0 6px 0; font-size: 16px; font-weight: 800; color: var(--rk-exp-dark); }
.rk-exp-tab-text p { margin: 0; font-size: 13px; color: var(--rk-exp-text-dim); line-height: 1.5; }

/* SEO Long Tail Box */
.rk-exp-seo-box {
    margin-top: 15px;
    padding: 15px;
    background: rgba(14, 165, 233, 0.03);
    border: 1px dashed rgba(14, 165, 233, 0.3);
    border-radius: 12px;
    text-align: center;
    text-decoration: none;
    display: block;
    transition: all 0.3s ease;
}

.rk-exp-seo-box:hover {
    background: rgba(14, 165, 233, 0.08);
    border-color: rgba(14, 165, 233, 0.6);
    transform: translateY(-2px);
}

.rk-exp-seo-box .seo-label {
    display: block;
    font-size: 10px;
    color: var(--rk-exp-text-dim);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-exp-seo-box .seo-phrase {
    display: block;
    font-size: 13px;
    color: var(--rk-exp-dark);
    font-weight: 700;
    line-height: 1.4;
    transition: color 0.3s;
}

.rk-exp-seo-box:hover .seo-phrase {
    color: var(--rk-exp-air);
}

/* Panels */
.rk-exp-details {
    padding: 40px;
    position: relative;
    overflow: hidden;
}

.rk-exp-panel {
    display: none;
}

.rk-exp-panel.active {
    display: flex !important;
    flex-direction: column;
    gap: 25px;
    animation: rkSlideFadeIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes rkSlideFadeIn {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-exp-panel h4 { margin: 0; font-size: 22px; font-weight: 900; color: var(--rk-exp-dark); }
.rk-exp-panel p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--rk-exp-text); }
.rk-exp-link { color: var(--rk-exp-air); font-weight: 800; text-decoration: none; border-bottom: 2px solid transparent; transition: 0.3s; }
.rk-exp-link:hover { border-bottom-color: var(--rk-exp-air); }

.rk-exp-svg-box {
    width: 100%;
    height: 180px;
    background: var(--rk-exp-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}

/* Calculator Section */
.rk-exp-calc {
    background: var(--rk-exp-panel);
    padding: 40px 50px;
    border-top: 1px solid #334155;
    color: #ffffff;
}

.rk-calc-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.rk-calc-top h4 {
    margin: 0; font-size: 20px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 12px;
}

.rk-calc-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-slider-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: rgba(255,255,255,0.03);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-calc-label { font-size: 14px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; align-items: center; }
.rk-calc-label span { color: var(--rk-exp-air); font-size: 24px; font-weight: 900; }

.rk-slider {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #334155; outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 26px; height: 26px; border-radius: 50%;
    background: var(--rk-exp-air); cursor: pointer; border: 4px solid #ffffff; transition: 0.2s; box-shadow: 0 0 10px rgba(14, 165, 233, 0.5);
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.2); }

.rk-calc-outputs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-out-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: 0.3s;
}

.rk-out-card:hover { transform: translateY(-5px); background: rgba(255,255,255,0.08); }
.rk-out-card.highlight { border-color: var(--rk-exp-air); background: rgba(14, 165, 233, 0.1); }
.rk-out-card.highlight-heat { border-color: var(--rk-exp-heat); background: rgba(249, 115, 22, 0.1); }

.rk-out-val { display: block; font-size: 26px; font-weight: 900; color: #ffffff; margin-bottom: 8px; }
.rk-out-card.highlight .rk-out-val { color: var(--rk-exp-air); }
.rk-out-card.highlight-heat .rk-out-val { color: var(--rk-exp-heat); }
.rk-out-lab { display: block; font-size: 12px; color: #94a3b8; text-transform: uppercase; font-weight: 800; line-height: 1.4; }

/* Author & CTA */
.rk-exp-footer {
    background: #f8fafc;
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-top: 1px solid var(--rk-exp-border);
}

.rk-author-block { flex-grow: 1; }
.rk-author-block h4 { margin: 0 0 8px 0; font-size: 18px; font-weight: 900; color: var(--rk-exp-dark); }
.rk-author-block p { margin: 0; font-size: 14px; color: var(--rk-exp-text); line-height: 1.6; }

.rk-socials { display: flex; gap: 15px; margin-top: 15px; }
.rk-socials a { color: var(--rk-exp-air); font-size: 14px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; transition: 0.2s; }
.rk-socials a:hover { color: #0284c7; }

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-exp-heat);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.4);
    transition: all 0.3s;
    white-space: nowrap;
}

.rk-cta-btn:hover { background: #ea580c; transform: translateY(-3px); box-shadow: 0 15px 25px -5px rgba(249, 115, 22, 0.5); }

/* SVG Animations */
.anim-air-flow { stroke-dasharray: 15; animation: dashAir 2s linear infinite; }
@keyframes dashAir { to { stroke-dashoffset: -30; } }

.anim-heat-radiate { transform-origin: center; animation: pulseHeat 2s infinite alternate; }
@keyframes pulseHeat { from { transform: scale(0.95); opacity: 0.7; } to { transform: scale(1.05); opacity: 1; } }

.anim-gear-spin { transform-origin: center; animation: spinGear 6s linear infinite; }
@keyframes spinGear { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
    .rk-expert-header { flex-direction: column; text-align: center; padding: 40px 20px; }
    .rk-exp-body { grid-template-columns: 1fr; }
    .rk-exp-tabs { border-right: none; border-bottom: 1px solid var(--rk-exp-border); padding: 25px 20px; }
    .rk-exp-details { padding: 30px 20px; }
    .rk-calc-layout { grid-template-columns: 1fr; gap: 25px; }
    .rk-exp-calc { padding: 35px 20px; }
    .rk-calc-outputs { grid-template-columns: 1fr; }
    .rk-exp-footer { flex-direction: column; text-align: center; padding: 35px 20px; }
    .rk-socials { justify-content: center; }
    .rk-cta-btn { width: 100%; justify-content: center; }
}
</style>

<!-- JSON-LD Invisible Data -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-expert-summary",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Podsumowanie eksperta: Synergia rekuperacji i ogrzewania podłogowego",
    "description": "Interaktywne podsumowanie i estymator korzyści z połączenia wentylacji mechanicznej z niskotemperaturowym systemem grzewczym. Autor: inż. Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC & CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-synergy",
    "name": "Parametry Synergii Energetycznej 2026",
    "description": "Zestawienie twardych danych określających wzrost sprawności COP oraz redukcję strat cieplnych budynku po integracji rekuperacji z podłogówką.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator oszczędności rekuperacja",
      "koszty ogrzewania podłogowego 2026",
      "obliczenia OZC dom jednorodzinny",
      "sprawność pompy ciepła podłogówka",
      "projekt wentylacji mechanicznej z odzyskiem ciepła"
    ],
    "measurementTechnique": "Szacowanie oparte na normach PN-EN 12831 oraz danych z rzeczywistych realizacji, uwzględniające obniżenie parametru zasilania do 30°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek mocy projektowej (OZC) o około 2.3 kW dla domu 150m2.",
        "Wzrost realnego COP pompy ciepła dzięki obniżeniu zasilania z 45°C na 30°C.",
        "Redukcja rocznych kosztów eksploatacji ogrzewania do 40%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-synergy",
    "name": "Symulator Synergii Instalacyjnej",
    "description": "Interaktywne narzędzie obliczające szacunkowy spadek obciążenia cieplnego oraz roczne oszczędności finansowe na podstawie deklarowanego metrażu budynku.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-container" id="rk-final-summary">
    
    <div class="rk-expert-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-exp-avatar" loading="lazy">
        <div class="rk-exp-hcontent">
            <div class="rk-exp-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Ostateczny werdykt
            </div>
            <h2>Podsumowanie eksperta: Synergia układów</h2>
            <p>Rekuperacja i podłogówka to nie są dwa oddzielne systemy. W nowoczesnym budownictwie to jeden zintegrowany mechanizm termiczny. Poznaj trzy zasady, które chronią Twój portfel przez dekady.</p>
        </div>
    </div>

    <div class="rk-exp-body">
        
        <div class="rk-exp-tabs">
            <button class="rk-exp-tab-btn active" data-target="rk-exp-p1">
                <div class="rk-exp-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                <div class="rk-exp-tab-text">
                    <h3>Stabilność i COP</h3>
                    <p>Maksymalizacja wydajności pompy ciepła</p>
                </div>
            </button>

            <button class="rk-exp-tab-btn" data-target="rk-exp-p2">
                <div class="rk-exp-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-exp-tab-text">
                    <h3>Zysk Finansowy</h3>
                    <p>Dlaczego rachunki spadają o 40%</p>
                </div>
            </button>

            <button class="rk-exp-tab-btn" data-target="rk-exp-p3">
                <div class="rk-exp-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z"></path></svg></div>
                <div class="rk-exp-tab-text">
                    <h3>Wymóg Projektowy</h3>
                    <p>Obliczenia OZC jako fundament</p>
                </div>
            </button>

            <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" class="rk-exp-seo-box">
                <span class="seo-label">Ważny standard inżynierski</span>
                <span class="seo-phrase">Zintegrowany projekt wodnego ogrzewania podłogowego z rekuperacją i pompą ciepła</span>
            </a>
        </div>

        <div class="rk-exp-details">
            
            <div class="rk-exp-panel active" id="rk-exp-p1">
                <h4>Koniec z uderzeniami mrozu</h4>
                <p>Ogrzewanie podłogowe nagrzewa się wolno. Gdy z wentylacji grawitacyjnej uderza powiew mrozu, system nie zdąży zareagować. Rekuperacja dostarcza stałe, przefiltrowane i ciepłe powietrze, pozwalając na pracę pompy ciepła na stabilnym, skrajnie niskim parametrze zasilania zaledwie 30°C.</p>
                <div class="rk-exp-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path class="anim-air-flow" d="M 40 20 Q 100 50 160 20" fill="none" stroke="#0ea5e9" stroke-width="6" stroke-linecap="round"></path>
                        <circle cx="100" cy="80" r="15" fill="none" stroke="#f97316" stroke-width="4" class="anim-heat-radiate"></circle>
                        <circle cx="100" cy="80" r="25" fill="none" stroke="#f97316" stroke-width="2" opacity="0.5" class="anim-heat-radiate" style="animation-delay: 0.5s"></circle>
                    </svg>
                </div>
            </div>

            <div class="rk-exp-panel" id="rk-exp-p2">
                <h4>Fizyka nie kłamie</h4>
                <p>Odzysk ciepła z wymiennika centrali oznacza, że dom o powierzchni 150 m2 potrzebuje w największe mrozy o około 2.3 kW mniej mocy grzewczej. Kupujesz mniejszą <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-exp-link">pompę ciepła</a>, masz rzadsze cykle jej pracy (brak taktowania) i oszczędzasz fizyczne pieniądze każdego dnia sezonu grzewczego.</p>
                <div class="rk-exp-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path d="M 20 80 L 180 80" stroke="#334155" stroke-width="2"></path>
                        <path d="M 20 80 L 80 50 L 130 60 L 180 20" fill="none" stroke="#f97316" stroke-width="4" stroke-linecap="round"></path>
                        <circle cx="180" cy="20" r="6" fill="#f97316"></circle>
                        <text x="175" y="45" fill="#f97316" font-size="12" font-weight="bold">-40% KOSZTÓW</text>
                    </svg>
                </div>
            </div>

            <div class="rk-exp-panel" id="rk-exp-p3">
                <h4>Bez OZC tracisz pieniądze</h4>
                <p>Łącząc te technologie, musisz zagęścić <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-exp-link">rozstaw rur</a> (nawet co 10 cm), dopasować strefy brzegowe i obliczyć precyzyjnie przepływy na rozdzielaczu. Bez <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-exp-link">obliczeń OZC</a> instalator dobierze rury "z pamięci", całkowicie niszcząc potencjał energetyczny układu.</p>
                <div class="rk-exp-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="70" y="30" width="60" height="40" fill="none" stroke="#cbd5e1" stroke-width="2"></rect>
                        <line x1="70" y1="50" x2="130" y2="50" stroke="#cbd5e1" stroke-width="1" stroke-dasharray="4"></line>
                        <line x1="100" y1="30" x2="100" y2="70" stroke="#cbd5e1" stroke-width="1" stroke-dasharray="4"></line>
                        <circle cx="100" cy="50" r="12" fill="none" stroke="#0ea5e9" stroke-width="3" class="anim-gear-spin"></circle>
                        <path d="M 100 38 L 100 34 M 100 62 L 100 66 M 88 50 L 84 50 M 112 50 L 116 50" stroke="#0ea5e9" stroke-width="2" class="anim-gear-spin"></path>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-exp-calc">
        <div class="rk-calc-top">
            <h4>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-exp-air)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Symulator Synergii
            </h4>
        </div>

        <div class="rk-calc-layout">
            
            <div class="rk-calc-slider-box">
                <div class="rk-calc-label">
                    Ogrzewana pow. domu:
                    <span id="synAreaOut">150 m2</span>
                </div>
                <input type="range" class="rk-slider" id="synAreaSlider" min="80" max="300" step="10" value="150">
                <p style="font-size: 11px; color:#94a3b8; margin:0; line-height: 1.4;">
                    *Dane orientacyjne względem układu wentylacji grawitacyjnej i zasilania temp. 45°C.
                </p>
            </div>

            <div class="rk-calc-outputs">
                <div class="rk-out-card highlight">
                    <span class="rk-out-val" id="synPwr">2.3 <span style="font-size:14px;color:#cbd5e1;">kW</span></span>
                    <span class="rk-out-lab">Mniej strat na wentylacji</span>
                </div>
                <div class="rk-out-card highlight-heat">
                    <span class="rk-out-val" id="synCop">+1.5 <span style="font-size:14px;color:#cbd5e1;">COP</span></span>
                    <span class="rk-out-lab">Skok wydajności pompy ciepła</span>
                </div>
                <div class="rk-out-card">
                    <span class="rk-out-val" id="synPln">4000 <span style="font-size:14px;color:#cbd5e1;">PLN</span></span>
                    <span class="rk-out-lab">Szacunkowe roczne oszczędności</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-exp-footer">
        <div class="rk-author-block">
            <h4>O autorze inżynierze</h4>
            <p><strong>Robert Kucharski</strong> – CEO portalu https://projekt-ogrzewania.pl/. Od lat uświadamiam inwestorów, że dom energooszczędny to matematyka, a nie zgadywanka. Zintegrowany projekt i precyzyjne parametry to jedyna gwarancja zwrotu z inwestycji.</p>
            <div class="rk-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg>
                    Facebook
                </a>
            </div>
        </div>
        
        <a href="https://projekt-ogrzewania.pl/kontakt/" class="rk-cta-btn">
            Kontakt ze mną
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Tabs Logic
    const tabs = document.querySelectorAll('.rk-exp-tab-btn');
    const panels = document.querySelectorAll('.rk-exp-panel');

    tabs.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usunięcie class active tylko z dzieci tego komponentu
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            btn.classList.add('active');
            
            // Bezpieczne pobranie po unikalnym ID
            const targetId = btn.getAttribute('data-target');
            const target = document.getElementById(targetId);
            
            if(target) {
                target.classList.add('active');
            }
        });
    });

    // Calculator Logic
    const slider = document.getElementById('synAreaSlider');
    const areaOut = document.getElementById('synAreaOut');
    const pwrOut = document.getElementById('synPwr');
    const plnOut = document.getElementById('synPln');

    function updateSynergy() {
        if(!slider) return;
        const area = parseInt(slider.value);
        if(areaOut) areaOut.textContent = area + ' m2';

        const powerSaved = (area * (2.3 / 150)).toFixed(1);
        const cashSaved = Math.round(area * (4000 / 150));

        if(pwrOut) pwrOut.innerHTML = powerSaved + ' <span style="font-size:14px;color:#cbd5e1;">kW</span>';
        if(plnOut) plnOut.innerHTML = cashSaved + ' <span style="font-size:14px;color:#cbd5e1;">PLN</span>';
    }

    if(slider) {
        slider.addEventListener('input', updateSynergy);
        updateSynergy();
    }
});
</script>



<style>
:root {
    --rk-symb-dark: #0f172a;
    --rk-symb-card: #1e293b;
    --rk-symb-blue: #0ea5e9;
    --rk-symb-cyan: #22d3ee;
    --rk-symb-green: #10b981;
    --rk-symb-red: #ef4444;
    --rk-symb-text: #f8fafc;
    --rk-symb-muted: #94a3b8;
    --rk-symb-bg: #f8fafc;
    --rk-symb-border: #e2e8f0;
}

.rk-symb-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-symb-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-symb-border);
    overflow: hidden;
}

/* Header Section */
.rk-symb-header {
    background: linear-gradient(135deg, var(--rk-symb-dark) 0%, var(--rk-symb-card) 100%);
    padding: 50px 40px 40px;
    text-align: center;
    color: var(--rk-symb-text);
    border-bottom: 4px solid var(--rk-symb-blue);
}

.rk-symb-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
    background: linear-gradient(to right, #ffffff, var(--rk-symb-cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.rk-symb-header h3 {
    font-size: 18px;
    font-weight: 400;
    color: var(--rk-symb-muted);
    margin: 0 auto;
    max-width: 700px;
    line-height: 1.6;
}

/* Interactive App Interface */
.rk-symb-app-ui {
    padding: 40px;
    background: #ffffff;
}

.rk-symb-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-symb-toggle {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 99px;
    border: 1px solid var(--rk-symb-border);
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-symb-toggle-btn {
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    border: none;
    background: transparent;
    border-radius: 99px;
    cursor: pointer;
    color: var(--rk-symb-muted);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-symb-toggle-btn svg { width: 20px; height: 20px; }

.rk-symb-toggle-btn.active[data-mode="project"] { color: #ffffff; }
.rk-symb-toggle-btn.active[data-mode="amateur"] { color: #ffffff; }

.rk-symb-toggle-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    border-radius: 99px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-symb-toggle.state-project .rk-symb-toggle-slider {
    background: var(--rk-symb-blue);
    transform: translateX(0);
    box-shadow: 0 4px 12px rgba(14, 165, 233, 0.3);
}

.rk-symb-toggle.state-amateur .rk-symb-toggle-slider {
    background: var(--rk-symb-red);
    transform: translateX(100%);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Result Dashboard */
.rk-symb-dashboard {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
    align-items: center;
    background: var(--rk-symb-bg);
    border: 1px solid var(--rk-symb-border);
    border-radius: 24px;
    padding: 40px;
    transition: all 0.3s ease;
}

.state-project .rk-symb-dashboard { border-color: rgba(14, 165, 233, 0.3); box-shadow: 0 10px 30px rgba(14, 165, 233, 0.05); }
.state-amateur .rk-symb-dashboard { border-color: rgba(239, 68, 68, 0.3); box-shadow: 0 10px 30px rgba(239, 68, 68, 0.05); }

/* Animation Visualizer */
.rk-symb-visualizer {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.05);
}

.rk-svg-system { width: 60%; height: 60%; }

/* Default / Project Animations */
.anim-wave { transform-origin: center; animation: radiate 3s infinite ease-out; }
.anim-wave:nth-child(2) { animation-delay: 1s; }
.anim-wave:nth-child(3) { animation-delay: 2s; }

@keyframes radiate {
    0% { transform: scale(0.5); opacity: 0.8; stroke-width: 4px; }
    100% { transform: scale(1.5); opacity: 0; stroke-width: 1px; }
}

.anim-flow { stroke-dasharray: 10; animation: flowMove 1s linear infinite; }
@keyframes flowMove { to { stroke-dashoffset: -20; } }

/* Error / Amateur Animations */
.state-amateur .anim-wave { stroke: var(--rk-symb-red); animation: erratic 0.5s infinite; }
.state-amateur .anim-flow { stroke: var(--rk-symb-red); stroke-dasharray: 5 15; animation: flowMove 0.2s linear infinite reverse; }
.state-amateur .icon-center { fill: var(--rk-symb-red); }

@keyframes erratic {
    0% { transform: translate(0,0) scale(1); opacity: 1; }
    25% { transform: translate(-2px, 2px) scale(1.05); opacity: 0.8; }
    50% { transform: translate(2px, -2px) scale(0.95); opacity: 1; }
    75% { transform: translate(-2px, -2px) scale(1.02); opacity: 0.9; }
    100% { transform: translate(0,0) scale(1); opacity: 1; }
}

/* Dashboard Content */
.rk-symb-metrics h4 {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: var(--rk-symb-dark);
}

.rk-metric-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.rk-metric-item svg {
    flex-shrink: 0;
    margin-top: 3px;
}

.state-project .rk-metric-item svg { color: var(--rk-symb-blue); }
.state-amateur .rk-metric-item svg { color: var(--rk-symb-red); }

.rk-metric-item a {
    color: var(--rk-symb-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-symb-savings {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 18px;
    transition: all 0.3s;
}

.state-project .rk-symb-savings { background: #e0f2fe; color: #0284c7; }
.state-amateur .rk-symb-savings { background: #fee2e2; color: #b91c1c; }

/* Text Content Area */
.rk-symb-text-content {
    padding: 0 40px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.rk-symb-text-content p { margin: 0 0 20px 0; }

/* CTA Section */
.rk-symb-cta {
    background: var(--rk-symb-dark);
    padding: 40px;
    text-align: center;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-symb-green);
    color: #ffffff;
    padding: 18px 36px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-solid:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 15px 35px -5px rgba(16, 185, 129, 0.5);
}

.rk-btn-solid svg { transition: transform 0.3s; }
.rk-btn-solid:hover svg { transform: translateX(6px); }

@media (max-width: 768px) {
    .rk-symb-header { padding: 40px 20px; }
    .rk-symb-header h2 { font-size: 26px; }
    .rk-symb-app-ui { padding: 30px 20px; }
    .rk-symb-toggle { flex-direction: column; border-radius: 16px; }
    .rk-symb-toggle-slider { width: calc(100% - 12px); bottom: auto; height: calc(50% - 6px); }
    .rk-symb-toggle.state-project .rk-symb-toggle-slider { transform: translateY(0); }
    .rk-symb-toggle.state-amateur .rk-symb-toggle-slider { transform: translateY(100%); left: 6px; }
    .rk-symb-dashboard { grid-template-columns: 1fr; gap: 30px; padding: 25px; text-align: center; }
    .rk-metric-item { text-align: left; }
    .rk-symb-text-content { padding: 0 20px 30px; }
    .rk-btn-solid { width: 100%; justify-content: center; padding: 16px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Podsumowanie inżynierskie – Klucz do bezawaryjnej inwestycji",
    "description": "Połączenie rekuperacji i ogrzewania podłogowego to standard 2026 roku. Dowiedz się, dlaczego zintegrowany projekt OZC to jedyna droga do 40% oszczędności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-podsumowanie",
    "name": "Analiza efektywności: Rekuperacja + Ogrzewanie Podłogowe 2026",
    "description": "Zestawienie parametrów techniczno-ekonomicznych ukazujące redukcję kosztów eksploatacyjnych dzięki symbiozie układów niskotemperaturowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zintegrowany projekt ogrzewania podłogowego",
      "oszczędności rekuperacja i podłogówka",
      "obliczenia OZC dla rekuperacji",
      "balansowanie hydrauliczne pętli",
      "neutralność emisyjna domów"
    ],
    "measurementTechnique": "Obliczenia obciążenia cieplnego (OZC) z uwzględnieniem odzysku ciepła i niskich temperatur zasilania źródła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zintegrowany Projekt (OZC): Oszczędność do 40%, stabilny profil temperatur, zbalansowane pętle, brak zawilgocenia.",
        "Montaż 'Na oko': Nadmierne zużycie prądu, brak balansu hydraulicznego, problemy z wilgotnością budowlaną."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webapp-podsumowanie",
    "name": "Symulator Standardu Instalacyjnego 2026",
    "description": "Interaktywny panel weryfikujący wpływ profesjonalnego projektu na stabilność i koszty systemu rekuperacji połączonej z podłogówką.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-symb-container" id="rk-symb-app">
    <div class="rk-symb-header">
        <h2>Podsumowanie inżynierskie – Klucz do bezawaryjnej inwestycji</h2>
        <h3>Połączenie rekuperacji i ogrzewania podłogowego to standard determinowany przez fizykę budowli i dążenie do neutralności emisyjnej.</h3>
    </div>

    <div class="rk-symb-app-ui" id="rk-symb-app-root">
        
        <div class="rk-symb-toggle-wrapper">
            <div class="rk-symb-toggle state-project" id="rkSymbToggle">
                <div class="rk-symb-toggle-slider"></div>
                <button class="rk-symb-toggle-btn active" data-mode="project">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Pełny Projekt Inżynierski
                </button>
                <button class="rk-symb-toggle-btn" data-mode="amateur">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    Montaż "Na oko"
                </button>
            </div>
        </div>

        <div class="rk-symb-dashboard" id="rkSymbDashboard">
            
            <div class="rk-symb-visualizer">
                <svg class="rk-svg-system" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="20" fill="none" stroke="currentColor" class="anim-wave"></circle>
                    <circle cx="50" cy="50" r="20" fill="none" stroke="currentColor" class="anim-wave"></circle>
                    <circle cx="50" cy="50" r="20" fill="none" stroke="currentColor" class="anim-wave"></circle>
                    <path d="M10 50 Q 30 20 50 50 T 90 50" fill="none" stroke="currentColor" stroke-width="4" class="anim-flow" stroke-linecap="round"></path>
                    <circle cx="50" cy="50" r="12" fill="var(--rk-symb-blue)" class="icon-center" style="transition: fill 0.3s;"></circle>
                </svg>
            </div>

            <div class="rk-symb-metrics" id="rkSymbMetrics">
                <h4>Pełna Symbioza Systemów</h4>
                <ul class="rk-metric-list">
                    <li class="rk-metric-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <span>Rekuperacja stabilizuje profil temperatur wewnątrz obiektu, usuwając konieczność gwałtownych odpowiedzi posadzki.</span>
                    </li>
                    <li class="rk-metric-item">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <span>Instalacja zaplanowana na bazie szczegółowych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> maksymalnie wykorzystuje sprawność źródeł energii.</span>
                    </li>
                </ul>
                <div class="rk-symb-savings">Do 40% Oszczędności Eksploatacyjnej</div>
            </div>

        </div>
    </div>

    <div class="rk-symb-text-content">
        <p>Warunkiem bezwzględnym osiągnięcia opisywanych oszczędności na poziomie 40% jest wykonanie zintegrowanego, wielobranżowego <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projektu instalacyjnego</a> opartego na rzeczywistych parametrach. Systemy te działają w pełnej symbiozie tylko wtedy, gdy są do siebie idealnie dopasowane kalibrażem rur i przepływami powierza.</p>
        <p>Próby montażu tych systemów „na oko” przez przypadkowe ekipy wykonawcze zawsze kończą się problemami z hydraulicznym zbalansowaniem pętli, zawilgoceniem budowlanym lub po prostu nadmiernym zużyciem drogiej energii elektrycznej.</p>
    </div>

    <div class="rk-symb-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            Przeczytaj więcej poradników na naszym blogu.
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
        <div style="margin-top: 15px; color: #94a3b8; font-size: 14px;">To jedyna droga do idealnego komfortu i minimalnych rachunków przez dekady.</div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-symb-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛑</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny i struktura danych JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto nieautoryzowaną próbę użycia zasobów.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Interfejsu (Symulator)
    const toggleContainer = document.getElementById('rkSymbToggle');
    const dashboard = document.getElementById('rkSymbDashboard');
    const metricsContainer = document.getElementById('rkSymbMetrics');
    const btns = toggleContainer.querySelectorAll('.rk-symb-toggle-btn');

    const contentData = {
        project: {
            title: "Pełna Symbioza Systemów",
            icon: `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>`,
            points: [
                `Rekuperacja stabilizuje profil temperatur wewnątrz obiektu, usuwając konieczność gwałtownych odpowiedzi posadzki.`,
                `Instalacja zaplanowana na bazie szczegółowych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> maksymalnie wykorzystuje sprawność źródeł energii.`
            ],
            savings: "Do 40% Oszczędności Eksploatacyjnej"
        },
        amateur: {
            title: "Kosztowny Chaos Instalacyjny",
            icon: `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>`,
            points: [
                `Brak synchronizacji prowadzi do hydraulicznego niezbalansowania pętli i poważnych problemów z zawilgoceniem.`,
                `Próby montażu bez dokumentacji zmuszają pompę ciepła do ciągłego taktowania, drastycznie zawyżając zużycie energii.`
            ],
            savings: "Ryzyko Ciągłych Awarii Systemu"
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const mode = this.getAttribute('data-mode');
            
            // Update classes
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            toggleContainer.className = `rk-symb-toggle state-${mode}`;
            dashboard.className = `rk-symb-dashboard state-${mode}`;
            
            // Update Content
            const data = contentData[mode];
            metricsContainer.innerHTML = `
                <h4 style="color: ${mode === 'project' ? 'var(--rk-symb-dark)' : 'var(--rk-symb-red)'}">${data.title}</h4>
                <ul class="rk-metric-list">
                    <li class="rk-metric-item">
                        ${data.icon}
                        <span>${data.points[0]}</span>
                    </li>
                    <li class="rk-metric-item">
                        ${data.icon}
                        <span>${data.points[1]}</span>
                    </li>
                </ul>
                <div class="rk-symb-savings">${data.savings}</div>
            `;
        });
    });
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
}

.download-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--dl-white);
    border-radius: 24px;
    border: 1px solid var(--dl-border);
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCJI */
.dl-header {
    background: linear-gradient(135deg, var(--dl-primary) 0%, #082f49 100%);
    padding: 40px 50px;
    color: var(--dl-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--dl-accent);
}

.dl-header-content { position: relative; z-index: 2; max-width: 65%; }

.dl-badge {
    display: inline-block;
    background: rgba(14, 165, 233, 0.2);
    border: 1px solid rgba(14, 165, 233, 0.3);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.dl-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* WIZUALIZACJA PDF / IKONA */
.dl-header-visual {
    position: relative;
    z-index: 2;
}

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

@keyframes floatIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-10px); }
}

/* GŁÓWNY WORKSPACE */
.dl-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-white);
}

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s, box-shadow 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
    box-shadow: 0 15px 30px -10px rgba(14, 165, 233, 0.2);
    border-color: var(--dl-accent);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.dl-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 700;
    color: var(--dl-text);
}

.dl-check-svg {
    width: 24px;
    height: 24px;
    color: var(--dl-accent);
    flex-shrink: 0;
}

/* PRZYCISK POBIERANIA */
.dl-main-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-accent);
    color: var(--dl-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
}

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
}

.dl-main-btn span { font-size: 20px; }

/* STOPKA MODUŁU */
.dl-footer {
    padding: 20px 50px;
    background: var(--dl-bg);
    border-top: 1px solid var(--dl-border);
    font-size: 13px;
    color: var(--dl-muted);
    text-align: center;
}

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px dotted var(--dl-accent-dark);
    transition: all 0.3s;
}

.dl-footer a:hover {
    border-bottom-style: solid;
}

@media (max-width: 800px) {
    .dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .dl-header-content { max-width: 100%; margin-bottom: 25px; }
    .dl-workspace { flex-direction: column; padding: 30px 20px; }
    .dl-preview-box { margin-bottom: 20px; }
    .dl-footer { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
    },
    "headline": "Rekuperacja i ogrzewanie podłogowe – czy to się opłaca? (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie kosztów, parametrów COP i algorytmów obliczeniowych dla układu podłogówki z wentylacją mechaniczną.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rekuperacja-i-ogrzewanie-podlogowe-–-czy-to-sie-oplaca.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-28",
    "dateModified": "2026-05-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#dataset-infografika",
    "name": "Zestawienie efektywności: Rekuperacja + Ogrzewanie Podłogowe",
    "description": "Zbiór danych określający oszczędności eksploatacyjne, optymalne temperatury zasilania oraz skutki błędów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika rekuperacja i podłogówka",
      "koszty ogrzewania podłogowego PDF",
      "algorytm strat wentylacyjnych OZC",
      "porównanie COP pompy ciepła",
      "błędy instalacyjne HVAC schemat"
    ],
    "measurementTechnique": "Synteza normy PN-EN 12831-1 i analizy rocznych kosztów eksploatacji w formie graficznej.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Materiały referencyjne i instruktażowe dla inwestorów"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#download-app",
    "name": "Centrum Pobierania Wiedzy: Rekuperacja i Podłogówka",
    "description": "Interaktywny moduł umożliwiający szybki podgląd i pobranie kompletnej infografiki analitycznej w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3"
  }
]
</script>

<div class="download-hub-container" id="app-recup-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały</div>
            <h2>Pobierz Podsumowanie Inżynierskie</h2>
            <p>Zabierz pigułkę wiedzy ze sobą. Algorytm OZC, zestawienie kosztów eksploatacji i wytyczne projektowe w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rekuperacja-i-ogrzewanie-podlogowe-–-czy-to-sie-oplaca.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rekuperacja-i-ogrzewanie-podlogowe-–-czy-to-sie-oplaca.webp" alt="Infografika - Rekuperacja i ogrzewanie podłogowe - czy to się opłaca" class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.7); color:white; padding:8px 14px; border-radius:8px; font-size:12px; font-weight:800; backdrop-filter: blur(4px);">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Porównanie kosztów i parametru SCOP
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Krokowy algorytm strat wentylacyjnych
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Checklista najczęstszych błędów wykonawczych
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Format przygotowany do wydruku (A4)
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rekuperacja-i-ogrzewanie-podlogowe-–-czy-to-sie-oplaca.pdf" class="dl-main-btn" target="_blank">
                <span>📥</span> POBIERZ INFOGRAFIKĘ (PDF)
            </a>
            
            <p style="margin-top: 25px; font-size: 13px; color: var(--dl-muted); line-height: 1.6;">
                Potrzebujesz precyzyjnych obliczeń OZC dla swojego domu? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki</a> z profesjonalnym doborem źródła ciepła.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie dozwolone z zachowaniem linku do źródła.
    </div>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego z pompą ciepła.</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 09:42:12 +0000</pubDate>
				<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[budownictwo nowoczesne]]></category>
		<category><![CDATA[chłodzenie płaszczyznowe]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje hvac]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[niskie parametry zasilania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3414</guid>

					<description><![CDATA[<p>Wybór systemu grzewczego to jedna z najważniejszych decyzji podczas budowy nowoczesnego domu. Samo urządzenie to jednak tylko połowa sukcesu. Aby instalacja była naprawdę energooszczędna, niezbędny jest rzetelny i precyzyjnie wykonany projekt ogrzewania podłogowego z pompą ciepła, który połączy fizykę budowli z charakterystyką pracy inwertera. W tym artykule wchodzimy głęboko w techniczne aspekty synergii systemów niskotemperaturowych. Analizujemy wpływ temperatury zasilania na współczynnik COP, wyjaśniamy znaczenie bezwładności jastrychu dla żywotności sprężarki oraz podpowiadamy, jak uniknąć błędów hydraulicznych, które mogą drastycznie podnieść Twoje rachunki za prąd. To obowiązkowa lektura dla każdego świadomego inwestora.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-primary: #06b6d4; /* Cyjan/Teal - idealny do tematów pomp ciepła */
    --rk-intro-primary-glow: rgba(6, 182, 212, 0.4);
    --rk-intro-success: #10b981;
    --rk-intro-danger: #f43f5e;
    --rk-intro-text: #e2e8f0;
    --rk-intro-muted: #94a3b8;
    --rk-intro-bg: #ffffff;
}

.rk-intro-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid #e2e8f0;
    overflow: hidden;
}

/* Sekcja Wstępu - Ciemny motyw dla kontrastu */
.rk-intro-hero {
    background: linear-gradient(145deg, var(--rk-intro-dark), var(--rk-intro-card));
    padding: 50px 45px;
    color: #ffffff;
    position: relative;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.15);
    color: var(--rk-intro-primary);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(6, 182, 212, 0.3);
}

.rk-intro-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-intro-title span {
    color: var(--rk-intro-primary);
}

.rk-intro-text-block {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-intro-text);
}

.rk-intro-text-block p {
    margin: 0 0 15px 0;
}

.rk-intro-text-block strong {
    color: #ffffff;
    font-weight: 800;
}

.rk-intro-text-block a {
    color: var(--rk-intro-primary);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--rk-intro-primary);
    transition: all 0.3s;
}

.rk-intro-text-block a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

/* Interaktywny Dashboard */
.rk-intro-dashboard {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-intro-dash-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
    gap: 20px;
}

.rk-intro-dash-title h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-dash-title p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-intro-muted);
}

/* Przełącznik (Toggle) */
.rk-toggle-wrapper {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 4px;
    position: relative;
}

.rk-toggle-btn {
    padding: 10px 20px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-muted);
    cursor: pointer;
    border-radius: 999px;
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}

.rk-toggle-btn.active {
    color: #ffffff;
}

.rk-toggle-pill {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    background: var(--rk-intro-danger);
    border-radius: 999px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Wskaźniki Grid */
.rk-gauge-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-gauge-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-gauge-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.rk-gauge-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-gauge-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.4s;
}

/* SVG Animations */
.rk-svg-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px auto;
}

.svg-rotor {
    transform-origin: center;
}

/* State: Bad (No Project) */
.state-bad .svg-rotor {
    animation: spin-erratic 0.8s infinite;
    stroke: var(--rk-intro-danger);
}
.state-bad .val-cop { color: var(--rk-intro-danger); }
.state-bad .val-bill { color: var(--rk-intro-danger); }

/* State: Good (Project) */
.state-good .svg-rotor {
    animation: spin-smooth 3s linear infinite;
    stroke: var(--rk-intro-success);
}
.state-good .val-cop { color: var(--rk-intro-success); }
.state-good .val-bill { color: var(--rk-intro-success); }

@keyframes spin-smooth {
    100% { transform: rotate(360deg); }
}

@keyframes spin-erratic {
    0% { transform: rotate(0deg); }
    30% { transform: rotate(120deg); }
    50% { transform: rotate(100deg); }
    80% { transform: rotate(280deg); }
    100% { transform: rotate(360deg); }
}

/* Wskaźnik Łukowy (Gauge) SVG */
.gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 8;
    stroke-linecap: round;
}
.gauge-fill {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s;
}

@media (max-width: 768px) {
    .rk-intro-hero, .rk-intro-dashboard { padding: 35px 25px; }
    .rk-gauge-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-dash-header { flex-direction: column; align-items: flex-start; }
    .rk-toggle-wrapper { width: 100%; display: flex; }
    .rk-toggle-btn { flex: 1; text-align: center; padding: 12px 10px; font-size: 13px; }
    .rk-intro-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Wstęp – Synergia Pompy Ciepła i Ogrzewania Podłogowego",
    "description": "Kluczowy dokument techniczny definiujący synergię między źródłem ciepła a hydrauliką. Brak obliczeń to drastyczny spadek COP i taktowanie sprężarki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-wstep",
    "name": "Wpływ braku projektu na parametry pracy pompy ciepła",
    "description": "Dane wyjściowe pokazujące spadek współczynnika efektywności (COP) oraz wzrost kosztów operacyjnych przy braku optymalizacji hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik COP pompy ciepła",
      "taktowanie sprężarki",
      "zużycie prądu przez pompę ciepła",
      "optymalizacja hydrauliki instalacji",
      "projekt ogrzewania podłogowego z pompą ciepła"
    ],
    "measurementTechnique": "Porównanie deklarowanego wskaźnika COP pompy inwerterowej z rzeczywistym poborem prądu przy błędnie ułożonych pętlach i braku zładu wodnego (taktowanie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalizacja (Z Projektem): COP 4.5 - 5.0, płynna praca inwertera.",
        "Błąd wykonawczy (Bez Projektu): Spadek COP do 3.0, rachunki wyższe o 35%, taktowanie niszczące sprężarkę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-wstep",
    "name": "Symulator Taktowania i COP",
    "description": "Interaktywne narzędzie przełącznikowe (toggle) pokazujące wizualną różnicę w żywotności sprężarki i wartości COP w zależności od wykonania inżynieryjnego projektu hydraulicznego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-hero">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Wprowadzenie Techniczne
        </div>
        <h2 class="rk-intro-title">Osiągnij <span>Synergię</span> Źródła Ciepła i Podłogi</h2>
        
        <div class="rk-intro-text-block">
            <p>
                <strong>Projekt ogrzewania podłogowego z pompą ciepła</strong> to kluczowy dokument techniczny, który definiuje synergię między niskotemperaturowym źródłem ciepła a płaszczyznowym układem oddawania energii.
            </p>
            <p>
                Prawidłowo wykonany projekt optymalizuje hydraulikę instalacji, ustalając rozstaw rur, <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">przepływy masowe oraz nastawy zaworów</a>, co pozwala na osiągnięcie maksymalnego współczynnika <strong>COP na poziomie 4,5–5,0</strong>. 
            </p>
            <p>
                Ignorowanie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń inżynieryjnych (OZC)</a> w <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">systemach z pompą ciepła</a> prowadzi do drastycznego wzrostu rachunków za prąd (nawet o <strong>35%</strong>) oraz przedwczesnego zużycia sprężarki wskutek tzw. <strong>taktowania</strong>.
            </p>
        </div>
    </div>

    <div class="rk-intro-dashboard state-bad" id="rkDashState">
        <div class="rk-intro-dash-header">
            <div class="rk-intro-dash-title">
                <h3>Symulacja Pracy Sprężarki</h3>
                <p>Zobacz, jak projekt wpływa na żywotność i efektywność systemu.</p>
            </div>
            
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-pill" id="rkTogglePill" style="width: 145px; transform: translateX(0);"></div>
                <button class="rk-toggle-btn active" data-state="bad" id="btnBad">Montaż &#8222;Na oko&#8221;</button>
                <button class="rk-toggle-btn" data-state="good" id="btnGood">Projekt OZC</button>
            </div>
        </div>

        <div class="rk-gauge-grid">
            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Praca Sprężarki</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#e2e8f0" stroke-width="6"/>
                    <path class="svg-rotor" d="M50 15 L50 45 M50 55 L50 85 M15 50 L45 50 M55 50 L85 50 M25 25 L43 43 M57 57 L75 75 M75 25 L57 43 M43 57 L25 75" stroke-width="6" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="10" fill="#cbd5e1" />
                </svg>
                <div class="rk-gauge-value" id="valStatus" style="font-size: 24px;">Taktowanie!</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Szybkie zużycie</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Efektywność (COP)</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 80">
                    <path class="gauge-bg" d="M 10 70 A 40 40 0 0 1 90 70" />
                    <path id="svgCopGauge" class="gauge-fill" d="M 10 70 A 40 40 0 0 1 90 70" stroke="var(--rk-intro-danger)" stroke-dasharray="35 125"/>
                </svg>
                <div class="rk-gauge-value val-cop" id="valCop">3.1</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Zasilanie 45°C</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Koszty Prądu</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100" style="margin-bottom: 5px;">
                    <rect x="25" y="20" width="50" height="60" rx="8" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                    <line x1="40" y1="40" x2="60" y2="40" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                    <line x1="40" y1="55" x2="60" y2="55" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-gauge-value val-bill" id="valBill">+35%</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Straty finansowe</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f43f5e; border: 2px solid #e11d48; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🚫</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane ustrukturyzowane (JSON-LD) stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Skrypt został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu / Przełącznika
    const dashContainer = document.getElementById('rkDashState');
    const pill = document.getElementById('rkTogglePill');
    const btnBad = document.getElementById('btnBad');
    const btnGood = document.getElementById('btnGood');
    
    // Zmienne DOM wartości
    const valStatus = document.getElementById('valStatus');
    const valCop = document.getElementById('valCop');
    const valBill = document.getElementById('valBill');
    const svgCopGauge = document.getElementById('svgCopGauge');

    // Funkcja zmieniająca stan
    function setState(state) {
        if (state === 'bad') {
            // Stylizacja przycisków
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-danger)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-bad';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Taktowanie!';
            valCop.innerText = '3.0';
            valCop.nextElementSibling.innerText = 'Zasilanie 40-45°C';
            valBill.innerText = '+35%';
            valBill.nextElementSibling.innerText = 'Straty finansowe';
            
            // Animacja Gauge COP (Mniej zielonego, mały obwód)
            // Obwód dla r=40 (półokrąg) to ok 125px
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-danger)');
            svgCopGauge.style.strokeDasharray = '35 125'; 

        } else {
            // Stylizacja przycisków
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-success)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-good';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Płynna praca';
            valCop.innerText = '4.8';
            valCop.nextElementSibling.innerText = 'Zasilanie 30°C';
            valBill.innerText = 'Optymalne';
            valBill.nextElementSibling.innerText = 'Niskie rachunki';
            
            // Animacja Gauge COP (Pełny łuk)
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-success)');
            svgCopGauge.style.strokeDasharray = '120 125'; 
        }
    }

    // Event Listenery
    btnBad.addEventListener('click', () => setState('bad'));
    btnGood.addEventListener('click', () => setState('good'));

    // Fix rozmiaru pigułki na start
    setTimeout(() => {
        pill.style.width = btnBad.offsetWidth + 'px';
    }, 100);
    
    // Inicjalizacja domyślnego widoku (Ostrzegawczy)
    setState('bad');
});
</script>



<style>
:root {
    --rk-temp-dark: #111827;
    --rk-temp-card: #1f2937;
    --rk-temp-brand: #3b82f6;
    --rk-temp-optimal: #10b981; /* Zielony (Optymalnie) */
    --rk-temp-warning: #f59e0b; /* Pomarańczowy (Ostrzeżenie) */
    --rk-temp-danger: #ef4444; /* Czerwony (Błąd) */
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
    --rk-temp-bg: #f8fafc;
    --rk-temp-border: #cbd5e1;
}

.rk-temp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--rk-temp-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-temp-header {
    background: var(--rk-temp-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-temp-brand);
}

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-temp-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

.rk-temp-title span {
    color: var(--rk-temp-brand);
}

/* Kontener Interaktywny */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
}

.rk-temp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Panel Kontrolny */
.rk-temp-control-panel {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-temp-slider-wrap {
    margin-bottom: 25px;
}

.rk-temp-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-temp-dark);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--rk-temp-optimal) 0%, var(--rk-temp-warning) 50%, var(--rk-temp-danger) 100%);
    outline: none;
    cursor: pointer;
}

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-temp-dark);
    cursor: grab;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.rk-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
    cursor: grabbing;
}

/* Wyniki (Odczyty) */
.rk-temp-readings {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-reading-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    background: var(--rk-temp-bg);
    border-radius: 12px;
    border: 1px solid var(--rk-temp-border);
}

.rk-reading-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
}

.rk-reading-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    transition: color 0.3s;
}

/* Wizualizacja SVG (Termowizja podłogi) */
.rk-temp-visual {
    position: relative;
    width: 100%;
    height: 280px;
    background: var(--rk-temp-dark);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 4px solid #334155;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.rk-visual-title {
    position: absolute;
    top: 15px;
    left: 20px;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    z-index: 2;
}

.rk-svg-floor {
    width: 80%;
    height: auto;
    z-index: 1;
}

.svg-pipe {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.4s;
}

.svg-heat-glow {
    transition: stop-color 0.4s, stop-opacity 0.4s;
}

/* Tekst i Wyjaśnienie */
.rk-temp-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

.rk-temp-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    margin: 0 0 15px 0;
}

.rk-temp-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-temp-text);
    margin-bottom: 20px;
}

.rk-temp-content strong {
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-temp-content a {
    color: var(--rk-temp-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: border-color 0.3s;
}

.rk-temp-content a:hover {
    border-color: var(--rk-temp-brand);
}

.rk-alert-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-temp-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-alert-box p {
    margin: 0;
    color: #991b1b;
    font-size: 15px;
}

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-interactive, .rk-temp-content { padding: 30px 25px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-temp-title { font-size: 22px; }
    .rk-reading-value { font-size: 18px; }
    .rk-temp-visual { height: 220px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna temperatura zasilania w projekcie ogrzewania podłogowego z pompą ciepła",
    "description": "Optymalna temperatura zasilania (Tz) dla pompy ciepła to 28-32°C zgodnie z PN-EN 1264. Poznaj skutki finansowe błędnego rozstawu rur wymuszającego pracę na 40°C.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-temperatura",
    "name": "Korelacja: Rozstaw rur a temperatura zasilania i koszty eksploatacji",
    "description": "Zestawienie wykazujące, jak oszczędności na rurach (rozstaw 15 cm zamiast 10 cm) wymuszają wyższą temperaturę zasilania (Tz), obniżając sprawność pompy ciepła o 2,5-3% na każdy stopień.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "norma PN-EN 1264 parametry",
      "rozstaw rur 10 czy 15 cm",
      "spadek COP pompy ciepła",
      "straty finansowe ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Symulacja strat finansowych w okresie 20 lat w oparciu o spadek współczynnika COP wywołany koniecznością podniesienia krzywej grzewczej dla zrekompensowania małej powierzchni grzewczej (rzadki rozstaw rur).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt zgodny z PN-EN 1264: Rozstaw 10 cm, Tz = 30°C, maksymalna sprawność sprężarki.",
        "Instalacja 'na oko': Rozstaw 15 cm, Tz = 40°C+, generuje od 25 000 do 40 000 PLN strat po 20 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-temperatura",
    "name": "Kalkulator Strat Termo-Ekonomicznych",
    "description": "Interaktywny suwak pozwalający użytkownikowi manipulować rozstawem rur (od 10 cm do 15 cm) i obserwować bezpośredni wzrost temperatury zasilania oraz skumulowaną stratę finansową w ciągu 20 lat pracy pompy ciepła.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-temp-app">
    
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            Termodynamika Układu
        </div>
        <h2 class="rk-temp-title">Maksymalna temperatura zasilania a <span>Koszty Ukryte</span></h2>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-control-panel">
                <div class="rk-temp-slider-wrap">
                    <div class="rk-temp-slider-label">
                        <span>Rozstaw Projektowy (10 cm)</span>
                        <span style="color: var(--rk-temp-danger);">Wykonawstwo &#8222;Na oko&#8221; (15 cm)</span>
                    </div>
                    <input type="range" min="0" max="100" value="0" class="rk-slider" id="rkTzSlider">
                </div>

                <div class="rk-temp-readings">
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Gęstość Rur (OZC)</span>
                        <span class="rk-reading-value" id="valSpacing">10 cm</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Wymagane Zasilanie (Tz)</span>
                        <span class="rk-reading-value" id="valTz" style="color: var(--rk-temp-optimal);">30.0 °C</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Strata po 20 latach</span>
                        <span class="rk-reading-value" id="valLoss" style="color: var(--rk-temp-optimal);">0 PLN</span>
                    </div>
                </div>
            </div>

            <div class="rk-temp-visual">
                <div class="rk-visual-title">Kamera Termowizyjna (Symulacja)</div>
                <svg class="rk-svg-floor" viewBox="0 0 200 120" preserveAspectRatio="xMidYMid meet">
                    <defs>
                        <linearGradient id="heatGradient" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#ef4444" stop-opacity="0.8" id="glowTop"/>
                            <stop offset="100%" stop-color="#ef4444" stop-opacity="0.1" id="glowBottom"/>
                        </linearGradient>
                    </defs>
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="url(#heatGradient)" />
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="none" stroke="#475569" stroke-width="2" />
                    
                    <path id="svgPipeHeat" class="svg-pipe" stroke="#ef4444" d="M 30 110 L 30 40 A 10 10 0 0 1 50 40 L 50 110 A 10 10 0 0 0 70 110 L 70 40 A 10 10 0 0 1 90 40 L 90 110 A 10 10 0 0 0 110 110 L 110 40 A 10 10 0 0 1 130 40 L 130 110 A 10 10 0 0 0 150 110 L 150 40 A 10 10 0 0 1 170 40 L 170 110" />
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-temp-content">
        <h3>Jaka jest maksymalna temperatura zasilania w projekcie?</h3>
        <p>
            Maksymalna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania podłogówki</a> w nowoczesnym projekcie z pompą ciepła nie powinna przekraczać <strong>35°C</strong> przy obliczeniowej temperaturze zewnętrznej (np. -20°C dla III strefy klimatycznej w Polsce). Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, optymalnym parametrem dla domów energooszczędnych jest zakres <strong>28–32°C</strong>, co gwarantuje najwyższą sprawność kompresora.
        </p>
        
        <p>
            Podniesienie temperatury zasilania o każde 1°C skutkuje drastycznym spadkiem sprawności pompy ciepła o około <strong>2,5–3%</strong>. Jeśli instalator „na oko” przyjmie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> co 15 cm zamiast obliczeniowych 10 cm, wymusi to na pompie pracę na parametrze 40°C lub wyższym, aby fizycznie pokryć straty ciepła budynku.
        </p>

        <div class="rk-alert-box">
            <p><strong>Konsekwencje Inwestycyjne:</strong> W <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">skali 20 lat eksploatacji</a>, brak precyzyjnego projektu generuje straty rzędu <strong>25 000 – 40 000 PLN</strong> wynikające wyłącznie z wyższych rachunków za energię. Fizyki nie da się oszukać rzadszym ułożeniem rury.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-temp-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz dane ustrukturyzowane (JSON-LD) należą do serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka i Obliczeń
    const slider = document.getElementById('rkTzSlider');
    const valSpacing = document.getElementById('valSpacing');
    const valTz = document.getElementById('valTz');
    const valLoss = document.getElementById('valLoss');
    
    const svgPipe = document.getElementById('svgPipeHeat');
    const glowTop = document.getElementById('glowTop');
    const glowBottom = document.getElementById('glowBottom');

    // Funkcja aktualizująca interfejs
    function updateCalc(val) {
        // Obliczenia interpolowane (0 -> 100)
        // Spacing: 10cm do 15cm
        const spacing = 10 + (val / 20);
        // Tz: 30°C do 42°C
        const tz = 30 + (val * 0.12);
        // Strata finansowa: od 0 do 35 000 PLN (zaokrąglone do setek)
        const loss = Math.round((val / 100) * 35000 / 100) * 100;

        // Aktualizacja DOM tekst
        valSpacing.innerText = spacing.toFixed(1) + ' cm';
        valTz.innerText = tz.toFixed(1) + ' °C';
        
        if (loss > 0) {
            valLoss.innerText = '-' + loss.toLocaleString('pl-PL') + ' PLN';
        } else {
            valLoss.innerText = '0 PLN';
        }

        // ==========================================
        // Logika Kolorów dla Tekstu (Aspekt Finansowy)
        // ==========================================
        let colorText = '';
        
        if (val <= 33) {
            colorText = 'var(--rk-temp-optimal)'; // Zielony
        } else if (val <= 66) {
            colorText = 'var(--rk-temp-warning)'; // Pomarańczowy
        } else {
            colorText = 'var(--rk-temp-danger)'; // Czerwony
        }

        // Aplikacja kolorów dla wartości tekstowych
        valTz.style.color = colorText;
        valLoss.style.color = colorText;

        // ==========================================
        // Logika Kolorów Kamery (Efektywność cieplna)
        // ==========================================
        // Czerwień blednąca wraz ze spadkiem efektywności (wzrostem rozstawu)
        // val rośnie od 0 do 100, opacity spada od 1.0 do ok. 0.15
        const heatOpacity = 1 - (val / 115); 
        const pipeColor = `rgba(239, 68, 68, ${heatOpacity})`; // Używa czerwieni #ef4444
        
        // Aplikacja blaknącej czerwieni do kamery termowizyjnej
        svgPipe.setAttribute('stroke', pipeColor);
        glowTop.setAttribute('stop-color', '#ef4444');
        glowTop.setAttribute('stop-opacity', heatOpacity * 0.8); // Zmiana intensywności poświaty
        glowBottom.setAttribute('stop-color', '#ef4444');
        glowBottom.setAttribute('stop-opacity', heatOpacity * 0.1);
        
        // Zmiana gęstości rur na obrazku - ciągła linia dla wszystkich stanów
        if (val > 66) {
            svgPipe.style.strokeDasharray = 'none';
        } else if (val > 33) {
            svgPipe.style.strokeDasharray = 'none';
        } else {
            svgPipe.style.strokeDasharray = 'none';
        }
    }

    // Event Listener dla suwaka
    slider.addEventListener('input', function(e) {
        updateCalc(e.target.value);
    });

    // Inicjalizacja (Stan startowy)
    updateCalc(0);
});
</script>



<style>
:root {
    --rk-ozc-dark: #0f172a;
    --rk-ozc-card: #1e293b;
    --rk-ozc-brand: #f59e0b;
    --rk-ozc-brand-light: #fef3c7;
    --rk-ozc-blue: #3b82f6;
    --rk-ozc-text: #334155;
    --rk-ozc-muted: #64748b;
    --rk-ozc-bg: #ffffff;
    --rk-ozc-border: #e2e8f0;
}

.rk-ozc-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-ozc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-ozc-header {
    background: linear-gradient(135deg, var(--rk-ozc-dark) 0%, #283548 100%);
    padding: 50px 45px 40px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-ozc-brand);
}

.rk-ozc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    color: #fcd34d;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(245, 158, 11, 0.4);
}

.rk-ozc-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

.rk-ozc-title span {
    color: var(--rk-ozc-brand);
}

/* Interaktywny Symulator OZC */
.rk-ozc-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-ozc-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
}

.rk-ozc-tab {
    flex: 1;
    padding: 16px 20px;
    background: transparent;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-ozc-tab:hover {
    color: var(--rk-ozc-dark);
}

.rk-ozc-tab.active {
    background: #ffffff;
    color: var(--rk-ozc-brand);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Grid Wyników i Wizualizacji */
.rk-ozc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-ozc-visual {
    background: var(--rk-ozc-dark);
    border-radius: 20px;
    padding: 25px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    min-height: 280px;
}

.rk-ozc-svg-room {
    width: 100%;
    height: 100%;
    max-height: 220px;
}

/* Elementy SVG */
.ozc-pipe {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, opacity 0.5s;
}

.ozc-window {
    fill: rgba(59, 130, 246, 0.2);
    stroke: var(--rk-ozc-blue);
    stroke-width: 4;
    transition: opacity 0.5s;
}

.ozc-bathtub {
    fill: none;
    stroke: rgba(255,255,255,0.4);
    stroke-width: 3;
    stroke-dasharray: 6 4;
    transition: opacity 0.5s;
}

/* Karta z danymi (OZC) */
.rk-ozc-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-ozc-card {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.3s;
}

.rk-ozc-card.highlight {
    border-left: 6px solid var(--rk-ozc-brand);
}

.rk-ozc-card-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-ozc-card-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    line-height: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
    transition: color 0.3s;
}

.rk-ozc-card-unit {
    font-size: 16px;
    color: var(--rk-ozc-muted);
}

/* Treść Merytoryczna */
.rk-ozc-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-ozc-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-ozc-text);
    margin: 0 0 20px 0;
}

.rk-ozc-content strong {
    font-weight: 800;
    color: var(--rk-ozc-dark);
}

.rk-ozc-content a {
    color: var(--rk-ozc-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}

.rk-ozc-content a:hover {
    color: #d97706;
    border-bottom-style: solid;
}

.rk-ozc-h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-ozc-h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 4px;
    background: var(--rk-ozc-brand);
    border-radius: 2px;
}

/* Mocne CTA z animacją SVG */
.rk-ozc-cta-box {
    padding: 40px 50px;
    background: var(--rk-ozc-brand-light);
    text-align: center;
    border-top: 1px solid rgba(245, 158, 11, 0.2);
}

.rk-ozc-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-ozc-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 2px solid transparent;
}

.rk-ozc-cta-btn:hover {
    transform: translateY(-4px);
    background: #d97706;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fcd34d;
}

@keyframes ctaPulse {
    0% { stroke-opacity: 1; transform: scale(1); }
    50% { stroke-opacity: 0.4; transform: scale(1.1); }
    100% { stroke-opacity: 1; transform: scale(1); }
}

@keyframes ctaMove {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(4px); }
}

.cta-anim-circle {
    animation: ctaPulse 2s infinite ease-in-out;
    transform-origin: center;
}

.cta-anim-arrow {
    animation: ctaMove 2s infinite ease-in-out;
}

@media (max-width: 768px) {
    .rk-ozc-header, .rk-ozc-interactive, .rk-ozc-content, .rk-ozc-cta-box { padding: 30px 25px; }
    .rk-ozc-tabs { flex-direction: column; }
    .rk-ozc-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-ozc-title { font-size: 24px; }
    .rk-ozc-card-value { font-size: 28px; }
    .rk-ozc-cta-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego obliczenie OZC to fundament projektu instalacji podłogowej?",
    "description": "OZC (Projektowe Obciążenie Cieplne) to jedyna precyzyjna metoda doboru rozstawu rur w podłogówce i mocy pompy ciepła wg normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-ozc",
    "name": "Porównanie Zapotrzebowania Cieplnego (OZC) dla typowych pomieszczeń",
    "description": "Analiza różnic w zapotrzebowaniu na moc grzewczą (W/m²) pomiędzy strefami o wysokich zyskach słonecznych a pomieszczeniami o podwyższonej temperaturze wymaganej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC podłogówka",
      "zapotrzebowanie na moc cieplną",
      "rozstaw rur w łazience",
      "strefa brzegowa podłogówka",
      "projekt ogrzewania podłogowego PN-EN 12831"
    ],
    "measurementTechnique": "Analiza porównawcza zapotrzebowania cieplnego (W/m²) dla różnych typów pomieszczeń z uwzględnieniem strat przez przegrody i zysków słonecznych w celu zrównoważenia hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon z dużymi przeszkleniami: Zapotrzebowanie ok. 30 W/m², temperatura 20°C, rozstaw rur 10-12.5 cm (zagęszczenie pod oknami do 5-7.5 cm).",
        "Łazienka: Zapotrzebowanie ok. 80 W/m², temperatura 24°C, rozstaw rur 10 cm, powierzchnia grzejna ograniczona armaturą."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-ozc",
    "name": "Symulator Zapotrzebowania Cieplnego (OZC) dla Pomieszczeń",
    "description": "Interaktywny panel przełączający schematy hydrauliczne (rozstaw rur) pomiędzy salonem a łazienką w oparciu o wyniki Projektowego Obciążenia Cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ozc-container" id="rk-ozc-app">
    
    <div class="rk-ozc-header">
        <div class="rk-ozc-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Fundament Hydrauliki
        </div>
        <h2 class="rk-ozc-title">Dlaczego obliczenie <span>OZC</span> to absolutna podstawa projektu?</h2>
    </div>

    <div class="rk-ozc-interactive">
        
        <div class="rk-ozc-tabs">
            <button class="rk-ozc-tab active" data-room="salon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Salon z oknami HS (20°C)
            </button>
            <button class="rk-ozc-tab" data-room="lazienka">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 13v-2a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2"></path><path d="M3 13v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5"></path><path d="M6 20v2"></path><path d="M18 20v2"></path><path d="M8 9V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4"></path></svg>
                Łazienka (24°C)
            </button>
        </div>

        <div class="rk-ozc-grid">
            <div class="rk-ozc-visual">
                <svg class="rk-ozc-svg-room" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid meet">
                    <rect x="10" y="10" width="280" height="180" fill="none" stroke="#475569" stroke-width="4" rx="8" />
                    
                    <rect id="svgWindow" class="ozc-window" x="40" y="5" width="220" height="10" rx="2" />
                    
                    <rect id="svgBathtub" class="ozc-bathtub" x="180" y="15" width="100" height="70" rx="10" style="opacity: 0;" />
                    
                    <path id="pipeSalon" class="ozc-pipe" stroke="#f59e0b" stroke-width="6" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 20 A 10 10 0 0 1 200 20 L 200 180 A 10 10 0 0 0 220 180 L 220 20 A 10 10 0 0 1 240 20 L 240 180 A 10 10 0 0 0 260 180 L 260 20 A 10 10 0 0 1 280 20 L 280 180" />
                    
                    <path id="pipeLazienka" class="ozc-pipe" stroke="#ef4444" stroke-width="6" style="opacity: 0;" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 100 A 10 10 0 0 1 200 100 L 200 180 A 10 10 0 0 0 220 180 L 220 100 A 10 10 0 0 1 240 100 L 240 180 A 10 10 0 0 0 260 180 L 260 100 A 10 10 0 0 1 280 100 L 280 180" />
                </svg>
            </div>

            <div class="rk-ozc-data">
                <div class="rk-ozc-card highlight">
                    <div class="rk-ozc-card-title">Zapotrzebowanie na moc</div>
                    <div class="rk-ozc-card-value" id="valPower">
                        30 <span class="rk-ozc-card-unit">W/m²</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Wymagana Temperatura</div>
                    <div class="rk-ozc-card-value" id="valTemp">
                        20 <span class="rk-ozc-card-unit">°C</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Rozstaw Rur PEX/PERT</div>
                    <div class="rk-ozc-card-value" id="valSpacing" style="font-size: 22px;">
                        10–12.5 cm (Brzeg: 5 cm)
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-ozc-content">
        <p>
            <strong>OZC (Projektowe Obciążenie Cieplne)</strong> to jedyna metoda precyzyjnego określenia zapotrzebowania na moc grzewczą każdego pomieszczenia z osobna, wyrażona w W/m². Zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>, projektant musi uwzględnić przenikanie ciepła przez przegrody, mostki termiczne oraz straty na wentylację, aby dobrać odpowiednią gęstość rur w każdej strefie z uwzględnieniem <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>.
        </p>
        
        <p>
            Bez OZC projekt ogrzewania podłogowego jest jedynie ryzykownym zgadywaniem. W łazience, gdzie oczekujemy komfortowych <strong>24°C</strong>, a powierzchnia grzejna jest drastycznie ograniczona przez wannę czy duży brodzik, zapotrzebowanie może wynosić nawet <strong>80 W/m²</strong>. Dla kontrastu, w nowoczesnym salonie z dużymi przeszkleniami generującymi zyski słoneczne, to zapotrzebowanie może wynosić zaledwie <strong>30 W/m²</strong>. Projektant musi zrównoważyć te różnice hydraulicznie, dobierając odpowiednie długości pętli i przepływy na rotametrach.
        </p>

        <h3 class="rk-ozc-h3">Jak to wpływa na projekt wykonawczy?</h3>
        <p>
            Wynik OZC bezpośrednio determinuje wybór mocy pompy ciepła (np. zakup urządzenia <strong>5 kW</strong> zamiast przewymiarowanego <strong>7 kW</strong>) oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">gęstość ułożenia rur</a>. Przykładowo, w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach podokiennych (strefy brzegowe)</a> projektant planuje gęsty rozstaw co <strong>5–7,5 cm</strong>, aby zniwelować chłód napływający od szyb, podczas gdy w centrum pokoju wystarczy standardowe <strong>10–12,5 cm</strong>.
        </p>
    </div>

    <div class="rk-ozc-cta-box">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-ozc-cta-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10" class="cta-anim-circle"></circle>
                <polyline points="12 16 16 12 12 8" class="cta-anim-arrow"></polyline>
                <line x1="8" y1="12" x2="16" y2="12" class="cta-anim-arrow"></line>
            </svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-ozc-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz załączone dane ustrukturyzowane JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie na nieautoryzowanej domenie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Zakładek (OZC Symulator)
    const tabs = document.querySelectorAll('.rk-ozc-tab');
    const valPower = document.getElementById('valPower');
    const valTemp = document.getElementById('valTemp');
    const valSpacing = document.getElementById('valSpacing');
    
    // Elementy SVG
    const svgWindow = document.getElementById('svgWindow');
    const svgBathtub = document.getElementById('svgBathtub');
    const pipeSalon = document.getElementById('pipeSalon');
    const pipeLazienka = document.getElementById('pipeLazienka');

    function switchRoom(roomType) {
        // Reset aktywnych zakładek
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-ozc-tab[data-room="${roomType}"]`).classList.add('active');

        if (roomType === 'salon') {
            // Aktualizacja Danych
            valPower.innerHTML = '30 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '20 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10–12.5 cm (Brzeg: 5 cm)';
            
            valPower.style.color = '#f59e0b'; // Kolor umiarkowany
            
            // Animacja SVG
            svgWindow.style.opacity = '1';
            svgBathtub.style.opacity = '0';
            pipeSalon.style.opacity = '1';
            pipeLazienka.style.opacity = '0';
            
        } else if (roomType === 'lazienka') {
            // Aktualizacja Danych
            valPower.innerHTML = '80 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '24 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10 cm (Mniej powierzchni)';
            
            valPower.style.color = '#ef4444'; // Kolor wysoki/czerwony
            
            // Animacja SVG
            svgWindow.style.opacity = '0';
            svgBathtub.style.opacity = '1';
            pipeSalon.style.opacity = '0';
            pipeLazienka.style.opacity = '1';
        }
    }

    // Event Listenery
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchRoom(this.getAttribute('data-room'));
        });
    });
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-brand: #0284c7; /* Intensywny niebieski - hydraulika */
    --rk-flow-accent: #f59e0b; /* Pomarańczowy - wskaźnik przepływu */
    --rk-flow-light: #f0f9ff;
    --rk-flow-success: #10b981;
    --rk-flow-text: #334155;
    --rk-flow-muted: #64748b;
    --rk-flow-border: #e2e8f0;
}

.rk-flow-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-flow-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-flow-header {
    background: var(--rk-flow-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-flow-brand);
}

.rk-flow-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.2);
    color: #38bdf8;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-flow-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-flow-title span { color: var(--rk-flow-brand); }

/* Interaktywny Kalkulator Przepływu */
.rk-flow-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-flow-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Panel Kontrolny */
.rk-flow-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-flow-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-control-group {
    margin-bottom: 25px;
}

.rk-label-wrap {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-flow-dark);
}

.rk-flow-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
}

.rk-flow-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-flow-brand);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* Wizualizacja Rotametru */
.rk-flow-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-flow-dark);
    border-radius: 20px;
    padding: 30px;
    min-height: 350px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}

.rotameter-svg {
    width: 120px;
    height: auto;
}

.rotameter-float {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-flow-result-text {
    margin-top: 25px;
    text-align: center;
    color: #ffffff;
}

.rk-flow-val-large {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-flow-brand);
}

/* Sekcja merytoryczna */
.rk-flow-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-flow-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-flow-text);
    margin-bottom: 20px;
}

.rk-flow-formula {
    background: var(--rk-flow-light);
    padding: 25px;
    border-radius: 16px;
    border-left: 5px solid var(--rk-flow-brand);
    margin: 30px 0;
    font-family: 'Courier New', monospace;
}

.rk-flow-step {
    margin-bottom: 10px;
    display: flex;
    gap: 15px;
}

.rk-step-num {
    background: var(--rk-flow-brand);
    color: #ffffff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-flow-cta {
    padding: 40px 50px;
    background: #f8fafc;
    text-align: center;
    border-top: 1px solid var(--rk-flow-border);
}

.rk-btn-flow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-flow-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px rgba(2, 132, 199, 0.3);
}

.rk-btn-flow:hover {
    transform: translateY(-3px);
    background: #0369a1;
}

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-interactive, .rk-flow-content { padding: 30px 25px; }
    .rk-flow-grid { grid-template-columns: 1fr; }
    .rk-flow-title { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik inżynieryjny dotyczący obliczania strumienia wody (qm) w instalacji niskotemperaturowej. Poznaj wzór i algorytm nastaw rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Tabela korelacji mocy grzewczej i przepływu masowego",
    "description": "Zestawienie obliczonych wartości przepływu (l/h i l/min) dla typowych obciążeń cieplnych pętli ogrzewania podłogowego przy ΔT=5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy podłogówka wzór",
      "ustawienie rotametru l/min",
      "delta T pompa ciepła 5K",
      "obliczanie hydrauliki ogrzewania",
      "projektowanie pętli grzewczych"
    ],
    "measurementTechnique": "Algorytm obliczeniowy oparty na stałej fizycznej ciepła właściwego wody (1.163 Wh/kgK) i bilansie mocy cieplnej pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moc 1000W przy ΔT=5K: Przepływ 172 l/h (2.8 l/min)",
        "Moc 1500W przy ΔT=5K: Przepływ 258 l/h (4.3 l/min)",
        "Moc 2000W przy ΔT=5K: Przepływ 344 l/h (5.7 l/min) - Przekroczenie zakresu standardowego rotametru!"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Kalkulator Nastaw Rotametrów Podłogówki",
    "description": "Interaktywny symulator rotametru przeliczający moc cieplną pętli na wymaganą nastawę w litrach na minutę.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-flow-app">
    
    <div class="rk-flow-header">
        <div class="rk-flow-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            Hydraulika Projektowa
        </div>
        <h2 class="rk-flow-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach?</h2>
    </div>

    <div class="rk-flow-interactive">
        <div class="rk-flow-grid">
            
            <div class="rk-flow-controls">
                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Moc cieplna pętli (Q)</span>
                        <span id="valPowerLabel" style="color: var(--rk-flow-brand);">1400 W</span>
                    </div>
                    <input type="range" min="200" max="2500" step="50" value="1400" class="rk-flow-slider" id="inputPower">
                </div>

                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Delta T (&Delta;T)</span>
                        <span id="valDeltaLabel" style="color: var(--rk-flow-brand);">5 K</span>
                    </div>
                    <input type="range" min="3" max="10" step="1" value="5" class="rk-flow-slider" id="inputDelta">
                </div>

                <div style="background: var(--rk-flow-light); padding: 15px; border-radius: 12px; font-size: 13px; color: var(--rk-flow-muted);">
                    <strong>Wskazówka:</strong> Standardowy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr</a> ma skalę do 5 l/min. Jeśli wynik przekracza tę wartość, pętla musi zostać podzielona na dwie.
                </div>
            </div>

            <div class="rk-flow-visual">
                <svg class="rotameter-svg" viewBox="0 0 100 300">
                    <rect x="30" y="20" width="40" height="240" rx="5" fill="rgba(255,255,255,0.1)" stroke="#ffffff" stroke-width="2"/>
                    <line x1="30" y1="210" x2="45" y2="210" stroke="#ffffff" stroke-width="1"/> <text x="15" y="215" fill="#ffffff" font-size="10">1</text>
                    <line x1="30" y1="170" x2="45" y2="170" stroke="#ffffff" stroke-width="1"/> <text x="15" y="175" fill="#ffffff" font-size="10">2</text>
                    <line x1="30" y1="130" x2="45" y2="130" stroke="#ffffff" stroke-width="1"/> <text x="15" y="135" fill="#ffffff" font-size="10">3</text>
                    <line x1="30" y1="90" x2="45" y2="90" stroke="#ffffff" stroke-width="1"/> <text x="15" y="95" fill="#ffffff" font-size="10">4</text>
                    <line x1="30" y1="50" x2="45" y2="50" stroke="#ffffff" stroke-width="1"/> <text x="15" y="55" fill="#ffffff" font-size="10">5</text>
                    
                    <rect id="svgWater" x="32" y="258" width="36" height="0" fill="var(--rk-flow-brand)" fill-opacity="0.3"/>
                    
                    <g id="svgFloat" class="rotameter-float" transform="translate(0, 210)">
                        <rect x="35" y="0" width="30" height="15" rx="2" fill="var(--rk-flow-accent)"/>
                        <circle cx="50" cy="7.5" r="3" fill="#ffffff"/>
                    </g>
                </svg>
                <div class="rk-flow-result-text">
                    <div style="font-size: 14px; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Wymagany Przepływ:</div>
                    <div class="rk-flow-val-large" id="valResultFlow">4.0 l/min</div>
                    <div id="valResultLh" style="font-size: 16px; opacity: 0.8;">240.7 l/h</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-flow-content">
        <p>
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) wyliczoną w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a> oraz założonej różnicy temperatur (&Delta;T). Dla systemów z rewersyjną <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła</a> delta ta wynosi zazwyczaj <strong>5 K</strong>. 
        </p>
        
        <p>
            Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do masy betonu bez nagłego wzrostu temperatury powrotu, co skutkowałoby podnoszeniem ciśnienia w układzie chłodniczym i wyłączeniem sprężarki.
        </p>

        <div class="rk-flow-formula">
            <strong style="font-family: 'Inter', sans-serif;">Wzór Inżynierski:</strong><br>
            <span style="font-size: 18px; line-height: 2;">q<sub>m</sub> = Q / (c<sub>w</sub> &middot; &Delta;T)</span>
        </div>

        <div style="display: flex; flex-direction: column; gap: 10px;">
            <div class="rk-flow-step">
                <div class="rk-step-num">1</div>
                <div>Wyznacz moc pętli Q (np. <strong>1400 W</strong> dla salonu 40 m<sup>2</sup>).</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">2</div>
                <div>Przyjmij stałą c<sub>w</sub> = <strong>1.163 Wh/(kg&middot;K)</strong> dla wody.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">3</div>
                <div>Oblicz przepływ godzinowy: q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">4</div>
                <div>Przelicz na minuty: 240.7 / 60 &approx; <strong>4.0 l/min</strong> – to wartość, którą ustawisz na rotametrze.</div>
            </div>
        </div>

        <p style="margin-top: 25px;">
            Jeśli projektant zaplanuje zbyt długą pętlę (np. powyżej <strong>100-120 m</strong>), opory hydrauliczne wzrosną do poziomu, przy którym nawet nowoczesna <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie trwałym niedogrzaniem strefy.
        </p>
    </div>

    <div class="rk-flow-cta">
        <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-btn-flow">
            URUCHOM KOMPLEKSOWY KALKULATOR PRZEPŁYWÓW
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('rk-flow-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Kalkulatora
    const inPower = document.getElementById('inputPower');
    const inDelta = document.getElementById('inputDelta');
    const labelPower = document.getElementById('valPowerLabel');
    const labelDelta = document.getElementById('valDeltaLabel');
    const resFlowMin = document.getElementById('valResultFlow');
    const resFlowH = document.getElementById('valResultLh');
    const svgFloat = document.getElementById('svgFloat');
    const svgWater = document.getElementById('svgWater');

    function updateFlow() {
        const Q = parseFloat(inPower.value);
        const DT = parseFloat(inDelta.value);
        const cw = 1.163;

        // Obliczenia
        const qmH = Q / (cw * DT);
        const qmMin = qmH / 60;

        // Aktualizacja etykiet
        labelPower.innerText = Q + ' W';
        labelDelta.innerText = DT + ' K';
        resFlowMin.innerText = qmMin.toFixed(1) + ' l/min';
        resFlowH.innerText = qmH.toFixed(1) + ' l/h';

        // Kolorowanie przy przekroczeniu skali
        if (qmMin > 5) {
            resFlowMin.style.color = '#ef4444';
        } else {
            resFlowMin.style.color = 'var(--rk-flow-brand)';
        }

        // Animacja Rotametru
        // 0 l/min = y: 250 (dół)
        // 5 l/min = y: 50 (góra)
        // Zakres 200px na 5 jednostek = 40px na jednostkę
        let floatY = 250 - (qmMin * 40);
        if (floatY < 30) floatY = 30; // Limit górny
        if (floatY > 250) floatY = 250; // Limit dolny

        svgFloat.setAttribute('transform', `translate(0, ${floatY})`);
        
        // Dynamiczny poziom "wody" w rurce
        const waterHeight = 250 - floatY;
        svgWater.setAttribute('y', floatY + 10);
        svgWater.setAttribute('height', waterHeight);
    }

    inPower.addEventListener('input', updateFlow);
    inDelta.addEventListener('input', updateFlow);

    updateFlow(); // Inicjalizacja
});
</script>



<style>
:root {
    --rk-mass-dark: #0f172a;
    --rk-mass-card: #1e293b;
    --rk-mass-brand: #0284c7; /* Hydrauliczny błękit */
    --rk-mass-accent: #38bdf8;
    --rk-mass-success: #10b981;
    --rk-mass-warning: #f59e0b;
    --rk-mass-danger: #ef4444;
    --rk-mass-text: #334155;
    --rk-mass-muted: #64748b;
    --rk-mass-bg: #f8fafc;
    --rk-mass-border: #cbd5e1;
}

.rk-mass-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-mass-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-mass-header {
    background: linear-gradient(135deg, var(--rk-mass-dark) 0%, #1e3a8a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-mass-accent);
}

.rk-mass-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-mass-accent);
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.4);
}

.rk-mass-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-mass-title span { color: var(--rk-mass-accent); }

/* Interfejs Symulatora */
.rk-mass-interactive {
    padding: 40px 50px;
    background: var(--rk-mass-bg);
}

.rk-mass-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 35px;
}

/* Panel sterowania */
.rk-mass-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-mass-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-mass-slider-group {
    margin-bottom: 25px;
}

.rk-mass-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-mass-dark);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-mass-brand);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 3px 6px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.rk-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-mass-readouts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-readout-card {
    background: var(--rk-mass-bg);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    text-align: center;
}

.rk-readout-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-mass-muted);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-readout-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mass-dark);
}

/* Wizualizacja SVG */
.rk-mass-visual {
    background: var(--rk-mass-card);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-mass-status-overlay {
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 1px;
    z-index: 10;
    transition: all 0.3s;
}

.status-ok { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid #10b981; }
.status-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid #f59e0b; }
.status-err { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid #ef4444; }

.rk-svg-system {
    width: 100%;
    height: auto;
    max-height: 200px;
    margin-top: 20px;
}

/* SVG Animations */
.anim-pump-rotor {
    transform-origin: 50px 50px;
}
.spin-fast { animation: spin 0.8s linear infinite; }
.spin-slow { animation: spin 3s linear infinite; }
.spin-stall { animation: shake 0.5s ease-in-out infinite; stroke: var(--rk-mass-danger); }

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes shake {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(10deg); }
    75% { transform: rotate(-10deg); }
}

.anim-flow-line {
    stroke-dasharray: 10 10;
    animation: flowMove 1s linear infinite;
}
@keyframes flowMove { to { stroke-dashoffset: -20; } }

/* Treść Merytoryczna */
.rk-mass-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

.rk-mass-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-mass-text);
    margin-bottom: 25px;
}

.rk-mass-formula-box {
    background: var(--rk-mass-dark);
    color: #ffffff;
    padding: 20px 25px;
    border-radius: 12px;
    border-left: 5px solid var(--rk-mass-accent);
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-formula-text {
    font-family: 'Courier New', monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-mass-accent);
}

.rk-step-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-step-card {
    background: var(--rk-mass-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    position: relative;
}

.rk-step-number {
    position: absolute;
    top: -12px;
    left: -12px;
    width: 28px;
    height: 28px;
    background: var(--rk-mass-brand);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13px;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

.rk-step-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-mass-text);
}

.rk-alert-critical {
    background: #fef2f2;
    border-left: 4px solid var(--rk-mass-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
}

.rk-alert-critical p {
    margin: 0;
    color: #991b1b;
    font-size: 15px;
    line-height: 1.6;
}

.rk-link {
    color: var(--rk-mass-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.3s;
}

.rk-link:hover {
    border-bottom-color: var(--rk-mass-brand);
}

@media (max-width: 768px) {
    .rk-mass-header, .rk-mass-interactive, .rk-mass-content { padding: 30px 25px; }
    .rk-mass-grid, .rk-step-grid { grid-template-columns: 1fr; }
    .rk-mass-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik obliczeniowy strumienia wody (qm). Dowiedz się, dlaczego zbyt długa pętla (np. 140 m) dławi pompę obiegową i uniemożliwia oddanie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Opory hydrauliczne a wydajność pompy obiegowej",
    "description": "Korelacja między długością pętli grzewczej, wymaganym przepływem w l/min, a zdolnością standardowej pompy obiegowej do pokonania oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy ogrzewanie podłogowe",
      "nastawa rotametru l/min",
      "za długa pętla podłogówki",
      "opory hydrauliczne pompy ciepła",
      "wzór na przepływ wody grzewczej"
    ],
    "measurementTechnique": "Algorytm bazujący na równaniu qm = Q / (cw * ΔT), uwzględniający krytyczne ograniczenia fizyczne pomp obiegowych przy pętlach przekraczających 100-120 metrów bieżących rury 16x2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan Optymalny: Pętla < 90m, przepływ ok. 2 l/min, niskie opory.",
        "Stan Krytyczny: Pętla 140m, wymagany przepływ 4 l/min, opory przekraczają wysokość podnoszenia standardowej pompy = strefa niedogrzana."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Symulator Oporów i Przepływu Hydraulicznego",
    "description": "Interaktywny kalkulator pozwalający manipulować mocą pętli (Q) oraz jej długością (L), wizualizujący ryzyko zadławienia pompy obiegowej przy przekroczeniu limitów hydraulicznych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mass-container" id="rk-mass-app">
    
    <div class="rk-mass-header">
        <div class="rk-mass-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><circle cx="12" cy="12" r="4"></circle></svg>
            Mechanika Płynów
        </div>
        <h2 class="rk-mass-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach podłogówki?</h2>
    </div>

    <div class="rk-mass-interactive">
        <div class="rk-mass-grid">
            
            <div class="rk-mass-controls">
                <div class="rk-mass-slider-group">
                    <div class="rk-mass-label">
                        <span>Zapotrzebowanie Pętli (Q)</span>
                        <span id="valQ" style="color: var(--rk-mass-brand);">1400 W</span>
                    </div>
                    <input type="range" min="300" max="2000" step="50" value="1400" class="rk-slider" id="slideQ">
                </div>

                <div class="rk-mass-slider-group" style="margin-bottom: 10px;">
                    <div class="rk-mass-label">
                        <span>Długość Pętli 16x2 (L)</span>
                        <span id="valL" style="color: var(--rk-mass-brand);">140 m</span>
                    </div>
                    <input type="range" min="40" max="180" step="5" value="140" class="rk-slider" id="slideL">
                </div>

                <div class="rk-mass-readouts">
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Przepływ (Rotametr)</div>
                        <div class="rk-readout-val" id="valFlow">4.0 <span style="font-size: 14px; font-weight:700;">l/min</span></div>
                    </div>
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Opory liniowe</div>
                        <div class="rk-readout-val" id="valPress">28 <span style="font-size: 14px; font-weight:700;">kPa</span></div>
                    </div>
                </div>
            </div>

            <div class="rk-mass-visual">
                <div id="statusOverlay" class="rk-mass-status-overlay status-err">
                    Krytyczne Opory - Pompa Zadławiona
                </div>
                
                <svg class="rk-svg-system" viewBox="0 0 200 100">
                    <path d="M 10 50 L 50 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    <path id="svgLoop" d="M 150 50 L 190 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    
                    <path id="svgFlowAnim" class="anim-flow-line" d="M 10 50 L 190 50" fill="none" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>

                    <circle cx="50" cy="50" r="25" fill="#1e293b" stroke="var(--rk-mass-accent)" stroke-width="4" id="svgPumpBorder"/>
                    <path id="svgPumpRotor" class="anim-pump-rotor spin-stall" d="M 50 25 L 50 45 M 50 55 L 50 75 M 25 50 L 45 50 M 55 50 L 75 50 M 32 32 L 46 46 M 54 54 L 68 68 M 68 32 L 54 46 M 46 54 L 32 68" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="6" fill="var(--rk-mass-accent)" id="svgPumpCenter"/>

                    <rect x="130" y="20" width="20" height="60" rx="4" fill="#334155" stroke="#64748b" stroke-width="2"/>
                    <rect x="135" y="10" width="10" height="30" rx="2" fill="#e2e8f0"/>
                    <rect id="svgRotameterFill" x="135" y="30" width="10" height="10" fill="var(--rk-mass-brand)"/>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-mass-content">
        <div class="rk-mass-intro">
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) oraz założonej delty temperatur (&Delta;T), która dla pomp ciepła wynosi zazwyczaj <strong>5 K</strong>. Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do betonu bez podnoszenia ciśnienia w układzie chłodniczym.
        </div>

        <div class="rk-mass-formula-box">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-mass-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="9" x2="15" y2="15"></line><line x1="15" y1="9" x2="9" y2="15"></line></svg>
            <div>
                <div style="font-size: 13px; text-transform: uppercase; letter-spacing: 1px; color: #94a3b8; margin-bottom: 5px;">Równanie Inżynierskie</div>
                <div class="rk-formula-text">q<sub>m</sub> = Q / (C<sub>w</sub> &middot; &Delta;T)</div>
            </div>
        </div>

        <div class="rk-step-grid">
            <div class="rk-step-card">
                <div class="rk-step-number">1</div>
                <p><strong>Moc całkowita pętli (Q):</strong> W naszym przykładzie dla salonu (40 m<sup>2</sup> przy 35 W/m<sup>2</sup>) wynosi <strong>1400 W</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">2</div>
                <p><strong>Delta T (&Delta;T):</strong> Założona różnica temperatur zasilanie/powrót (np. 35°C i 30°C) to <strong>5 K</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">3</div>
                <p><strong>Ciepło właściwe wody (C<sub>w</sub>):</strong> Stała fizyczna wynosi <strong>1.163 Wh/(kg&middot;K)</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">4</div>
                <p><strong>Obliczenie (l/h):</strong> q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</p>
            </div>
        </div>

        <div class="rk-alert-critical">
            <p>
                <strong>Konsekwencje wykonawcze:</strong> Przy przepływie rzędu 240 l/h, na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-link">rozdzielaczu</a> musisz ustawić rotametr na ok. <strong>4.0 l/min</strong>. 
                Jeśli projektant zaplanuje <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">zbyt długą pętlę</a> (np. 140 m), opory hydrauliczne wzrosną do poziomu, przy którym standardowa <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-link">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie niedogrzaniem salonu.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('rk-mass-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold; background:#0f172a;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Symulatora
    const slideQ = document.getElementById('slideQ');
    const slideL = document.getElementById('slideL');
    const valQ = document.getElementById('valQ');
    const valL = document.getElementById('valL');
    const valFlow = document.getElementById('valFlow');
    const valPress = document.getElementById('valPress');
    
    // Elementy SVG i UI
    const statusOverlay = document.getElementById('statusOverlay');
    const svgPumpRotor = document.getElementById('svgPumpRotor');
    const svgPumpBorder = document.getElementById('svgPumpBorder');
    const svgPumpCenter = document.getElementById('svgPumpCenter');
    const svgFlowAnim = document.getElementById('svgFlowAnim');
    const svgRotameterFill = document.getElementById('svgRotameterFill');

    function calculateSystem() {
        const Q = parseFloat(slideQ.value);
        const L = parseFloat(slideL.value);
        const cw = 1.163;
        const dT = 5; // Stała dla pompy ciepła wg treści

        // 1. Przepływ (l/min)
        const qmH = Q / (cw * dT);
        const flowMin = qmH / 60;
        
        // 2. Szacunkowe opory (kPa) - Uproszczony model wizualny (Przepływ * Długość * wsp)
        // Zakładamy, że 4 l/min przy 140m daje ogromne opory rzędu 35-40 kPa
        const baseResistance = (flowMin * flowMin) * (L / 100) * 1.5; 
        const pressLoss = Math.max(1, baseResistance);

        // Aktualizacja UI Tekst
        valQ.innerText = Q + ' W';
        valL.innerText = L + ' m';
        valFlow.innerHTML = flowMin.toFixed(1) + ' <span style="font-size: 14px; font-weight:700;">l/min</span>';
        valPress.innerHTML = pressLoss.toFixed(0) + ' <span style="font-size: 14px; font-weight:700;">kPa</span>';

        // Logika Statusu (Kolory i animacje)
        // Pompki obiegowe standardowe radzą sobie do ok 20-25 kPa na najdłuższej pętli.
        
        let color = '';
        let rotorClass = '';
        
        if (pressLoss > 25 || flowMin > 5) {
            // STAN KRYTYCZNY (Czerwony)
            color = 'var(--rk-mass-danger)';
            statusOverlay.className = 'rk-mass-status-overlay status-err';
            statusOverlay.innerText = 'Krytyczne Opory - Pompa Zadławiona';
            rotorClass = 'anim-pump-rotor spin-stall';
            svgFlowAnim.style.animationDuration = '0s'; // Przepływ stoi
        } else if (pressLoss > 15 || flowMin > 3.5) {
            // OSTRZEŻENIE (Pomarańczowy)
            color = 'var(--rk-mass-warning)';
            statusOverlay.className = 'rk-mass-status-overlay status-warn';
            statusOverlay.innerText = 'Wysokie Opory - Ryzyko Szumów';
            rotorClass = 'anim-pump-rotor spin-fast';
            svgFlowAnim.style.animationDuration = '0.4s'; // Przepływ szybki, wymuszony
        } else {
            // OPTYMALNIE (Zielony)
            color = 'var(--rk-mass-success)';
            statusOverlay.className = 'rk-mass-status-overlay status-ok';
            statusOverlay.innerText = 'Przepływ Laminarny - Optymalnie';
            rotorClass = 'anim-pump-rotor spin-slow';
            svgFlowAnim.style.animationDuration = '1.5s'; // Przepływ spokojny
        }

        // Aplikacja kolorów do odczytów i SVG
        valFlow.style.color = color;
        valPress.style.color = color;
        
        svgPumpBorder.setAttribute('stroke', color);
        svgPumpCenter.setAttribute('fill', color);
        svgFlowAnim.setAttribute('stroke', color);
        
        // Klasy wirnika (animacja)
        svgPumpRotor.className.baseVal = rotorClass;
        
        // Zmiana wysokości słupka rotametru (0-30px, max 5 l/min to h=30)
        let fillHeight = (flowMin / 5) * 30;
        if (fillHeight > 30) fillHeight = 30;
        svgRotameterFill.setAttribute('height', fillHeight);
        svgRotameterFill.setAttribute('y', 40 - fillHeight);
        svgRotameterFill.setAttribute('fill', color);
    }

    slideQ.addEventListener('input', calculateSystem);
    slideL.addEventListener('input', calculateSystem);

    calculateSystem(); // Start
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-brand: #3b82f6; /* Niebieski - inżynieria */
    --rk-loop-accent: #06b6d4; /* Cyjan - przepływ */
    --rk-loop-success: #10b981;
    --rk-loop-warning: #f59e0b;
    --rk-loop-danger: #ef4444;
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-border: #e2e8f0;
}

.rk-loop-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-loop-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-loop-border);
    overflow: hidden;
}

/* Header */
.rk-loop-header {
    background: linear-gradient(135deg, var(--rk-loop-dark) 0%, #1e293b 100%);
    padding: 50px 45px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-loop-brand);
}

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.15);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-loop-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-loop-title span { color: var(--rk-loop-brand); }

/* Simulator Section */
.rk-loop-interactive {
    padding: 40px 45px;
    background: #f1f5f9;
}

.rk-loop-sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

.rk-loop-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-loop-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    margin-bottom: 30px;
}

.rk-loop-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-loop-brand);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Gauge Visual */
.rk-loop-visual {
    background: var(--rk-loop-dark);
    padding: 30px;
    border-radius: 20px;
    text-align: center;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}

.rk-loop-indicator {
    font-size: 48px;
    font-weight: 900;
    margin: 10px 0;
    transition: color 0.4s;
}

.rk-loop-status-text {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 2px;
}

/* Dane Porównawcze */
.rk-loop-data-box {
    padding: 40px 45px;
}

.rk-loop-data-box h3 {
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 25px;
    color: var(--rk-loop-dark);
}

/* Układ Desktop - Tabela */
.rk-loop-table-wrapper {
    overflow-x: auto;
}

.rk-loop-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.rk-loop-table th {
    background: #f8fafc;
    text-align: left;
    padding: 18px;
    border-bottom: 2px solid var(--rk-loop-brand);
    font-weight: 800;
    color: var(--rk-loop-dark);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
}

.rk-loop-table td {
    padding: 18px;
    border-bottom: 1px solid #f1f5f9;
    color: #475569;
}

.rk-loop-table tr:hover td {
    background: #f0f9ff;
}

.rk-val-highlight {
    font-weight: 800;
    color: var(--rk-loop-brand);
}

/* Układ Mobilny - Kafelki (Domyślnie ukryte) */
.rk-loop-mobile-cards {
    display: none;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-mobile-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mc-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-loop-muted);
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-mc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 14px;
}

.rk-mc-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-mc-label {
    color: #64748b;
}

.rk-mc-val {
    font-weight: 700;
    color: var(--rk-loop-dark);
}

.rk-mc-val.highlight {
    color: var(--rk-loop-brand);
    font-size: 16px;
    font-weight: 900;
}

/* SVG Anim */
.rk-pipe-svg {
    width: 100%;
    max-width: 250px;
    height: auto;
    margin-bottom: 15px;
}

.anim-flow {
    stroke-dasharray: 15 15;
    animation: flowMove 1s linear infinite;
}

@keyframes flowMove { to { stroke-dashoffset: -30; } }

/* Footer/CTA */
.rk-loop-cta {
    padding: 40px 45px;
    background: var(--rk-loop-bg);
    text-align: center;
}

.rk-btn-engineering {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-loop-brand);
    color: #ffffff;
    padding: 20px 40px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.4);
}

.rk-btn-engineering:hover {
    background: #2563eb;
    transform: translateY(-4px);
    box-shadow: 0 20px 35px -5px rgba(59, 130, 246, 0.5);
}

/* Media Queries */
@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive, .rk-loop-data-box, .rk-loop-cta { padding: 30px 20px; }
    .rk-loop-sim-grid { grid-template-columns: 1fr; }
    .rk-loop-title { font-size: 22px; }
    
    /* Ukrycie tabeli i pokazanie kafelków na mobilce */
    .rk-loop-table-wrapper { display: none; }
    .rk-loop-mobile-cards { display: grid; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-loop-length",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna długość pętli i średnica rur w instalacji z pompą ciepła",
    "description": "Analiza inżynierska dopuszczalnych długości pętli (80-90m) dla rur 16x2mm. Poznaj wpływ oporów liniowych na sprawność układu hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-loops",
    "name": "Zestawienie parametrów hydraulicznych: Standard vs Pompa Ciepła",
    "description": "Dane porównawcze dotyczące temperatury zasilania, różnicy temperatur (Delta T) oraz granicznych długości pętli rur PEX/PERT dla niskotemperaturowych źródeł ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki",
      "średnica rury 16x2 opory",
      "delta T pompa ciepła",
      "projektowanie instalacji niskotemperaturowej",
      "opory liniowe w rurach PEX"
    ],
    "measurementTechnique": "Obliczenia strat ciśnienia na podstawie natężenia przepływu masowego wymaganego do utrzymania niskiej delty temperatur (5-7K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt Optymalny: Pętla 80-90m, Tz 30-33°C, Delta T 5K.",
        "System Standardowy: Pętla 100-120m, Tz 40-45°C, Delta T 10K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-hydraulics",
    "name": "Symulator Oporów Liniowych Pętli Grzewczej",
    "description": "Interaktywny kalkulator wizualizujący wzrost oporów hydraulicznych i obciążenia pompy obiegowej w funkcji długości rury grzewczej.",
    "applicationCategory": "Inżynieria/Kalkulator",
    "operatingSystem": "Wszystkie",
    "browserRequirements": "Obsługa JavaScript i SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-app">
    
    <div class="rk-loop-header">
        <div class="rk-loop-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16V12M12 8h.01"></path></svg>
            Inżynieria Hydrauliczna
        </div>
        <h2 class="rk-loop-title">Jaka powinna być maksymalna <span>długość pętli</span> i średnica rur?</h2>
    </div>

    <div class="rk-loop-interactive">
        <div class="rk-loop-sim-grid">
            
            <div class="rk-loop-controls">
                <div class="rk-slider-label">
                    <span>Długość Pętli (rura 16mm)</span>
                    <span id="valLoopLength" style="color: var(--rk-loop-brand);">85 m</span>
                </div>
                <input type="range" min="40" max="150" value="85" class="rk-loop-range" id="loopSlider">
                
                <p style="font-size: 14px; color: #64748b; line-height: 1.6; margin: 0;">
                    Zgodnie z normą <strong>PN-EN 1264</strong>, przekroczenie 90m przy rurze 16mm w układzie z pompą ciepła generuje opory, których standardowa pompa obiegowa nie jest w stanie pokonać przy niskiej delcie T.
                </p>
            </div>

            <div class="rk-loop-visual" id="rkVisualBox">
                <svg class="rk-pipe-svg" viewBox="0 0 200 60">
                    <path d="M 10 30 Q 100 0 190 30" fill="none" stroke="#334155" stroke-width="12" stroke-linecap="round"/>
                    <path id="svgFlowPath" class="anim-flow" d="M 10 30 Q 100 0 190 30" fill="none" stroke="var(--rk-loop-accent)" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-loop-status-text" id="statusLabel">Stan: Optymalny</div>
                <div class="rk-loop-indicator" id="resistanceVal">18 kPa</div>
                <div style="color: #94a3b8; font-size: 12px; font-weight: 700;">OPÓR LINII POWROTNEJ</div>
            </div>

        </div>
    </div>

    <div class="rk-loop-data-box">
        <h3>Porównanie standardu i optymalizacji PC</h3>
        
        <div class="rk-loop-table-wrapper">
            <table class="rk-loop-table">
                <thead>
                    <tr>
                        <th>Parametr Techniczny</th>
                        <th>Standard (Kocioł)</th>
                        <th>Optymalizacja (PC)</th>
                        <th>Różnica / Zysk</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Temperatura zasilania (Tz)</td>
                        <td>40–45°C</td>
                        <td class="rk-val-highlight">30–33°C</td>
                        <td><strong>+25% wyższy COP</strong></td>
                    </tr>
                    <tr>
                        <td>Delta T (Zas.-Powrót)</td>
                        <td>10 K</td>
                        <td class="rk-val-highlight">5–7 K</td>
                        <td>Stabilna praca inwertera</td>
                    </tr>
                    <tr>
                        <td>Max. długość pętli (16x2)</td>
                        <td>100–120 m</td>
                        <td class="rk-val-highlight">80–90 m</td>
                        <td>Opory niższe o 40%</td>
                    </tr>
                    <tr>
                        <td>Rozstaw rur (średni)</td>
                        <td>15 cm</td>
                        <td class="rk-val-highlight">10 cm</td>
                        <td>Niższa Tz o ok. 5°C</td>
                    </tr>
                    <tr>
                        <td>Rodzaj wylewki</td>
                        <td>Cementowa</td>
                        <td class="rk-val-highlight">Anhydrytowa</td>
                        <td>Przewodzenie k = 1,8</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rk-loop-mobile-cards">
            <div class="rk-mobile-card">
                <div class="rk-mc-title">Temperatura zasilania (Tz)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">40–45°C</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">30–33°C</span>
                </div>
                <div class="rk-mc-row" style="background:#f0fdf4; padding: 10px; border-radius: 8px; margin-top: 10px; border: 1px solid #bbf7d0;">
                    <span class="rk-mc-label" style="color: #15803d; font-weight:800;">ZYSK:</span>
                    <span class="rk-mc-val" style="color: #15803d;">+25% wyższy COP</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Delta T (Zas.-Powrót)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">10 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">5–7 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Stabilna praca inwertera</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Max. długość pętli (16x2)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">100–120 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">80–90 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Opory niższe o 40%</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rozstaw rur (średni)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">15 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">10 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Niższa Tz o ok. 5°C</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rodzaj wylewki</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">Cementowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">Anhydrytowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Przewodzenie k = 1,8</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-loop-cta">
        <p style="margin-bottom: 25px; color: #475569; font-size: 15px; max-width: 700px; margin-left: auto; margin-right: auto;">
            Maksymalna długość pętli dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">rury o średnicy 16x2 mm</a> w systemie z pompą ciepła to <strong>80–90 metrów</strong>. Przekroczenie tej wartości powoduje gwałtowny wzrost oporów liniowych, co zmusza <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">pompę obiegową</a> do pracy na najwyższym biegu, generując szumy i straty prądu.
        </p>
        <a href="https://projekt-ogrzewania.pl/sklep/" class="rk-btn-engineering">
            DOBIERZ MATERIAŁY PROJEKTOWE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-loop-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f87171; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Simulator Logic
    const slider = document.getElementById('loopSlider');
    const lengthLabel = document.getElementById('valLoopLength');
    const resistanceLabel = document.getElementById('resistanceVal');
    const statusLabel = document.getElementById('statusLabel');
    const visualBox = document.getElementById('rkVisualBox');
    const flowAnim = document.getElementById('svgFlowPath');

    function updateHydraulics(val) {
        lengthLabel.innerText = val + ' m';
        
        // Obliczenie oporu (model nieliniowy)
        // val 80 -> ok 18 kPa, val 120 -> ok 35 kPa, val 150 -> ok 55 kPa
        let baseRes = (val * val * 0.0025) + (val * 0.05);
        resistanceLabel.innerText = Math.round(baseRes) + ' kPa';

        if (val <= 95) {
            // Stan OK
            resistanceLabel.style.color = 'var(--rk-loop-success)';
            statusLabel.innerText = 'Stan: Optymalny';
            statusLabel.style.color = 'var(--rk-loop-success)';
            flowAnim.style.stroke = 'var(--rk-loop-success)';
            flowAnim.style.animationDuration = '1.5s';
        } else if (val <= 115) {
            // Stan Warning
            resistanceLabel.style.color = 'var(--rk-loop-warning)';
            statusLabel.innerText = 'Stan: Wysokie Opory';
            statusLabel.style.color = 'var(--rk-loop-warning)';
            flowAnim.style.stroke = 'var(--rk-loop-warning)';
            flowAnim.style.animationDuration = '0.7s';
        } else {
            // Stan Danger
            resistanceLabel.style.color = 'var(--rk-loop-danger)';
            statusLabel.innerText = 'Stan: Przeciążenie Pompy';
            statusLabel.style.color = 'var(--rk-loop-danger)';
            flowAnim.style.stroke = 'var(--rk-loop-danger)';
            flowAnim.style.animationDuration = '0.3s';
        }
    }

    slider.addEventListener('input', function(e) {
        updateHydraulics(e.target.value);
    });

    updateHydraulics(85);
});
</script>



<style>
:root {
    --rk-buf-dark: #0f172a;
    --rk-buf-card: #1e293b;
    --rk-buf-brand: #8b5cf6; /* Fiolet/Indygo - symbolizuje mieszanie ciepła i chłodu */
    --rk-buf-brand-light: #f5f3ff;
    --rk-buf-hot: #ef4444; /* Czerwony - zasilanie */
    --rk-buf-cold: #3b82f6; /* Niebieski - powrót */
    --rk-buf-mix: #d946ef; /* Róż/Fiolet - zmieszanie w sprzęgle */
    --rk-buf-success: #10b981;
    --rk-buf-warning: #f59e0b;
    --rk-buf-text: #334155;
    --rk-buf-muted: #64748b;
    --rk-buf-bg: #ffffff;
    --rk-buf-border: #e2e8f0;
}

.rk-buf-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-buf-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-buf-header {
    background: linear-gradient(135deg, var(--rk-buf-dark) 0%, #2e1065 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-buf-brand);
}

.rk-buf-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.2);
    color: #c4b5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(139, 92, 246, 0.4);
}

.rk-buf-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-buf-title span { color: #a78bfa; }

/* Interfejs Symulatora */
.rk-buf-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Przyciski Wyboru Schematu */
.rk-buf-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-buf-tab {
    background: #ffffff;
    border: 2px solid var(--rk-buf-border);
    padding: 15px 10px;
    border-radius: 16px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-buf-muted);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.rk-buf-tab:hover {
    border-color: #a78bfa;
    color: var(--rk-buf-brand);
    background: var(--rk-buf-brand-light);
}

.rk-buf-tab.active {
    background: var(--rk-buf-brand-light);
    border-color: var(--rk-buf-brand);
    color: var(--rk-buf-brand);
    box-shadow: 0 10px 15px -3px rgba(139, 92, 246, 0.1);
}

.rk-tab-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-buf-border);
    color: #ffffff;
    transition: all 0.3s;
}

.rk-buf-tab.active .rk-tab-icon {
    background: var(--rk-buf-brand);
}

/* Wizualizacja SVG */
.rk-buf-visual-box {
    background: var(--rk-buf-dark);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
    border: 4px solid #334155;
    position: relative;
}

.rk-buf-svg {
    width: 100%;
    max-width: 500px;
    height: auto;
}

/* Elementy SVG */
.svg-pipe {
    fill: none;
    stroke-width: 6;
    stroke-linecap: butt; /* Zapobiega efektowi nakładania fasolek */
    stroke-linejoin: round;
    transition: opacity 0.5s, stroke 0.5s;
}

.svg-flow-anim {
    fill: none;
    stroke-width: 4;
    stroke-dasharray: 8 8;
    stroke-linecap: butt;
    animation: flowMove 1.5s linear infinite;
    transition: opacity 0.5s, stroke 0.5s;
}

@keyframes flowMove {
    to { stroke-dashoffset: -16; }
}

.svg-component {
    fill: #1e293b;
    stroke: #64748b;
    stroke-width: 3;
    transition: opacity 0.5s;
}

.svg-text {
    fill: #ffffff;
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 800;
}

/* Karta Wynikowa */
.rk-buf-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-buf-metric {
    background: #ffffff;
    border: 1px solid var(--rk-buf-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-metric-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-buf-muted);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-metric-val {
    font-size: 18px;
    font-weight: 900;
    transition: color 0.3s;
}

/* Treść Merytoryczna */
.rk-buf-content {
    padding: 0 50px 45px 50px;
}

.rk-buf-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-buf-text);
    margin: 0 0 20px 0;
}

.rk-buf-content strong {
    font-weight: 800;
    color: var(--rk-buf-dark);
}

.rk-buf-list {
    list-style: none;
    padding: 0;
    margin: 30px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-buf-list-item {
    background: var(--rk-buf-bg);
    border: 1px solid var(--rk-buf-border);
    border-left: 5px solid var(--rk-buf-brand);
    padding: 20px 25px;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-item-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-buf-dark);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-item-badge {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.badge-rec { background: #dcfce7; color: #15803d; }
.badge-warn { background: #fef3c7; color: #b45309; }
.badge-alert { background: #fee2e2; color: #b91c1c; }

.rk-link {
    color: var(--rk-buf-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #6d28d9;
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-buf-header, .rk-buf-interactive, .rk-buf-content { padding: 30px 25px; }
    .rk-buf-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-buf-results { grid-template-columns: 1fr; }
    .rk-buf-tab { flex-direction: row; justify-content: flex-start; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-bufor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jaką rolę pełni bufor ciepła w projekcie z pompą ciepła?",
    "description": "Przewodnik po schematach hydraulicznych: bufor szeregowy, równoległy (sprzęgło) i układ bezpośredni. Poznaj ich wpływ na sprawność i defrost pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-bufor",
    "name": "Wpływ schematu połączenia bufora na parametry pracy pompy ciepła",
    "description": "Zestawienie porównujące wpływ bufora szeregowego, równoległego oraz układu bezpośredniego na sprawność (COP), bezpieczeństwo defrostu oraz temperaturę zasilania (Tz).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor szeregowy czy sprzęgło",
      "zład wody w ogrzewaniu podłogowym",
      "defrost pompy ciepła bufor",
      "sprzęgło hydrauliczne pompa ciepła",
      "schemat instalacji pompa ciepła"
    ],
    "measurementTechnique": "Analiza wahań temperatury zasilania (Tz) oraz ocena bezpieczeństwa hydraulicznego podczas cyklu odszraniania (defrost) parownika w oparciu o dostępne pojemności zładu wodnego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szeregowy na powrocie: Najwyższy COP, brak mieszania Tz, pełne bezpieczeństwo defrostu (zład 15-20 l/kW).",
        "Równoległy (Sprzęgło): Spadek COP, wzrost Tz o 2-3 K z powodu mieszania strumieni w buforze.",
        "Bezpośredni (Open Loop): Wymaga idealnego projektu, ryzyko zablokowania przepływu przez siłowniki termoelektryczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-bufor",
    "name": "Symulator Przepływów w Schematach Buforowych",
    "description": "Interaktywne narzędzie wizualizujące kierunki przepływu i proces mieszania się wody grzewczej w zależności od wybranego sposobu wpięcia bufora ciepła do instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf-container" id="rk-buf-app">
    
    <div class="rk-buf-header">
        <div class="rk-buf-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><path d="M4 12h16"></path><path d="M12 4v16"></path></svg>
            Architektura Systemu
        </div>
        <h2 class="rk-buf-title">Jaką rolę pełni <span>bufor ciepła</span> w projekcie?</h2>
    </div>

    <div class="rk-buf-interactive">
        
        <div class="rk-buf-tabs">
            <div class="rk-buf-tab active" data-mode="szereg">
                <div class="rk-tab-icon">1</div>
                Szeregowy na powrocie
            </div>
            <div class="rk-buf-tab" data-mode="rownoleg">
                <div class="rk-tab-icon">2</div>
                Równoległy (Sprzęgło)
            </div>
            <div class="rk-buf-tab" data-mode="bezposred">
                <div class="rk-tab-icon">3</div>
                Układ Bezpośredni
            </div>
        </div>

        <div class="rk-buf-visual-box">
            <svg class="rk-buf-svg" viewBox="0 0 400 200">
                <rect class="svg-component" x="10" y="60" width="60" height="80" rx="6" />
                <text class="svg-text" x="25" y="105">PC</text>
                
                <rect class="svg-component" x="330" y="40" width="40" height="120" rx="4" />
                <text class="svg-text" x="342" y="105">OP</text>

                <g id="g-szereg" style="opacity: 1;">
                    <rect class="svg-component" x="170" y="110" width="60" height="70" rx="4" />
                    <text class="svg-text" x="180" y="150">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                </g>

                <g id="g-rownoleg" style="opacity: 0;">
                    <rect class="svg-component" x="170" y="40" width="60" height="120" rx="6" />
                    <text class="svg-text" x="180" y="105">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 70 L 170 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 70 L 170 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-mix)" d="M 230 70 L 330 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 230 70 L 330 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                </g>

                <g id="g-bezposred" style="opacity: 0;">
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 125 L 70 125" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 125 L 70 125" />
                    
                    <circle cx="200" cy="100" r="30" fill="none" stroke="#ef4444" stroke-width="4" stroke-dasharray="8 4"/>
                    <line x1="180" y1="80" x2="220" y2="120" stroke="#ef4444" stroke-width="4"/>
                </g>
            </svg>
        </div>

        <div class="rk-buf-results">
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Sprawność (COP)</div>
                <div class="rk-metric-val" id="valCop" style="color: var(--rk-buf-success);">Maksymalna</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Temperatura Zasilania</div>
                <div class="rk-metric-val" id="valTz" style="color: var(--rk-buf-success);">Bez strat (30°C)</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Odmrażanie (Defrost)</div>
                <div class="rk-metric-val" id="valDefrost" style="color: var(--rk-buf-success);">W 100% Bezpieczne</div>
            </div>
        </div>

    </div>

    <div class="rk-buf-content">
        <p>
            Wbrew obiegowym opiniom, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> w projekcie ogrzewania podłogowego pełni funkcję stricte hydrauliczną, a nie magazynową (rolę wielkiego akumulatora ciepła przejmuje wylewka betonowa lub anhydrytowa). 
        </p>
        <p>
            Jego głównym zadaniem jest zapewnienie <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">odpowiedniego zładu wody</a> wymaganego do procesu odmrażania parownika (tzw. <strong>defrostu</strong>). Pompa ciepła w tym trybie pobiera nagle dużą ilość energii z instalacji, aby stopić lód na jednostce zewnętrznej. Jeśli system nie zapewni stałego przepływu, pompa wyrzuci błąd.
        </p>

        <ul class="rk-buf-list">
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    1. Szeregowy na powrocie
                    <span class="rk-item-badge badge-rec">Zalecany</span>
                </div>
                <p>
                    Rozwiązanie najlepsze dla inwerterowych pomp powietrznych. Woda wracająca z podłogówki przepływa przez bufor (zbiornik 50–100 litrów), a zasilanie idzie bezpośrednio do rozdzielacza. <strong>Nie tracimy temperatury zasilania</strong> (brak zjawiska mieszania), a pompa ma zagwarantowany zład wody do odszraniania. Zalecana pojemność: ok. 15–20 litrów na każdy 1 kW mocy urządzenia.
                </p>
            </li>
            
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    2. Równoległy (Sprzęgło hydrauliczne)
                    <span class="rk-item-badge badge-warn">Wymusza spadek COP</span>
                </div>
                <p>
                    Stosowany najczęściej w układach z mieszaczami (np. gdy podłogówka działa razem z kaloryferami). Woda z pompy ciepła wpada do bufora, miesza się, i dopiero stamtąd jest tłoczona do obiegów przez <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">niezależne pompy obiegowe</a>. Niestety, wymieszanie wody zawsze <strong>podnosi wymaganą temperaturę pracy sprężarki o ok. 2–3 K</strong>, co bezpośrednio obniża współczynnik COP.
                </p>
            </li>

            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    3. Układ Bezpośredni
                    <span class="rk-item-badge badge-alert">Wymaga rygoru</span>
                </div>
                <p>
                    Całkowity brak bufora. Układ dopuszczalny <strong>wyłącznie</strong> jako tzw. "Open Loop". Inwestor i instalator muszą zagwarantować stały przepływ masowy przez podłogę. Wymaga to rezygnacji ze <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">strefowych siłowników termoelektrycznych</a> na rozdzielaczach, aby nie dopuścić do sytuacji, w której termostaty zamkną pętle, gdy pompa rozpocznie defrost.
                </p>
            </li>
        </ul>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-buf-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Logika Symulatora
    const tabs = document.querySelectorAll('.rk-buf-tab');
    const svgSzereg = document.getElementById('g-szereg');
    const svgRownoleg = document.getElementById('g-rownoleg');
    const svgBezposred = document.getElementById('g-bezposred');
    
    const valCop = document.getElementById('valCop');
    const valTz = document.getElementById('valTz');
    const valDefrost = document.getElementById('valDefrost');

    function switchMode(mode) {
        // Reset Tabs
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-buf-tab[data-mode="${mode}"]`).classList.add('active');

        // Reset SVGs
        svgSzereg.style.opacity = '0';
        svgRownoleg.style.opacity = '0';
        svgBezposred.style.opacity = '0';

        if (mode === 'szereg') {
            svgSzereg.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'rownoleg') {
            svgRownoleg.style.opacity = '1';
            
            valCop.innerText = 'Obniżona o ok. 8%';
            valCop.style.color = 'var(--rk-buf-warning)';
            
            valTz.innerText = 'Wzrost o 2–3 K';
            valTz.style.color = 'var(--rk-buf-warning)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'bezposred') {
            svgBezposred.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerHTML = 'Krytyczne Ryzyko!';
            valDefrost.style.color = 'var(--rk-buf-hot)';
        }
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchMode(this.getAttribute('data-mode'));
        });
    });
});
</script>



<style>
:root {
    --rk-screed-dark: #0f172a;
    --rk-screed-card: #1e293b;
    --rk-screed-brand: #ea580c; /* Ciepły pomarańczowy - symbolizujący przewodnictwo */
    --rk-screed-brand-light: #ffedd5;
    --rk-screed-concrete: #94a3b8; /* Szary beton */
    --rk-screed-anhydrite: #fcd34d; /* Jasny, płynny anhydryt */
    --rk-screed-success: #10b981;
    --rk-screed-danger: #ef4444;
    --rk-screed-bg: #f8fafc;
    --rk-screed-border: #e2e8f0;
    --rk-screed-text: #334155;
}

.rk-screed-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.15);
    border: 1px solid rgba(234, 88, 12, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-screed-header {
    background: linear-gradient(135deg, var(--rk-screed-dark) 0%, #431407 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-screed-brand);
}

.rk-screed-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 88, 12, 0.2);
    color: #fdba74;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 88, 12, 0.3);
}

.rk-screed-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-screed-title span { color: var(--rk-screed-brand); }

/* Sekcja Interaktywna */
.rk-screed-interactive {
    padding: 40px 50px;
    background: var(--rk-screed-bg);
}

/* Przełącznik Wylewki */
.rk-screed-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
}

.rk-screed-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-screed-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-screed-btn.active {
    color: #ffffff;
}

.rk-screed-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-screed-concrete); /* Domyślny kolor betonu */
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* Grid Layout */
.rk-screed-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wizualizacja */
.rk-screed-visual {
    background: var(--rk-screed-dark);
    border-radius: 20px;
    padding: 20px;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-svg-crosssection {
    width: 100%;
    max-width: 250px;
    height: auto;
}

/* Style SVG */
.svg-screed-mass {
    transition: fill 0.5s, height 0.5s, y 0.5s;
}

.svg-air-gap {
    transition: stroke-width 0.5s, stroke 0.5s;
}

.svg-bubbles {
    transition: opacity 0.5s;
}

.svg-heat-wave {
    fill: none;
    stroke-linecap: round;
    transition: stroke 0.5s, stroke-width 0.5s;
}

.anim-heat-slow {
    stroke-dasharray: 10 20;
    animation: riseUp 3s linear infinite;
}

.anim-heat-fast {
    stroke-dasharray: 20 10;
    animation: riseUp 1s linear infinite;
}

@keyframes riseUp {
    to { stroke-dashoffset: -30; }
}

/* Karty Danych */
.rk-screed-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-screed-border);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.3s;
}

.rk-data-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-screed-text);
    opacity: 0.7;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-data-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-screed-dark);
    display: flex;
    align-items: baseline;
    gap: 4px;
    transition: color 0.3s;
}

.rk-data-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-screed-text);
    opacity: 0.6;
}

.card-full {
    grid-column: span 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--rk-screed-brand-light);
    border-color: rgba(234, 88, 12, 0.3);
}

.card-full .rk-data-val {
    color: var(--rk-screed-brand);
}

/* Treść Artykułu */
.rk-screed-content {
    padding: 45px 50px;
}

.rk-screed-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-screed-text);
    margin-bottom: 20px;
}

.rk-screed-content strong {
    font-weight: 800;
    color: var(--rk-screed-dark);
}

.rk-alert-error {
    background: #fef2f2;
    border-left: 4px solid var(--rk-screed-danger);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-alert-error h4 {
    margin: 0 0 10px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-alert-error p {
    margin: 0;
    color: #7f1d1d;
    font-size: 15px;
}

.rk-link {
    color: var(--rk-screed-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(234, 88, 12, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #c2410c;
    border-bottom-style: solid;
}

/* CTA */
.rk-screed-cta {
    padding: 40px 50px;
    background: var(--rk-screed-bg);
    text-align: center;
    border-top: 1px solid var(--rk-screed-border);
}

.rk-btn-screed {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-screed-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.4);
}

.rk-btn-screed:hover {
    transform: translateY(-4px);
    background: #c2410c;
    box-shadow: 0 20px 35px -5px rgba(234, 88, 12, 0.5);
}

@media (max-width: 768px) {
    .rk-screed-header, .rk-screed-interactive, .rk-screed-content, .rk-screed-cta { padding: 30px 20px; }
    .rk-screed-grid { grid-template-columns: 1fr; }
    .rk-screed-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; text-align: center; }
    .rk-screed-title { font-size: 24px; }
    .card-full { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Jak rodzaj wylewki wpływa na wydajność pompy ciepła?",
    "description": "Porównanie przewodnictwa cieplnego jastrychu anhydrytowego i betonu. Anhydryt eliminuje pustki powietrzne, obniża temperaturę zasilania i zwiększa SCOP o 6-8%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-wylewki",
    "name": "Właściwości termofizyczne jastrychów grzewczych",
    "description": "Zestawienie współczynników przewodzenia ciepła oraz wpływu grubości wylewki na efektywność instalacji ogrzewania podłogowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jastrych anhydrytowy przewodzenie ciepła",
      "wylewka betonowa pod ogrzewanie podłogowe",
      "bezwładność cieplna podłogówki",
      "wzrost SCOP pompy ciepła",
      "grubość wylewki na podłogówkę"
    ],
    "measurementTechnique": "Analiza współczynnika lambda [W/(mK)] materiałów budowlanych oraz zjawiska oporu cieplnego wywołanego pustkami powietrznymi (złe otulenie rury w betonie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych Anhydrytowy: λ ≈ 1.8-2.0 W/(mK), idealne otulenie rury, wzrost SCOP o 6-8%, niska bezwładność.",
        "Tradycyjny Beton: λ ≈ 1.1-1.2 W/(mK), mikropory powietrzne działające jako izolator, duża bezwładność (szczególnie przy warstwie 10 cm)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-screed",
    "name": "Symulator Przewodnictwa Cieplnego Wylewki",
    "description": "Narzędzie interaktywne pokazujące różnice w otuleniu rury i propagacji ciepła pomiędzy betonem a anhydrytem w systemie płaszczyznowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-screed-container" id="rk-screed-app">
    
    <div class="rk-screed-header">
        <div class="rk-screed-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
            Fizyka Budowli
        </div>
        <h2 class="rk-screed-title">Jak rodzaj wylewki wpływa na <span>wydajność pompy ciepła?</span></h2>
    </div>

    <div class="rk-screed-interactive">
        
        <div class="rk-screed-toggle-wrapper">
            <div class="rk-screed-pill" id="screedPill"></div>
            <button class="rk-screed-btn active" data-type="beton" id="btnBeton">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><circle cx="15.5" cy="15.5" r="1.5"></circle><circle cx="15.5" cy="8.5" r="1.5"></circle><circle cx="8.5" cy="15.5" r="1.5"></circle></svg>
                Tradycyjny Beton
            </button>
            <button class="rk-screed-btn" data-type="anhydryt" id="btnAnhydryt">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 4.2c3.11 3.11 3.11 8.14 0 11.25a7.94 7.94 0 0 1-11.32 0c-3.11-3.11-3.11-8.14 0-11.25L12 2.69z"></path></svg>
                Jastrych Anhydrytowy
            </button>
        </div>

        <div class="rk-screed-grid">
            
            <div class="rk-screed-visual">
                <div style="color: #cbd5e1; font-size: 11px; font-weight: 800; letter-spacing: 1px; margin-bottom: 15px; text-transform: uppercase;">Przekrój - Promieniowanie</div>
                <svg class="rk-svg-crosssection" viewBox="0 0 200 160">
                    <rect x="10" y="130" width="180" height="30" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2" />
                    <line x1="10" y1="140" x2="190" y2="140" stroke="#94a3b8" stroke-dasharray="4 4"/>
                    
                    <rect id="svgScreed" class="svg-screed-mass" x="10" y="40" width="180" height="90" fill="var(--rk-screed-concrete)" />
                    
                    <g id="svgBubbles" class="svg-bubbles" fill="#ffffff" opacity="0.4">
                        <circle cx="30" cy="60" r="3"/><circle cx="50" cy="110" r="4"/><circle cx="80" cy="50" r="2"/>
                        <circle cx="150" cy="70" r="5"/><circle cx="170" cy="100" r="3"/><circle cx="120" cy="115" r="4"/>
                        <circle cx="40" cy="80" r="2"/><circle cx="140" cy="50" r="3"/><circle cx="100" cy="120" r="2"/>
                    </g>

                    <circle cx="100" cy="90" r="22" fill="none" class="svg-air-gap" id="svgAirGap" stroke="#ffffff" stroke-width="4"/>
                    <circle cx="100" cy="90" r="16" fill="#ef4444" stroke="#b91c1c" stroke-width="2"/>
                    
                    <g id="svgHeatWaves" stroke="#ef4444">
                        <path class="svg-heat-wave anim-heat-slow" d="M 60 70 Q 60 40 60 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 100 60 Q 100 30 100 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 140 70 Q 140 40 140 10" />
                    </g>
                </svg>
            </div>

            <div class="rk-screed-data-grid">
                <div class="rk-data-card">
                    <div class="rk-data-label">Przewodnictwo (&lambda;)</div>
                    <div class="rk-data-val" id="valLambda">1.2 <span class="rk-data-unit">W/(m&middot;K)</span></div>
                </div>
                <div class="rk-data-card">
                    <div class="rk-data-label">Otulenie Rury</div>
                    <div class="rk-data-val" id="valContact" style="color: var(--rk-screed-text); font-size: 20px;">Słabe (Izolator)</div>
                </div>
                <div class="rk-data-card card-full">
                    <div>
                        <div class="rk-data-label">Wpływ na pompę ciepła</div>
                        <div class="rk-data-val" id="valEffect" style="color: var(--rk-screed-text); font-size: 20px; display: block;">Wymaga wyższej o 3&deg;C Tz</div>
                    </div>
                    <div style="text-align: right;">
                        <div class="rk-data-label" style="color: var(--rk-screed-danger);" id="lblScop">Spadek SCOP</div>
                        <div class="rk-data-val" id="valScop" style="color: var(--rk-screed-danger);">Brak zysku</div>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-screed-content">
        <p>
            Wybór jastrychu to decyzja stricte inżynieryjna, a nie tylko kosmetyczna czy wykończeniowa. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-link">Jastrych anhydrytowy</a> posiada współczynnik przewodzenia ciepła &lambda; &approx; <strong>1,8&ndash;2,0 W/(m&middot;K)</strong>, podczas gdy dla tradycyjnego betonu z miksikreta wartość ta wynosi zaledwie <strong>1,1&ndash;1,2 W/(m&middot;K)</strong>.
        </p>

        <p>
            Dzięki płynnej, samopoziomującej konsystencji, anhydryt w 100% szczelnie otula rurę grzewczą. Eliminuje to puste mikropęcherzyki powietrza, które w betonie działają jak naturalny izolator hamujący przepływ energii. W efekcie, aby uzyskać tę samą temperaturę odczuwalną na powierzchni kafli, woda w układzie z anhydrytem może być o <strong>2&ndash;3&deg;C chłodniejsza</strong>. To z kolei przekłada się na mniejsze zużycie prądu i realny wzrost współczynnika SCOP pompy ciepła o około <strong>6&ndash;8%</strong>.
        </p>

        <div class="rk-alert-error">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Konsekwencje błędów wykonawczych
            </h4>
            <p>
                Wylanie zbyt grubej warstwy betonu (np. 10 cm, co często ma miejsce przy łataniu nierówności chudziaka) drastycznie zwiększa <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link">bezwładność cieplną</a>. System staje się ociężały, nie reaguje na chwilowe zyski słoneczne wpadające przez okna, co prowadzi do notorycznego przegrzewania pomieszczeń i ogromnych strat energii.
            </p>
        </div>
    </div>

    <div class="rk-screed-cta">
        <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-btn-screed">
            PRZECZYTAJ KOMPLETNY PRZEWODNIK O WYLEWKACH
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-screed-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Elementy DOM
    const btnBeton = document.getElementById('btnBeton');
    const btnAnhydryt = document.getElementById('btnAnhydryt');
    const pill = document.getElementById('screedPill');
    
    // SVG Elements
    const svgScreed = document.getElementById('svgScreed');
    const svgBubbles = document.getElementById('svgBubbles');
    const svgAirGap = document.getElementById('svgAirGap');
    const svgHeatWaves = document.querySelectorAll('.svg-heat-wave');
    
    // Data Elements
    const valLambda = document.getElementById('valLambda');
    const valContact = document.getElementById('valContact');
    const valEffect = document.getElementById('valEffect');
    const lblScop = document.getElementById('lblScop');
    const valScop = document.getElementById('valScop');

    // 3. Logika Przełączania
    function setScreedType(type) {
        if (type === 'beton') {
            // UI Toggle
            btnBeton.classList.add('active');
            btnAnhydryt.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBeton.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-concrete)';

            // SVG Update (Grubszy, z bąblami, powolne ciepło, air gap)
            svgScreed.setAttribute('fill', 'var(--rk-screed-concrete)');
            svgScreed.setAttribute('height', '90'); // Grubsza
            svgScreed.setAttribute('y', '40');
            svgBubbles.style.opacity = '0.4';
            svgAirGap.setAttribute('stroke-width', '4'); // Szpara powietrzna widoczna
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-slow';
                wave.setAttribute('stroke', '#f87171'); // Słabsze czerwone
            });

            // Data Update
            valLambda.innerHTML = '1.2 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'Słabe (Izolator)';
            valContact.style.color = 'var(--rk-screed-text)';
            valEffect.innerText = 'Wymaga wyższej o 3°C Tz';
            
            lblScop.innerText = 'Spadek efektywności';
            lblScop.style.color = 'var(--rk-screed-danger)';
            valScop.innerText = 'Brak zysku';
            valScop.style.color = 'var(--rk-screed-danger)';

        } else {
            // UI Toggle
            btnAnhydryt.classList.add('active');
            btnBeton.classList.remove('active');
            pill.style.transform = `translateX(${btnBeton.offsetWidth}px)`;
            pill.style.width = btnAnhydryt.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-brand)';

            // SVG Update (Cieńszy, bez bąbli, szybkie ciepło, idealne otulenie)
            svgScreed.setAttribute('fill', 'var(--rk-screed-anhydrite)');
            svgScreed.setAttribute('height', '60'); // Cieńsza wylewka
            svgScreed.setAttribute('y', '70');
            svgBubbles.style.opacity = '0';
            svgAirGap.setAttribute('stroke-width', '0'); // Brak szpary powietrznej
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-fast';
                wave.setAttribute('stroke', '#ea580c'); // Intensywne pomarańczowe
            });

            // Data Update
            valLambda.innerHTML = '2.0 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'W 100% Idealne';
            valContact.style.color = 'var(--rk-screed-success)';
            valEffect.innerText = 'Obniża Tz o 2-3°C';
            
            lblScop.innerText = 'Zysk dla pompy ciepła';
            lblScop.style.color = 'var(--rk-screed-brand)';
            valScop.innerText = '+ 8% SCOP';
            valScop.style.color = 'var(--rk-screed-brand)';
        }
    }

    // Inicjalizacja wymiarów pigułki (fix na start)
    setTimeout(() => {
        pill.style.width = btnBeton.offsetWidth + 'px';
    }, 100);

    // Event Listeners
    btnBeton.addEventListener('click', () => setScreedType('beton'));
    btnAnhydryt.addEventListener('click', () => setScreedType('anhydryt'));
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwony - sygnalizacja błędu/ostrzeżenia */
    --rk-err-accent: #f87171;
    --rk-err-warn: #f59e0b;
    --rk-err-info: #3b82f6;
    --rk-err-bg: #f8fafc;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-border: #e2e8f0;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-brand);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.rk-err-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-err-title span { color: var(--rk-err-accent); }

.rk-err-intro {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 20px 0 0 0;
    max-width: 800px;
}

/* Sekcja Kafelków */
.rk-err-interactive {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
}

/* Pojedynczy Kafelek */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer;
}

.rk-err-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-err-border);
    transition: background 0.4s;
}

.rk-err-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -5px rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.3);
}

.rk-err-card:hover::before {
    background: var(--rk-err-brand);
}

.rk-err-card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.rk-err-num {
    width: 36px;
    height: 36px;
    background: var(--rk-err-bg);
    color: var(--rk-err-muted);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.4s;
}

.rk-err-card:hover .rk-err-num {
    background: var(--rk-err-brand);
    color: #ffffff;
}

.rk-err-card h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-err-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-err-text);
    margin: 0 0 20px 0;
    flex-grow: 1;
}

/* Wizualizacje SVG */
.rk-err-visual {
    background: var(--rk-err-dark);
    height: 140px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* 1. Strefy Brzegowe */
.anim-cold-draft { stroke-dasharray: 5 10; animation: dropDown 2s linear infinite; opacity: 0.2; }
.rk-err-card:hover .anim-cold-draft { opacity: 1; stroke: #3b82f6; }
@keyframes dropDown { to { stroke-dashoffset: -30; } }

/* 2. Zbyt długa pętla */
.anim-pump-fail { transform-origin: center; }
.rk-err-card:hover .anim-pump-fail { animation: shakeErr 0.4s ease-in-out infinite; fill: var(--rk-err-brand); }
.pipe-fail-gradient { transition: stop-color 0.5s; }
.rk-err-card:hover .pipe-fail-gradient { stop-color: #3b82f6; } 
@keyframes shakeErr { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } }

/* 3. EVOH Bariera */
.anim-o2 { opacity: 0; transform: translateY(10px); transition: all 0.5s; }
.rk-err-card:hover .anim-o2 { opacity: 1; transform: translateY(0); animation: floatUp 2s infinite alternate; }
.pipe-rust { transition: fill 1s; }
.rk-err-card:hover .pipe-rust { fill: #9a3412; }
@keyframes floatUp { to { transform: translateY(-15px); } }

/* 4. Dylatacje */
.anim-crack { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out; }
.rk-err-card:hover .anim-crack { stroke-dashoffset: 0; }
.anim-expand-l { transition: transform 0.8s; }
.anim-expand-r { transition: transform 0.8s; }
.rk-err-card:hover .anim-expand-l { transform: translateX(-5px); }
.rk-err-card:hover .anim-expand-r { transform: translateX(5px); }

/* 5. Zabudowa Stała */
.anim-heat-trap { opacity: 0.3; transition: all 0.8s; }
.rk-err-card:hover .anim-heat-trap { opacity: 1; fill: #b91c1c; }
.anim-bounce { stroke-dasharray: 4 4; animation: bounceBack 1.5s infinite; opacity: 0;}
.rk-err-card:hover .anim-bounce { opacity: 1; }
@keyframes bounceBack { 0% { stroke-dashoffset: 0; } 50% { stroke-dashoffset: -10; } 100% { stroke-dashoffset: 0; } }

/* 6. Brak Równoważenia (Nowy) */
.anim-flow-imbalance { stroke-dasharray: 10 10; animation: flowRun 1s linear infinite; }
@keyframes flowRun { to { stroke-dashoffset: -20; } }
.rk-err-card:hover .flow-cold { stroke: #1e293b; transition: stroke 0.5s; }

.rk-err-consequence {
    background: #fef2f2;
    color: #991b1b;
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    margin-top: 15px;
    border-left: 3px solid var(--rk-err-brand);
}

.rk-link {
    color: var(--rk-err-info);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

/* CTA */
.rk-err-cta {
    padding: 40px 50px;
    background: var(--rk-err-bg);
    text-align: center;
    border-top: 1px solid var(--rk-err-border);
}

.rk-btn-safe {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-err-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
}

.rk-btn-safe:hover {
    transform: translateY(-4px);
    background: #334155;
    box-shadow: 0 20px 35px -5px rgba(15, 23, 42, 0.5);
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-interactive, .rk-err-cta { padding: 30px 20px; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-err-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Top 6 krytycznych błędów w projektach ogrzewania podłogowego",
    "description": "Lista najczęstszych błędów instalacyjnych: brak stref brzegowych, zbyt długie pętle, brak bariery EVOH, brak dylatacji, błędy zabudowy oraz brak równoważenia hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Zestawienie krytycznych błędów hydraulicznych i termicznych v2",
    "description": "Analiza skutków 6 najczęstszych pomyłek wykonawczych w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "błędy w ogrzewaniu podłogowym",
      "brak stref brzegowych",
      "rura bez bariery antydyfuzyjnej",
      "brak równoważenia podłogówki",
      "pękanie posadzki dylatacja"
    ],
    "measurementTechnique": "Wizualizacja procesów degradacji systemu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak stref brzegowych = wychłodzenie przy oknach.",
        "Zbyt długa pętla = brak przepływu.",
        "Rura bez EVOH = korozja pompy.",
        "Brak dylatacji = pękanie płytek.",
        "Zabudowa stała = uwięzienie ciepła.",
        "Brak równoważenia = zimne pokoje."
      ]
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Audyt Techniczny 2026
        </div>
        <h2 class="rk-err-title">Top 6 najczęstszych <span>błędów</span> w projektach</h2>
        <p class="rk-err-intro">Nawet najdroższa pompa ciepła nie zrekompensuje błędów popełnionych na etapie projektu i montażu. Poznaj 6 krytycznych pomyłek, które bezpowrotnie niszczą efektywność Twojego domu. Najedź na kafelek, aby zobaczyć fizykę problemu.</p>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">1</div>
                    <h3>Brak stref brzegowych</h3>
                </div>
                <p class="rk-err-desc">Niezagęszczenie rur pod oknami tarasowymi. Zimne powietrze swobodnie opada na podłogę bez bariery cieplnej.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="10" height="100" fill="#cbd5e1"/>
                        <rect x="30" y="20" width="40" height="80" fill="rgba(59, 130, 246, 0.2)" stroke="#3b82f6" stroke-width="2"/>
                        <circle cx="100" cy="115" r="5" fill="#f87171"/>
                        <circle cx="150" cy="115" r="5" fill="#f87171"/>
                        <path class="anim-cold-draft" d="M 60 100 Q 90 110 160 110" fill="none" stroke="#64748b" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: „Roszenie” szyb i chłód przy oknach. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">Czytaj o strefach</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">2</div>
                    <h3>Zbyt długie pętle</h3>
                </div>
                <p class="rk-err-desc">Pętle powyżej 100m przy rurze 16mm generują opory, których pompa obiegowa nie jest w stanie pokonać.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <path d="M 20 100 L 20 40 A 10 10 0 0 1 40 40 L 40 100 A 10 10 0 0 0 60 100 L 60 40 A 10 10 0 0 1 80 40 L 80 100 A 10 10 0 0 0 100 100 L 100 40 A 10 10 0 0 1 120 40 L 120 100 A 10 10 0 0 0 140 100 L 140 40 A 10 10 0 0 1 160 40 L 160 100" fill="none" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="20" cy="115" r="15" fill="#334155" class="anim-pump-fail"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Zimna podłoga mimo pracy pompy. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">Limity pętli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">3</div>
                    <h3>Brak bariery EVOH</h3>
                </div>
                <p class="rk-err-desc">Przenikanie tlenu przez ścianki rury powoduje rdzewienie wymienników ciepła i elementów PC.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="160" height="60" rx="10" fill="#38bdf8" class="pipe-rust"/>
                        <text x="80" y="25" fill="#94a3b8" font-size="12" font-weight="bold" class="anim-o2">O&sup2;</text>
                        <circle cx="50" cy="70" r="4" fill="#78350f" opacity="0.8"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Korozja i zapowietrzanie. <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-link">Znaczenie EVOH</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">4</div>
                    <h3>Brak dylatacji</h3>
                </div>
                <p class="rk-err-desc">Brak nacięć przy dużych powierzchniach uniemożliwia jastrychowi swobodną pracę termiczną.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-l"/>
                        <rect x="105" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-r"/>
                        <path d="M 95 30 L 100 60 L 90 80 L 105 110" fill="none" stroke="#ef4444" stroke-width="3" class="anim-crack"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Pękanie płytek i fug. <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">Zasady dylatacji</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">5</div>
                    <h3>Zabudowa Stała</h3>
                </div>
                <p class="rk-err-desc">Rury pod szafkami czy wyspami kuchennymi przegrzewają meble zamiast oddawać ciepło do pokoju.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="40" y="30" width="120" height="60" fill="#854d0e" rx="4"/>
                        <rect x="40" y="100" width="120" height="20" fill="#f87171" class="anim-heat-trap"/>
                        <path d="M 90 95 L 90 85 L 80 90" fill="none" stroke="#ef4444" stroke-width="2" class="anim-bounce"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Niszczenie mebli i strata energii. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/" class="rk-link">Wpływ mebli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">6</div>
                    <h3>Brak równoważenia</h3>
                </div>
                <p class="rk-err-desc">Brak nastaw na rotametrach rozdzielacza powoduje, że woda płynie tylko tam, gdzie ma najmniejszy opór.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="20" height="100" fill="#334155"/>
                        <path d="M 40 40 L 120 40 L 120 60 L 40 60" fill="none" stroke="#ef4444" stroke-width="6" class="anim-flow-imbalance"/>
                        <path d="M 40 80 L 170 80 L 170 100 L 40 100" fill="none" stroke="#64748b" stroke-width="6" class="flow-cold"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Jeden pokój przegrzany, drugi lodowaty. <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">Rola rotametrów</a>.</div>
            </div>

        </div>
    </div>

    <div class="rk-err-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-safe">
            PROJEKTUJ Z EKSPERTAMI - UNIKNIJ BŁĘDÓW
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-err-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }
    const cards = document.querySelectorAll('.rk-err-card');
    cards.forEach(card => {
        card.addEventListener('touchstart', function() {
            this.classList.toggle('hovered'); 
        }, {passive: true});
    });
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --rk-inv-dark: #0f172a;
    --rk-inv-card: #1e293b;
    --rk-inv-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności i zysku */
    --rk-inv-brand-light: #dcfce7;
    --rk-inv-accent: #3b82f6; /* Zaufany niebieski */
    --rk-inv-warn: #f59e0b;
    --rk-inv-danger: #ef4444; /* Czerwony - straty */
    --rk-inv-danger-light: #fee2e2;
    --rk-inv-bg: #f8fafc;
    --rk-inv-border: #e2e8f0;
    --rk-inv-text: #334155;
    --rk-inv-muted: #64748b;
}

.rk-inv-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-inv-header {
    background: linear-gradient(135deg, var(--rk-inv-dark) 0%, #064e3b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-inv-brand);
}

.rk-inv-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.rk-inv-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-inv-title span { color: var(--rk-inv-brand); }

/* Interaktywny Symulator Kosztów */
.rk-inv-interactive {
    padding: 40px 50px;
    background: var(--rk-inv-bg);
}

.rk-inv-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
    position: relative;
}

.rk-inv-btn {
    flex: 1;
    padding: 18px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-inv-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-inv-btn.active { color: #ffffff; }

.rk-inv-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-inv-danger);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/* Grid layout dla wykresu i wyników */
.rk-inv-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
    align-items: center;
}

/* Animowany Wykres Słupkowy SVG */
.rk-inv-chart-box {
    background: #ffffff;
    border: 1px solid var(--rk-inv-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    height: 280px;
    display: flex;
    flex-direction: column;
}

.rk-chart-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-inv-muted);
    letter-spacing: 1px;
    text-align: center;
    margin-bottom: 15px;
}

.rk-svg-chart {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.svg-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.4s;
    rx: 6;
}

.svg-bar-label {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 800;
    fill: var(--rk-inv-muted);
    text-anchor: middle;
    transition: fill 0.4s;
}

.svg-bar-val {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 900;
    fill: var(--rk-inv-dark);
    text-anchor: middle;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Wynikowe */
.rk-inv-data-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-inv-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-inv-border);
    padding: 20px 25px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-inv-data-card.highlight {
    background: var(--rk-inv-danger-light);
    border-color: rgba(239, 68, 68, 0.4);
}

.rk-inv-data-info h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-inv-dark);
    text-transform: uppercase;
}

.rk-inv-data-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-inv-muted);
}

.rk-inv-data-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-inv-danger);
    transition: color 0.3s;
}

/* Treść Merytoryczna - Kafelki na Desktop i Mobile */
.rk-inv-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-inv-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-inv-text);
    margin-bottom: 30px;
}

.rk-benefit-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 35px;
}

.rk-b-card {
    background: var(--rk-inv-bg);
    border: 1px solid var(--rk-inv-border);
    border-top: 4px solid var(--rk-inv-brand);
    padding: 25px 20px;
    border-radius: 12px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-b-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

.rk-b-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
    color: var(--rk-inv-brand);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-b-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-inv-dark);
}

.rk-b-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-inv-text);
}

.rk-subsidies-box {
    background: #f0f9ff;
    border-left: 4px solid var(--rk-inv-accent);
    padding: 25px;
    border-radius: 0 12px 12px 0;
}

.rk-subsidies-box h3 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #0369a1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-subsidies-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #0c4a6e;
}

.rk-link {
    color: var(--rk-inv-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

/* CTA */
.rk-inv-cta {
    padding: 40px 50px;
    background: var(--rk-inv-bg);
    text-align: center;
    border-top: 1px solid var(--rk-inv-border);
}

.rk-btn-inv {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-inv-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-inv:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-inv-header, .rk-inv-interactive, .rk-inv-content, .rk-inv-cta { padding: 30px 20px; }
    .rk-inv-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-benefit-cards { grid-template-columns: 1fr; } /* Kafelki pod sobą na mobile */
    .rk-inv-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; }
    .rk-inv-title { font-size: 24px; }
    .rk-inv-data-card { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-inwestycja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego warto zamówić profesjonalny projekt? Zwrot z inwestycji",
    "description": "Profesjonalny projekt podłogówki zapobiega przewymiarowaniu pompy ciepła, eliminuje odpady rur i jest niezbędny do uzyskania dotacji Czyste Powietrze.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-inwestycja",
    "name": "Kalkulacja redukcji kosztów inwestycyjnych (CAPEX)",
    "description": "Zestawienie obrazujące oszczędności wynikające z optymalizacji OZC i dokładnego trasowania rur względem montażu 'na oko'.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "cena projektu ogrzewania podłogowego",
      "dotacje czyste powietrze 2026 wymogi",
      "przewymiarowana pompa ciepła koszty",
      "ile rury na podłogówkę",
      "zwrot z inwestycji OZC"
    ],
    "measurementTechnique": "Szacowanie oszczędności na podstawie redukcji mocy znamionowej pompy ciepła (np. z 9kW na 6kW) oraz eliminacji zakupu nadwyżek materiałowych (rury, izolacja).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Oszczędność 3000-5000 PLN na różnicy w cenie urządzenia.",
        "Materiały Hydrauliczne: Oszczędność rzędu 15% dzięki dokładnemu zestawieniu z programu CAD.",
        "Formalności: Zgodność z audytami programów Moje Ciepło i Czyste Powietrze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-inwestycja",
    "name": "Symulator Redukcji Kosztów Inwestycyjnych",
    "description": "Interaktywny wykres słupkowy ilustrujący różnice w nakładach finansowych pomiędzy instalacją intuicyjną a projektowaną inżynieryjnie.",
    "applicationCategory": "FinancialApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-inv-container" id="rk-inv-app">
    <div class="rk-inv-header">
        <div class="rk-inv-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Ekonomia i Opłacalność
        </div>
        <h2 class="rk-inv-title">Dlaczego profesjonalny projekt <span>zwraca się natychmiast?</span></h2>
    </div>

    <div class="rk-inv-interactive">
        
        <div class="rk-inv-toggle-wrap">
            <div class="rk-inv-pill" id="invPill"></div>
            <button class="rk-inv-btn active" data-type="bad" id="btnInvBad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Instalator "Na oko"
            </button>
            <button class="rk-inv-btn" data-type="good" id="btnInvGood">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Projekt Inżynierski
            </button>
        </div>

        <div class="rk-inv-grid">
            
            <div class="rk-inv-chart-box">
                <div class="rk-chart-title">Porównanie Kosztów (CAPEX)</div>
                <svg class="rk-svg-chart" viewBox="0 0 200 180">
                    <line x1="20" y1="30" x2="180" y2="30" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="80" x2="180" y2="80" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    
                    <rect id="barHeatPump" class="svg-bar" x="40" y="30" width="45" height="100" fill="var(--rk-inv-danger)"/>
                    <text id="valHeatPumpSvg" class="svg-bar-val" x="62.5" y="22">32 k</text>
                    <text class="svg-bar-label" x="62.5" y="148">Pompa C.</text>

                    <rect id="barMaterials" class="svg-bar" x="115" y="60" width="45" height="70" fill="var(--rk-inv-warn)"/>
                    <text id="valMaterialsSvg" class="svg-bar-val" x="137.5" y="52">12 k</text>
                    <text class="svg-bar-label" x="137.5" y="148">Rury</text>
                    
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#94a3b8" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-inv-data-group">
                <div class="rk-inv-data-card highlight" id="cardHp">
                    <div class="rk-inv-data-info">
                        <h4>Moc Pompy Ciepła</h4>
                        <p id="descHp">Przewymiarowana (np. 9 kW)</p>
                    </div>
                    <div class="rk-inv-data-val" id="valHpCost">32 000 zł</div>
                </div>
                
                <div class="rk-inv-data-card highlight" id="cardMat">
                    <div class="rk-inv-data-info">
                        <h4>Koszty Rur (Zapas)</h4>
                        <p id="descMat">Kupione "na górkę" + ścinki</p>
                    </div>
                    <div class="rk-inv-data-val" id="valMatCost">12 000 zł</div>
                </div>

                <div class="rk-inv-data-card" style="background: var(--rk-inv-dark); border-color: var(--rk-inv-dark);">
                    <div class="rk-inv-data-info">
                        <h4 style="color: #ffffff;">Bilans Inwestycji</h4>
                        <p style="color: #94a3b8;">Łączne koszty materiałowe</p>
                    </div>
                    <div class="rk-inv-data-val" id="valTotalCost" style="color: #ffffff;">44 000 zł</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-inv-content">
        <p class="rk-inv-intro">
            Profesjonalny projekt ogrzewania podłogowego to inwestycja, która zwraca się już w dniu wizyty w hurtowni instalacyjnej. Oszacowania "na oko" i przewymiarowywanie urządzeń z obawy przed niedogrzaniem to najdroższe błędy na budowie. Dzięki dokładnym wyliczeniom zyskujesz trzykrotnie:
        </p>

        <div class="rk-benefit-cards">
            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                </div>
                <h4>Zero Odpadów</h4>
                <p>Kupujesz dokładnie tyle <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/" class="rk-link">metrów rury grzewczej</a>, ile wynika z rzutu CAD, unikając zakupu drogich zwojów "na zapas".</p>
            </div>
            
            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                </div>
                <h4>Tańsza Pompa</h4>
                <p>Precyzyjne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> często wykazuje, że zamiast jednostki 9 kW, budynek obsłuży tańszy model 6 kW (oszczędność rzędu 4 000 PLN).</p>
            </div>

            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h4>Idealny Komfort</h4>
                <p>Zrównoważone pętle i zaplanowane nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">rotametrach</a> eliminują problem "zimnej sypialni".</p>
            </div>
        </div>

        <div class="rk-subsidies-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Wymogi formalne dotacji 2026
            </h3>
            <p>
                Kompletna dokumentacja projektowa zawiera szczegółowe rysunki z trasowaniem rur, tabele nastaw rozdzielaczy oraz profesjonalny wynik OZC. Posiadanie takich dokumentów jest prawnie wymagane podczas audytów technicznych, by uzyskać dofinansowanie z programów takich jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/" class="rk-link">"Czyste Powietrze" czy "Moje Ciepło"</a>.
            </p>
        </div>
    </div>

    <div class="rk-inv-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-inv">
            ZAMÓW PROJEKT I ZACZNIJ OSZCZĘDZAĆ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-inv-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // Elementy DOM
    const btnBad = document.getElementById('btnInvBad');
    const btnGood = document.getElementById('btnInvGood');
    const pill = document.getElementById('invPill');
    
    const barHp = document.getElementById('barHeatPump');
    const barMat = document.getElementById('barMaterials');
    const valHpSvg = document.getElementById('valHeatPumpSvg');
    const valMatSvg = document.getElementById('valMaterialsSvg');
    
    const cardHp = document.getElementById('cardHp');
    const descHp = document.getElementById('descHp');
    const valHpCost = document.getElementById('valHpCost');
    
    const cardMat = document.getElementById('cardMat');
    const descMat = document.getElementById('descMat');
    const valMatCost = document.getElementById('valMatCost');
    
    const valTotalCost = document.getElementById('valTotalCost');

    function setMode(mode) {
        if (mode === 'bad') {
            // UI Toggle
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-danger)';

            // Animacja SVG Słupków (Wysokie koszty)
            barHp.setAttribute('y', '30');
            barHp.setAttribute('height', '100');
            barHp.style.fill = 'var(--rk-inv-danger)';
            valHpSvg.setAttribute('y', '22');
            valHpSvg.textContent = '32 k';

            barMat.setAttribute('y', '60');
            barMat.setAttribute('height', '70');
            barMat.style.fill = 'var(--rk-inv-warn)';
            valMatSvg.setAttribute('y', '52');
            valMatSvg.textContent = '12 k';

            // Animacja Kart HTML
            cardHp.classList.add('highlight');
            descHp.innerText = 'Przewymiarowana (np. 9 kW)';
            valHpCost.innerText = '32 000 zł';
            valHpCost.style.color = 'var(--rk-inv-danger)';

            cardMat.classList.add('highlight');
            descMat.innerText = 'Kupione "na górkę" + ścinki';
            valMatCost.innerText = '12 000 zł';
            valMatCost.style.color = 'var(--rk-inv-warn)';

            valTotalCost.innerText = '44 000 zł';

        } else {
            // UI Toggle
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-brand)';

            // Animacja SVG Słupków (Zoptymalizowane/niskie)
            barHp.setAttribute('y', '70');
            barHp.setAttribute('height', '60');
            barHp.style.fill = 'var(--rk-inv-brand)';
            valHpSvg.setAttribute('y', '62');
            valHpSvg.textContent = '28 k';

            barMat.setAttribute('y', '95');
            barMat.setAttribute('height', '35');
            barMat.style.fill = 'var(--rk-inv-brand)';
            valMatSvg.setAttribute('y', '87');
            valMatSvg.textContent = '9 k';

            // Animacja Kart HTML
            cardHp.classList.remove('highlight');
            descHp.innerText = 'Wyliczona z OZC (np. 6 kW)';
            valHpCost.innerText = '28 000 zł';
            valHpCost.style.color = 'var(--rk-inv-brand)';

            cardMat.classList.remove('highlight');
            descMat.innerText = 'Dokładna specyfikacja z rzutu CAD';
            valMatCost.innerText = '9 000 zł';
            valMatCost.style.color = 'var(--rk-inv-brand)';

            valTotalCost.innerText = '37 000 zł';
        }
    }

    // Inicjalizacja szerokości pigułki
    setTimeout(() => { pill.style.width = btnBad.offsetWidth + 'px'; }, 100);

    // Eventy
    btnBad.addEventListener('click', () => setMode('bad'));
    btnGood.addEventListener('click', () => setMode('good'));
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

.rk-expert-wrapper {
    max-width: 950px;
    margin: 50px auto 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.rk-expert-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-expert-header-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 10s linear infinite;
}

@keyframes spinRing {
    100% { transform: rotate(360deg); }
}

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.rk-expert-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-quote-accent-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.rk-expert-text {
    font-size: 18px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

.rk-expert-text a {
    color: var(--rk-quote-primary);
    text-decoration: underline;
    text-decoration-color: var(--rk-quote-accent);
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-expert-text a:hover {
    color: var(--rk-quote-accent);
}

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

.rk-expert-btn svg {
    transition: transform 0.3s;
}

.rk-expert-btn.active svg {
    transform: rotate(180deg);
}

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-data-val {
    display: block;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header-title { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Robert Kucharski: Instalatorskie 'na oko' to najdroższy system grzewczy świata",
    "description": "Ekspercka opinia na temat ryzyka łączenia pomp ciepła z instalacjami układanymi bez projektu OZC. Zobacz kluczowe parametry.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Instalatorskie 'na oko' to najdroższy system grzewczy świata. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak projektu OZC i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30 procent. Fizyki nie da się oszukać intuicją, a beton nie wybacza błędów.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-cytat",
    "name": "Eksperckie parametry graniczne dla pomp ciepła",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do skutecznej i taniej eksploatacji układu z rewersyjną pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt OZC podłogówka",
      "rozstaw rur pompa ciepła cytat",
      "inżynier hvac robert kucharski",
      "taktowanie pompy ciepła",
      "przewymiarowana sprężarka skutki"
    ],
    "measurementTechnique": "Określenie krytycznych wartości brzegowych weryfikacji projektu instalacji przed wylaniem jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Max temperatura zasilania (Tz): 35 stopni Celsjusza",
        "Zalecany rozstaw pętli (środek): 10 cm",
        "Spadek COP pompy: ok. 2.5% na każdy podniesiony 1 stopień Celsjusza"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-cytat",
    "name": "Panel Analityczny: Weryfikacja parametrów OZC",
    "description": "Interaktywny interfejs wyświetlający twarde dane liczbowe i parametry graniczne wynikające z norm hydraulicznych przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <div class="rk-expert-header-title">Głos Inżyniera</div>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Ostrzeżenie przed "intuicją"
            </span>
            <p class="rk-expert-text">
                "Instalatorskie 'na oko' to <strong>najdroższy system grzewczy świata</strong>. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30%. Fizyki nie da się oszukać intuicją, a <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylany beton</a> nie wybacza błędów."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń twarde dane projektowe
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-stat">
                        <span class="rk-data-val">Max 35&deg;C</span>
                        <span class="rk-data-lab">Temperatura (Tz)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">10 cm</span>
                        <span class="rk-data-lab">Optymalny rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">-2.5%</span>
                        <span class="rk-data-lab">Strata COP na 1&deg;C</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Maksymalna zalecana temperatura zasilania (Tz): 35°C</li>
                <li>Zalecany rozstaw pętli grzewczych: 10 cm</li>
                <li>Strata sprawności (COP): 2.5% na każdy podniesiony 1°C</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Brak nagłówków H-tag)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń dane projektowe <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń twarde dane projektowe <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-card: #1e293b;
    --rk-case-brand: #10b981; /* Szmaragdowy - wysoka wydajność */
    --rk-case-accent: #3b82f6; /* Niebieski - technologia */
    --rk-case-danger: #ef4444; /* Czerwony - straty */
    --rk-case-bg: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
}

.rk-case-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.12);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #064e3b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-brand);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-case-title span { color: var(--rk-case-brand); }

/* Kontener Interaktywny */
.rk-case-interactive {
    padding: 40px 50px;
    background: var(--rk-case-bg);
}

/* Selektor Wariantów */
.rk-case-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-tab {
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    padding: 20px 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-case-tab:hover {
    border-color: var(--rk-case-accent);
    transform: translateY(-2px);
}

.rk-case-tab.active {
    background: var(--rk-case-dark);
    border-color: var(--rk-case-brand);
    color: #ffffff;
}

.rk-tab-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 5px;
    opacity: 0.7;
}

.rk-tab-name {
    font-size: 15px;
    font-weight: 900;
}

/* Dashboard Wyników */
.rk-case-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 35px;
    align-items: center;
}

.rk-case-visual {
    background: var(--rk-case-dark);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-svg-dashboard {
    width: 100%;
    height: 100%;
}

/* Animacje słupków energii */
.svg-energy-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.3s;
}

.svg-text-val {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    fill: #ffffff;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Szczegółów */
.rk-case-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 20px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-data-info h4 {
    margin: 0 0 4px 0;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-case-muted);
}

.rk-data-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-case-text);
    font-weight: 700;
}

.rk-data-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-savings-highlight {
    background: var(--rk-case-brand);
    color: #ffffff;
    padding: 20px;
    border-radius: 16px;
    text-align: center;
}

.rk-savings-label { font-size: 12px; font-weight: 800; text-transform: uppercase; opacity: 0.9; margin-bottom: 5px; }
.rk-savings-val { font-size: 32px; font-weight: 900; }

/* Sekcja Treści */
.rk-case-content {
    padding: 45px 50px;
}

.rk-case-content h3 { font-size: 22px; font-weight: 900; color: var(--rk-case-dark); margin: 0 0 20px 0; }
.rk-case-content p { font-size: 16px; line-height: 1.8; color: var(--rk-case-text); margin-bottom: 20px; }
.rk-case-content strong { font-weight: 800; color: var(--rk-case-dark); }

.rk-check-list { list-style: none; padding: 0; margin: 25px 0; }
.rk-check-list li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; font-size: 15px; }
.rk-check-icon { color: var(--rk-case-brand); flex-shrink: 0; margin-top: 3px; }

.rk-link { color: var(--rk-case-accent); font-weight: 700; text-decoration: none; border-bottom: 1px dashed rgba(59, 130, 246, 0.4); transition: all 0.3s; }
.rk-link:hover { border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive, .rk-case-content { padding: 30px 20px; }
    .rk-case-tabs { grid-template-columns: 1fr; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-case-title { font-size: 22px; }
    .rk-data-card { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Case Study: Optymalizacja temperatury zasilania a oszczędności energii",
    "description": "Analiza rzeczywistego projektu domu 145 m2 w Warszawie. Dowiedz się, jak zmiana temperatury zasilania z 35 na 30 stopni Celsjusza obniża zużycie prądu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-case-study",
    "name": "Porównanie efektywności systemów grzewczych (SCOP)",
    "description": "Dane techniczne zużycia energii elektrycznej (kWh/rok) dla trzech wariantów instalacji w domu o obciążeniu 8 kW.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
        "SCOP pompy ciepła podłogówka",
        "zużycie prądu pompa ciepła dom 150m2",
        "projektowanie podłogówki 10 cm rozstaw",
        "oszczędności na ogrzewaniu podłogowym",
        "jastrych anhydrytowy wydajność"
    ],
    "measurementTechnique": "Symulacja rocznego zapotrzebowania na energię końcową na podstawie wskaźnika SCOP dla różnych parametrów zasilania (55stC, 40stC, 30stC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant A: Grzejniki (55stC), Zużycie 8500 kWh/rok, SCOP 2.8.",
        "Wariant B: Podłogówka 15cm (40stC), Zużycie 6600 kWh/rok, SCOP 3.6.",
        "Wariant C: Podłogówka Opti 10cm (30stC), Zużycie 5400 kWh/rok, SCOP 4.4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-case-study",
    "name": "Kalkulator Oszczędności Termo-Modernizacyjnych",
    "description": "Interaktywny symulator porównujący koszty eksploatacji pompy ciepła w zależności od gęstości ułożenia rur grzewczych i rodzaju wylewki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Analiza Rzeczywista: Dom 145 m&sup2;
        </div>
        <h2 class="rk-case-title">Case Study: Jak <span>-1200 PLN</span> rocznie zostaje w Twoim portfelu?</h2>
    </div>

    <div class="rk-case-interactive">
        <div class="rk-case-tabs">
            <div class="rk-case-tab" data-variant="A">
                <span class="rk-tab-label">Wariant A</span>
                <span class="rk-tab-name">Grzejniki (55&deg;C)</span>
            </div>
            <div class="rk-case-tab" data-variant="B">
                <span class="rk-tab-label">Wariant B</span>
                <span class="rk-tab-name">Podłogówka (15cm)</span>
            </div>
            <div class="rk-case-tab active" data-variant="C">
                <span class="rk-tab-label">Wariant C</span>
                <span class="rk-tab-name">Projekt RK (10cm)</span>
            </div>
        </div>

        <div class="rk-case-grid">
            <div class="rk-case-visual">
                <div style="color: #94a3b8; font-size: 11px; font-weight: 800; text-transform: uppercase; margin-bottom: 15px; letter-spacing: 1px;">Roczne zużycie energii (kWh)</div>
                <svg class="rk-svg-dashboard" viewBox="0 0 200 180">
                    <line x1="20" y1="150" x2="180" y2="150" stroke="#475569" stroke-width="2"/>
                    <rect id="barEnergy" class="svg-energy-bar" x="70" y="40" width="60" height="110" fill="var(--rk-case-brand)"/>
                    <text id="textEnergy" class="svg-text-val" x="100" y="30" text-anchor="middle" font-size="16">5400</text>
                    <text x="100" y="170" text-anchor="middle" fill="#94a3b8" font-size="10" font-weight="800">kWh / ROK</text>
                </svg>
            </div>

            <div class="rk-case-data">
                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Współczynnik SCOP</h4>
                        <p id="descScop">Zoptymalizowana sprawność</p>
                    </div>
                    <div class="rk-data-val" id="valScop">4.4</div>
                </div>

                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Parametr Zasilania</h4>
                        <p id="descTemp">Zasilanie niskotemperaturowe</p>
                    </div>
                    <div class="rk-data-val" id="valTemp">30&deg;C</div>
                </div>

                <div class="rk-savings-highlight">
                    <div class="rk-savings-label">Zysk roczny względem standardu</div>
                    <div class="rk-savings-val" id="valSavings">1 200 PLN</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-content">
        <h3>Precyzyjny projekt to czysta matematyka oszczędności</h3>
        <p>
            W październiku 2025 roku, realizując projekt dla Pani Anny w Warszawie (nowoczesny dom szkieletowy o powierzchni 145 m&sup2;, spełniający standardy WT 2021), udowodniliśmy, że inżynieryjne podejście do instalacji bije na głowę tradycyjne wykonawstwo. Rozważyliśmy budynek o realnym obciążeniu cieplnym <strong>8 kW</strong> (przy temperaturze obliczeniowej -20&deg;C).
        </p>

        <ul class="rk-check-list">
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant A (Najdroższy):</strong> System oparty na grzejnikach wymusza temperaturę 55&deg;C. SCOP spada do 2,8, co generuje rachunek za 8500 kWh prądu rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant B (Standardowy):</strong> Podłogówka układana "na oko" (rozstaw 15 cm) wymaga 40&deg;C. SCOP wynosi 3,6 przy zużyciu 6600 kWh rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                <span><strong>Wariant C (Zoptymalizowany RK):</strong> Gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-link">rozstaw rur co 10 cm</a> oraz jastrych anhydrytowy pozwoliły obniżyć Tz do 30&ndash;32&deg;C. SCOP wzrósł do <strong>4,4</strong>, redukując zużycie do 5400 kWh.</span>
            </li>
        </ul>

        <p>
            Różnica między wariantem B a C to aż <strong>1200 kWh rocznie</strong>. Przy obecnej rynkowej cenie energii elektrycznej (1 PLN/kWh), inwestorka oszczędza 1200 PLN każdego roku. Dodatkowy koszt rur i profesjonalnego projektu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> zwraca się całkowicie już po 3 latach eksploatacji, a przez kolejne 20 lat instalacja generuje czysty zysk.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-case-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const tabs = document.querySelectorAll('.rk-case-tab');
    const barEnergy = document.getElementById('barEnergy');
    const textEnergy = document.getElementById('textEnergy');
    const valScop = document.getElementById('valScop');
    const valTemp = document.getElementById('valTemp');
    const valSavings = document.getElementById('valSavings');
    const descScop = document.getElementById('descScop');
    const descTemp = document.getElementById('descTemp');

    const data = {
        'A': { energy: 8500, scop: '2.8', temp: '55°C', savings: '- 1 900 zł', color: '#ef4444', dS: 'Niska wydajność PC', dT: 'Wysoki parametr' },
        'B': { energy: 6600, scop: '3.6', temp: '40°C', savings: '0 PLN', color: '#f59e0b', dS: 'Wydajność standardowa', dT: 'Parametr średni' },
        'C': { energy: 5400, scop: '4.4', temp: '30°C', savings: '+ 1 200 zł', color: '#10b981', dS: 'Zoptymalizowana sprawność', dT: 'Zasilanie niskotemperaturowe' }
    };

    function updateVariant(v) {
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-case-tab[data-variant="${v}"]`).classList.add('active');

        const d = data[v];
        
        // Animacja Słupka (max energy 8500 -> height 130px)
        const h = (d.energy / 8500) * 130;
        barEnergy.setAttribute('height', h);
        barEnergy.setAttribute('y', 150 - h);
        barEnergy.setAttribute('fill', d.color);
        
        textEnergy.textContent = d.energy;
        textEnergy.setAttribute('y', 140 - h);
        textEnergy.style.fill = d.color;

        // Dane tekstowe
        valScop.innerText = d.scop;
        valScop.style.color = d.color;
        valTemp.innerText = d.temp;
        valSavings.innerText = d.savings;
        
        descScop.innerText = d.dS;
        descTemp.innerText = d.dT;
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', () => updateVariant(tab.getAttribute('data-variant')));
    });

    // Start na wariancie C
    updateVariant('C');
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5; /* Eksperckie Indygo */
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4; /* Cyjan dla kontrastu */
    --rk-faq-success: #10b981;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-brand);
}

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #a5b4fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(165, 180, 252, 0.3);
}

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq-title span { color: #818cf8; }

/* Sekcja Akordeonu */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
}

/* Przycisk Pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-brand-light);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-brand);
    color: #ffffff;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi (Animacja Grid) */
.rk-faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: center;
}

.rk-faq-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-faq-text);
}

.rk-faq-text strong {
    font-weight: 800;
    color: var(--rk-faq-dark);
}

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #3730a3;
    border-bottom-style: solid;
}

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Pompa + Podłogówka */
.anim-heat-rise { stroke-dasharray: 6 12; animation: heatRise 2s linear infinite; opacity: 0; }
.rk-faq-item.active .anim-heat-rise { opacity: 1; stroke: #ef4444; }
@keyframes heatRise { to { stroke-dashoffset: -36; } }

/* 2. Pogodówka (Krzywa) */
.anim-curve { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s 0.3s ease-out; }
.rk-faq-item.active .anim-curve { stroke-dashoffset: 0; }
.anim-weather-sun { animation: spinSun 10s linear infinite; transform-origin: 25px 25px; }
@keyframes spinSun { to { transform: rotate(360deg); } }

/* 3. Rozstaw 10cm */
.anim-pipe-close { transition: transform 0.8s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-faq-item.active .pipe-top { transform: translateY(15px); }
.rk-faq-item.active .pipe-bot { transform: translateY(-15px); }

/* 4. Bufor (Defrost) */
.anim-defrost { opacity: 0; transition: opacity 0.5s 0.5s; }
.rk-faq-item.active .anim-defrost { opacity: 1; animation: pulseBlue 2s infinite alternate; }
@keyframes pulseBlue { from { fill: #3b82f6; } to { fill: #93c5fd; } }

/* 5. Wylewka Anhydryt */
.anim-liquid { transform: scaleY(0); transform-origin: bottom; transition: transform 1s 0.3s ease-out; }
.rk-faq-item.active .anim-liquid { transform: scaleY(1); }

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq-visual { height: 120px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o ogrzewanie podłogowe i pompy ciepła",
    "description": "Eksperckie odpowiedzi na pytania dotyczące rozstawu rur, buforów ciepła, sterowania pokojowego i doboru wylewki przy pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to rozwiązanie wręcz idealne. Pompa inwerterowa osiąga najwyższą sprawność (COP) zasilając instalację niskotemperaturową na poziomie 30-35 stopni Celsjusza. Połączenie to gwarantuje najniższe rachunki i pełny komfort."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę sterować każdym pokojem osobno przy pompie ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jest to technicznie możliwe, ale w nowoczesnych domach odradzane. Lepszym wyborem jest sterowanie pogodowe. Szybkie zamykanie pętli przez siłowniki termoelektryczne zaburza przepływy masowe i powoduje tzw. taktowanie sprężarki."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla pomp ciepła bezwzględnym standardem projektowym jest 10 cm. Zagęszczenie rur pozwala na drastyczne obniżenie temperatury zasilania do 30°C, co maksymalizuje wskaźnik COP. W strefach brzegowych pod oknami stosuje się rozstaw 5-7,5 cm."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebuję bufora ciepła, jeśli mam tylko ogrzewanie podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie do magazynowania ciepła (tę rolę pełni wylewka), ale niewielki bufor na powrocie (15-20 litrów/kW) gwarantuje zład wody wymagany do procesu bezpiecznego odszraniania (defrostu) parownika zewnętrznego zimą."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka wylewka jest optymalna do podłogówki z pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepszym wyborem jest jastrych anhydrytowy. Posiada prawie dwukrotnie lepszy współczynnik przewodzenia ciepła niż beton z miksokreta (ok. 1,8-2,0 W/mK) i idealnie, płynnie otula rury grzewcze bez pozostawiania pustek powietrznych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-faq",
    "name": "Baza Wiedzy: Parametry operacyjne instalacji niskotemperaturowych",
    "description": "Zbiór kluczowych pytań i odpowiedzi inwestorskich dotyczących optymalizacji parametrów fizycznych dla systemów ogrzewania płaszczyznowego współpracujących z OZE.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny",
    "description": "Aplikacja edukacyjna w formie akordeonu ze zintegrowanymi animacjami SVG ułatwiająca wizualizację procesów hydraulicznych i termicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, jest to rozwiązanie <strong>wręcz idealne</strong>. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-link">Pompa ciepła pracuje najwydajniej</a> przy bardzo niskich temperaturach (30&ndash;35&deg;C na zasilaniu), które są standardem i wymogiem dla komfortowego ogrzewania podłogowego. Brak tradycyjnych kaloryferów oznacza brak konieczności podnoszenia temperatury do 50&deg;C, co drastycznie tnie rachunki za prąd.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="50" width="60" height="10" fill="#64748b" rx="2"/>
                                    <path class="anim-heat-rise" d="M 30 50 L 30 10 M 50 50 L 50 10 M 70 50 L 70 10" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <rect x="10" y="20" width="15" height="30" fill="#3b82f6" rx="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy mogę sterować każdym pokojem osobno przy pompie ciepła?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Można, ale w nowoczesnych domach inżynieryjnie <strong>zdecydowanie lepiej sprawdza się</strong> tzw. autoadaptacja lub <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" class="rk-link">sterowanie pogodowe (krzywa grzewcza)</a>. Wylewka betonowa ma ogromną bezwładność. Szybkie odcinanie <a href="https://projekt-ogrzewania.pl/petla-grzewcza/" class="rk-link">pętli</a> przez zamykanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-link">siłowników termoelektrycznych</a> powoduje zadławienia układu i niszczące dla kompresora taktowanie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <g class="anim-weather-sun"><circle cx="25" cy="25" r="8" fill="#eab308"/><path d="M 25 10 L 25 15 M 25 35 L 25 40 M 10 25 L 15 25 M 35 25 L 40 25" stroke="#eab308" stroke-width="2" stroke-linecap="round"/></g>
                                    <path d="M 20 60 L 90 60 M 20 60 L 20 10" stroke="#475569" stroke-width="2"/>
                                    <path class="anim-curve" d="M 20 50 Q 50 40 90 15" fill="none" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Dla pomp ciepła <strong>standardem jest 10 cm</strong>. Zagęszczenie ułożenia pozwala na sztuczne "powiększenie" grzejnika, jakim jest podłoga, co z kolei pozwala obniżyć temperaturę zasilania na kotłowni do 30&deg;C. To drastycznie poprawia współczynnik COP w porównaniu do rozstawu 15 cm (zysk rzędu kilkunastu procent oszczędności rocznie). Przy dużych oknach stosuje się 5-7,5 cm (<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefa brzegowa</a>).
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="20" y1="10" x2="80" y2="10" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-top" x1="20" y1="20" x2="80" y2="20" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="40" x2="80" y2="40" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-bot" x1="20" y1="60" x2="80" y2="60" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="70" x2="80" y2="70" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy potrzebuję bufora, jeśli mam tylko podłogówkę?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                System ogrzewania podłogowego sam w sobie to wielki magazyn ciepła, więc <strong>duży bufor nie jest wymagany</strong>. Jednak ze względów bezpieczeństwa hydraulicznego, zaleca się stosowanie niewielkiego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">bufora szeregowego na powrocie</a> (ok. 15-20 litrów na kW). Zabezpiecza to pompę, dostarczając zład wody niezbędny do procesu odszraniania (defrostu) urządzenia z lodu.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 20 L 80 20 M 20 50 L 50 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                    <rect x="50" y="35" width="20" height="30" fill="#334155" rx="4"/>
                                    <rect x="52" y="37" width="16" height="26" class="anim-defrost" fill="#3b82f6" rx="2"/>
                                    <path d="M 70 50 L 80 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jakie wylewki są najlepsze pod pompę ciepła?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Inżynieryjnie najlepszym wyborem jest <strong>jastrych anhydrytowy</strong>. Posiada on wyższy współczynnik przewodzenia ciepła niż beton z miksokreta. Co ważniejsze, jego płynna konsystencja <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">szczelnie otula rury</a>, eliminując puste komory powietrzne, które działają jak izolator. Dzięki temu instalacja nagrzewa się szybciej i może pracować na niższych parametrach.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="50" width="80" height="15" fill="#475569" rx="2"/>
                                    <circle cx="30" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="50" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="70" cy="50" r="6" fill="#ef4444"/>
                                    <rect class="anim-liquid" x="10" y="20" width="80" height="30" fill="#fcd34d" opacity="0.8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-faq-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            faqItems.forEach(i => i.classList.remove('active'));
            
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-pmp-dark: #0f172a;
    --rk-pmp-primary: #2563eb;
    --rk-pmp-light: #eff6ff;
    --rk-pmp-accent: #f59e0b;
    --rk-pmp-success: #10b981;
    --rk-pmp-success-bg: #d1fae5;
    --rk-pmp-danger: #ef4444;
    --rk-pmp-danger-bg: #fee2e2;
    --rk-pmp-gray: #64748b;
    --rk-pmp-border: #e2e8f0;
    --rk-pmp-bg: #ffffff;
}

.rk-pmp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-pmp-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-pmp-header {
    padding: 50px 40px;
    background: radial-gradient(circle at top right, #1e293b, var(--rk-pmp-dark));
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-pmp-primary);
}

.rk-pmp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    padding: 8px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-pmp-quote {
    font-size: 24px;
    font-weight: 800;
    line-height: 1.5;
    color: #ffffff;
    max-width: 750px;
    margin: 0 auto 20px auto;
}

.rk-pmp-quote span {
    color: var(--rk-pmp-accent);
}

/* Interaktywny Symulator Kosztów */
.rk-pmp-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-pmp-sim-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-pmp-sim-header h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-pmp-dark);
    margin: 0 0 10px 0;
}

.rk-pmp-sim-header p {
    color: var(--rk-pmp-gray);
    font-size: 15px;
    margin: 0;
}

/* Suwak (Slider) */
.rk-pmp-slider-box {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-pmp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-pmp-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 14px;
}

.rk-pmp-label-left { color: var(--rk-pmp-danger); }
.rk-pmp-label-right { color: var(--rk-pmp-success); }

.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, var(--rk-pmp-danger) 0%, #cbd5e1 50%, var(--rk-pmp-success) 100%);
    outline: none;
    transition: opacity .2s;
    cursor: pointer;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pmp-primary);
    cursor: grab;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    transition: transform 0.2s;
}

.rk-range-slider::-webkit-slider-thumb:active {
    transform: scale(1.1);
    cursor: grabbing;
}

/* Wynik symulacji */
.rk-pmp-result-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.rk-pmp-data-card {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--rk-pmp-border);
    text-align: center;
    transition: all 0.3s;
}

.rk-pmp-data-value {
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    margin: 10px 0;
    transition: color 0.3s;
}

.rk-pmp-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-pmp-gray);
}

.rk-pmp-svg-container {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-pmp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}

/* SVG Animations */
.pipe-path {
    fill: none;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, stroke-dashoffset 0.5s;
}

.thermometer-fill {
    transition: height 0.5s, y 0.5s, fill 0.5s;
}

/* Treść podsumowania */
.rk-pmp-content {
    padding: 40px 50px;
    background: #ffffff;
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

.rk-pmp-content p {
    margin-bottom: 20px;
}

.rk-pmp-content strong {
    color: var(--rk-pmp-dark);
    font-weight: 800;
}

.rk-pmp-content a {
    color: var(--rk-pmp-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s;
}

.rk-pmp-content a:hover {
    border-color: var(--rk-pmp-primary);
}

/* CTA */
.rk-pmp-cta {
    padding: 40px 50px;
    background: var(--rk-pmp-light);
    text-align: center;
    border-top: 1px solid var(--rk-pmp-border);
}

.rk-btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-pmp-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-hero:hover {
    transform: translateY(-4px);
    background: var(--rk-pmp-primary);
    box-shadow: 0 20px 35px -5px rgba(37, 99, 235, 0.5);
}

.rk-btn-hero svg {
    transition: transform 0.3s;
}

.rk-btn-hero:hover svg {
    transform: translateX(6px);
}

@media (max-width: 768px) {
    .rk-pmp-header, .rk-pmp-interactive, .rk-pmp-content, .rk-pmp-cta { padding: 30px 20px; }
    .rk-pmp-result-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-pmp-quote { font-size: 20px; }
    .rk-btn-hero { width: 100%; padding: 18px 20px; font-size: 15px; justify-content: center; }
    .rk-pmp-data-value { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Podsumowanie: Projekt podłogówki to fundament wydajności pompy ciepła",
    "description": "Zakończenie analizy inżynieryjnej: dlaczego optymalizacja hydrauliki, rozstawu rur i bezwładności termicznej jest kluczem do niskich rachunków w domach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-koszty",
    "name": "Porównanie kosztów eksploatacji pompy ciepła: Montaż standardowy vs Inżynieryjny (2026)",
    "description": "Zestawienie obrazujące wpływ jakości projektu ogrzewania podłogowego (rozstaw rur, obliczenia OZC) na ostateczny rachunek za prąd przy użyciu pompy ciepła w sezonie zimowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania dom z pompą ciepła",
      "oszczędności na pompie ciepła",
      "rozstaw rur a COP",
      "rachunki za ogrzewanie 2026",
      "projekt ogrzewania podłogowego ROI"
    ],
    "measurementTechnique": "Kalkulacja kosztów miesięcznych na podstawie symulacji zużycia prądu (COP) względem temperatury zasilania narzuconej przez parametry hydrauliczne podłogówki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż 'na oko' (Rozstaw 15 cm, Tz 40°C): Rachunek ok. 750 PLN / mc. Niska sprawność.",
        "Projekt Optymalny (Rozstaw 10 cm, Tz 30°C, obliczone OZC): Rachunek ok. 250 PLN / mc. Wysoka sprawność."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-symulator",
    "name": "Symulator Rachunków: Wpływ Projektu na Pompę Ciepła",
    "description": "Interaktywny suwak demonstrujący, jak przejście od amatorskiego układania rur do profesjonalnego projektu OZC drastycznie obniża temperaturę zasilania (Tz) i redukuje miesięczne koszty prądu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pmp-container" id="rk-pmp-sum-app">
    <div class="rk-pmp-header">
        <div class="rk-pmp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Podsumowanie Eksperckie
        </div>
        <h2 class="rk-pmp-quote">
            "Pompa ciepła jest <span>tylko tak dobra</span>, jak instalacja podłogowa, którą zasila."
        </h2>
    </div>

    <div class="rk-pmp-interactive">
        <div class="rk-pmp-sim-header">
            <h3>Symulator COP i Rachunków</h3>
            <p>Przesuń suwak, aby zobaczyć, jak brak obliczeń niszczy portfel inwestora.</p>
        </div>

        <div class="rk-pmp-slider-box">
            <div class="rk-pmp-labels">
                <span class="rk-pmp-label-left">Montaż "na oko" (bez projektu)</span>
                <span class="rk-pmp-label-right">Projekt Inżynierski (OZC)</span>
            </div>
            <input type="range" min="0" max="100" value="100" class="rk-range-slider" id="rkSimSlider">
        </div>

        <div class="rk-pmp-result-grid">
            <div class="rk-pmp-data-card" id="rkDataCard">
                <div class="rk-pmp-data-label">Szacowany koszt miesięczny</div>
                <div class="rk-pmp-data-value" id="rkCostVal">250 PLN</div>
                <div class="rk-pmp-data-label" style="margin-top: 15px; color: #94a3b8;">Temp. Zasilania (Tz)</div>
                <div style="font-size: 20px; font-weight: 800; color: var(--rk-pmp-dark);" id="rkTzVal">30°C</div>
            </div>

            <div class="rk-pmp-svg-container">
                <svg width="100%" height="150" viewBox="0 0 300 150">
                    <rect x="20" y="20" width="20" height="100" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect id="svgThermo" class="thermometer-fill" x="22" y="90" width="16" height="28" rx="8" fill="var(--rk-pmp-success)"/>
                    <circle cx="30" cy="120" r="15" fill="inherit" id="svgThermoBase" style="fill: var(--rk-pmp-success); transition: fill 0.5s;"/>
                    
                    <path id="svgPipe" class="pipe-path" d="M80 120 L80 40 A10 10 0 0 1 100 40 L100 120 A10 10 0 0 0 120 120 L120 40 A10 10 0 0 1 140 40 L140 120 A10 10 0 0 0 160 120 L160 40 A10 10 0 0 1 180 40 L180 120 A10 10 0 0 0 200 120 L200 40 A10 10 0 0 1 220 40 L220 120 A10 10 0 0 0 240 120 L240 40" stroke="var(--rk-pmp-success)" />
                    
                    <circle cx="260" cy="80" r="25" fill="none" stroke="var(--rk-pmp-dark)" stroke-width="4"/>
                    <polygon points="255,65 275,80 255,95" fill="var(--rk-pmp-dark)"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-pmp-content">
        <p>
            Prawidłowy projekt ogrzewania podłogowego z pompą ciepła to fundament nowoczesnego, energooszczędnego budynku. Jeśli zlekceważysz fazę inżynieryjną, zgadując długości pętli i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">zakładając uniwersalny rozstaw rur (np. co 15 cm)</a>, zniwelujesz cały zysk technologiczny nowoczesnej sprężarki inwerterowej. Zbyt rzadko ułożone rury i niepoliczone przepływy wymuszą podniesienie temperatury zasilania.
        </p>
        <p>
            <strong>Optymalna hydraulika instalacji</strong>, minimalne opory liniowe (krótkie pętle do 80-90 m) oraz maksymalna powierzchnia wymiany ciepła (zagęszczony układ w oparciu o wyliczenia z OZC) to jedyna techniczna droga, aby utrzymać <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania domu na poziomie 200–300 PLN miesięcznie</a> w środku zimy.
        </p>
    </div>

    <div class="rk-pmp-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-hero">
            ODKRYJ BAZĘ WIEDZY O POMPACH CIEPŁA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-pmp-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">⚠️</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane JSON-LD stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie skryptu na nieautoryzowanej domenie zostało zablokowane ze względów bezpieczeństwa.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Slider)
    const slider = document.getElementById('rkSimSlider');
    const costVal = document.getElementById('rkCostVal');
    const tzVal = document.getElementById('rkTzVal');
    const card = document.getElementById('rkDataCard');
    const pipe = document.getElementById('svgPipe');
    const thermo = document.getElementById('svgThermo');
    const thermoBase = document.getElementById('svgThermoBase');

    function updateSimulation(value) {
        // Obliczenia interpolowane
        // value: 0 (Na oko) -> 100 (Projekt OZC)
        const invertVal = 100 - value; // 100 to na oko, 0 to OZC
        
        // Koszty: od 250 PLN (pro) do 750 PLN (amator)
        const cost = 250 + (invertVal * 5); 
        
        // Tz: od 30°C do 42°C
        const tz = 30 + (invertVal * 0.12);

        // Aktualizacja DOM
        costVal.innerText = Math.round(cost) + ' PLN';
        tzVal.innerText = tz.toFixed(1) + '°C';

        // Wizualizacja kolorów i wysokości termometru
        let colorStr = '';
        let borderColor = '';
        let thermoHeight = 28; // Min height
        let thermoY = 90; // Start Y

        if (value >= 70) {
            // Stan idealny (Zielony)
            colorStr = 'var(--rk-pmp-success)';
            borderColor = 'var(--rk-pmp-success)';
            card.style.borderColor = 'var(--rk-pmp-success)';
            card.style.backgroundColor = 'var(--rk-pmp-success-bg)';
            costVal.style.color = 'var(--rk-pmp-success)';
            thermoHeight = 30;
            thermoY = 88;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else if (value >= 40) {
            // Stan średni (Pomarańczowy)
            colorStr = 'var(--rk-pmp-accent)';
            borderColor = 'var(--rk-pmp-accent)';
            card.style.borderColor = 'var(--rk-pmp-accent)';
            card.style.backgroundColor = '#fef3c7';
            costVal.style.color = '#d97706';
            thermoHeight = 60;
            thermoY = 58;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else {
            // Stan krytyczny (Czerwony)
            colorStr = 'var(--rk-pmp-danger)';
            borderColor = 'var(--rk-pmp-danger)';
            card.style.borderColor = 'var(--rk-pmp-danger)';
            card.style.backgroundColor = 'var(--rk-pmp-danger-bg)';
            costVal.style.color = 'var(--rk-pmp-danger)';
            thermoHeight = 90;
            thermoY = 28;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        }

        // Aplikacja kolorów do SVG
        pipe.style.stroke = colorStr;
        thermo.style.fill = colorStr;
        thermoBase.style.fill = colorStr;
        
        // Animacja termometru
        thermo.setAttribute('height', thermoHeight);
        thermo.setAttribute('y', thermoY);
    }

    // Inicjalizacja
    slider.addEventListener('input', function(e) {
        updateSimulation(e.target.value);
    });
    
    // Uruchomienie na starcie (wartość 100)
    updateSimulation(100);
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
}

.download-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--dl-white);
    border-radius: 24px;
    border: 1px solid var(--dl-border);
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.05);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.dl-header {
    background: linear-gradient(135deg, var(--dl-primary) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: var(--dl-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.dl-header-content { position: relative; z-index: 2; max-width: 60%; }

.dl-badge {
    display: inline-block;
    background: rgba(14, 165, 233, 0.2);
    border: 1px solid rgba(14, 165, 233, 0.3);
    color: #7dd3fc;
    padding: 6px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

.dl-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

/* WIZUALIZACJA PDF / IKONA */
.dl-header-visual {
    position: relative;
    z-index: 2;
}

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

@keyframes floatIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-10px); }
}

/* GŁÓWNY WORKSPACE */
.dl-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-white);
}

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.dl-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-text);
}

.dl-check-svg {
    width: 20px;
    height: 20px;
    color: var(--dl-accent);
    flex-shrink: 0;
}

/* PRZYCISK POBIERANIA */
.dl-main-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-accent);
    color: var(--dl-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
}

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
}

.dl-main-btn span { font-size: 20px; }

/* STOPKA MODUŁU */
.dl-footer {
    padding: 20px 50px;
    background: var(--dl-bg);
    border-top: 1px solid var(--dl-border);
    font-size: 13px;
    color: var(--dl-muted);
    text-align: center;
}

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 800px) {
    .dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .dl-header-content { max-width: 100%; margin-bottom: 25px; }
    .dl-workspace { flex-direction: column; padding: 30px 20px; }
    .dl-preview-box { margin-bottom: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#infografika-download",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Kompletna Infografika PDF: Projekt ogrzewania podłogowego z pompą ciepła",
    "description": "Pobierz inżynierskie zestawienie wytycznych dla systemów płaszczyznowych. Wykres COP, długość pętli, dobór wylewki oraz parametry zasilania w jednym pliku PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-infografika",
    "name": "Wytyczne projektowe dla ogrzewania podłogowego z PC",
    "description": "Zbiór kluczowych danych: krzywa sprawności COP w funkcji temperatury, optymalna długość rury 16x2 oraz niezbędny przepływ hydrauliczny l/h.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "wykres cop pompy ciepła",
      "projekt podłogówki schemat",
      "rozstaw rur 10cm parametry",
      "jak pobrać projekt podłogówki"
    ],
    "measurementTechnique": "Zestawienie optymalnych parametrów termodynamicznych na grafice 2D.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Schemat optymalizacji i najczęstsze błędy instalacyjne"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-download",
    "name": "Centrum Pobierania: Arkusz Projektowy PC",
    "description": "Interaktywny moduł umożliwiający pogląd w wysokiej rozdzielczości i bezpośrednie pobranie dokumentacji technicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="download-hub-container" id="app-pc-infographic-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały 2026</div>
            <h2>Pobierz Arkusz Inżynierski</h2>
            <p>Zabierz ekspercką wiedzę bezpośrednio na budowę. Wykresy sprawności COP, parametry hydrauliczne i schematy montażowe w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp" alt="Infografika - Projekt ogrzewania podłogowego z pompą ciepła. Schematy budowy, wykresy COP i kluczowe parametry techniczne." class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.7); color:white; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:700;">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wykres: Efektywność COP a temp. zasilania
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Przekrój: Optymalny jastrych i masa (150 kg/m²)
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie: Najczęstsze błędy instalacyjne
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Limity fizyki: Długości pętli rury 16mm
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.pdf" class="dl-main-btn" target="_blank" rel="noopener">
                <span>📥</span> POBIERZ DOKUMENT (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.5;">
                Pragniesz przełożyć tę teorię na praktykę we własnym domu? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-accent-dark); font-weight:800;">Zamów indywidualny projekt OZC</a> i uzyskaj pełną dokumentację wykonawczą dla swojego instalatora.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie materiału w formie niezmienionej jest w pełni dozwolone.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-pc-infographic-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b;">Zasoby Chronione</div>
                    <p style="color: #b91c1c; font-size: 14px;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Pobieranie z zewnętrznych serwerów jest zabronione.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
