<?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>Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 11 Jul 2026 09:39:58 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/</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>
					<comments>https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#respond</comments>
		
		<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>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</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>Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 07:40:41 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Oszczędności energii]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[błędy na budowie]]></category>
		<category><![CDATA[dylatacje podłogówki]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[koszty budowy]]></category>
		<category><![CDATA[norma pn-en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[próba ciśnieniowa]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[rotametry]]></category>
		<category><![CDATA[rozdzielacz inox]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[styropian pod wylewkę]]></category>
		<category><![CDATA[taśma brzegowa]]></category>
		<category><![CDATA[usterki hydrauliczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4403</guid>

					<description><![CDATA[<p>Zdecydowałeś się na nowoczesną instalację płaszczyznową, zapłaciłeś za profesjonalne wyliczenia OZC i kupiłeś drogi rozdzielacz? To świetny start, ale niestety to za mało, aby spać spokojnie. Prawdziwy test dla Twojej inwestycji odbywa się w momencie zalewania rur betonem. To właśnie w tej fazie najczęściej dochodzi do kosztownych pomyłek z winy pośpiechu i brawury ekip. Pozorna oszczędność na taśmie dylatacyjnej, zalanie jastrychu bez odpowiedniego ciśnienia czy zignorowanie zaleceń dotyczących grubości izolacji to klasyczne przykłady na to, jak najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, potrafią zrujnować Twój portfel. Skucie popękanej posadzki i naprawa wycieków kosztują kilkadziesiąt tysięcy złotych. Przeczytaj ten raport, zapisz naszą listę kontrolną i obroń swój budżet, zanim betoniarka wjedzie na plac budowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Zmiana na czerwień/ostrzegawczy, pasujący do tematyki błędów i strat finansowych */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2; /* Jasnoczerwone tło dopasowane do akcentu */
    --border-color: #fca5a5;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 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: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    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 #fecaca;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hero-text a:hover {
    color: #991b1b;
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.15);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego",
    "description": "Klasyczne błędy wykonawcze, brak próby ciśnieniowej i odchylenia od projektu OZC oraz normy PN-EN 1264, które drastycznie podnoszą koszty inwestycji i eksploatacji ogrzewania podłogowego.",
    "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"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ błędów wykonawczych na koszty ogrzewania podłogowego",
    "description": "Zestawienie mierzalnych strat finansowych i technicznych wynikających z niestosowania się do norm PN-EN 1264 i obliczeń OZC na etapie wykonawstwa.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Brak próby ciśnieniowej",
        "value": "23 400 PLN",
        "description": "Średni koszt naprawy (skucie posadzki 42m², nowy jastrych, odtworzenie paneli) po wycieku"
      },
      {
        "@type": "PropertyValue",
        "name": "Przekroczenie długości pętli",
        "value": "140 m zamiast 90 m",
        "description": "Zbyt duży opór hydrauliczny uniemożliwiający wyregulowanie rotametru i niedogrzanie pomieszczeń"
      },
      {
        "@type": "PropertyValue",
        "name": "Brak izolacji wg WT2021",
        "value": "18 cm zamiast 20 cm EPS",
        "description": "Trwała utrata izolacyjności powodująca wzrost kosztów eksploatacji przy pompie ciepła"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Strat Wykonawczych Ogrzewania Podłogowego",
    "description": "Interaktywne zestawienie pozwalające zrozumieć algorytmom wyszukiwarek relację między konkretnym odchyleniem od projektu a końcowym kosztem naprawy dla inwestora (np. brak manometru vs skucie posadzki).",
    "applicationCategory": "Kalkulator Inżynieryjny",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>💸</span> Prawdziwe Koszty Błędów
        </div>
        
        <p class="hero-text">W kwietniu 2026 roku w domu 158m² w Małopolsce inwestor zalał jastrych na rurach bez wcześniejszej próby ciśnieniowej i <strong>stracił 23 400 zł na skuciu posadzki</strong>. To klasyczny przykład, dlaczego najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, ostatecznie kosztują wielokrotnie więcej niż sam projekt. Błąd wynikał z pośpiechu ekipy wylewkowej i braku podstawowej weryfikacji.</p>
        
        <p class="hero-text"><strong>Najczęstsze błędy na budowie</strong>, które psują instalację, to przede wszystkim odchylenia wykonawcze od obliczeń OZC i <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normy PN-EN 1264</a>. Powodują one nierównomierny rozkład temperatury i drastyczny wzrost kosztów eksploatacji. W Projekt-Ogrzewania.pl widzę to od 2012 roku, weryfikując instalacje w ponad 1000 domach. Projekt za 499 zł nie zadziała, jeśli wykonawca na budowie <strong>da 18 cm styropianu zamiast 20 cm</strong> albo ułoży pętlę o długości 140 m zamiast obliczeniowych 90 m.</p>

        <div class="hero-modules-title">W tym poradniku demaskujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Brak próby ciśnieniowej przed wylewką</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Zły rozstaw rur ignorujący OZC</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">➰</span>
                <span class="hero-card-title">Przewymiarowane pętle powyżej 100 m</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🧊</span>
                <span class="hero-card-title">Za cienki styropian (ignorowanie WT2021)</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Konsekwencje i koszty odchyleń od projektu</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Błąd wykonawczy</th>
                        <th style="padding: 10px 0; color: #475569;">Odchylenie od normy / projektu</th>
                        <th style="padding: 10px 0; color: #475569;">Konsekwencja (Koszty)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak próby szczelności</td>
                        <td style="padding: 10px 0;">Zalanie rur bez ciśnienia 6 bar</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek i skucie posadzki (ok. 23 400 zł)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Za długa pętla grzewcza</td>
                        <td style="padding: 10px 0;">Układanie 140 m zamiast 90 m</td>
                        <td style="padding: 10px 0; color: #dc2626;">Brak możliwości wyregulowania rotametrem</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Redukcja warstwy izolacji</td>
                        <td style="padding: 10px 0;">18 cm styropianu zamiast 20 cm</td>
                        <td style="padding: 10px 0; color: #dc2626;">Straty ciepła do gruntu i wyższe rachunki</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Ignorowanie OZC</td>
                        <td style="padding: 10px 0;">Układanie „na oko” (rozstaw 15 cm wszędzie)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane strefy brzegowe zimą</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('hero-app-container');
        if (container) {
            container.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: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #991b1b; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
    --concrete: #cbd5e1;
    --eps: #fef08a;
}

.premium-physics-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.physics-header {
    padding: 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.physics-header h2 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
}

.physics-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

/* SYMULATOR FIZYKI */
.simulator-wrapper {
    padding: 30px 40px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.sim-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
}

.sim-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.3s ease;
    background: #f1f5f9;
    color: #64748b;
}

.sim-btn.active-danger {
    background: #fee2e2;
    color: var(--danger);
    border-color: var(--danger);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.2);
}

.sim-btn.active-success {
    background: #dcfce7;
    color: var(--success);
    border-color: var(--success);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.2);
}

/* Przekrój podłogi */
.floor-cross-section {
    position: relative;
    width: 100%;
    max-width: 500px;
    height: 220px;
    margin: 0 auto;
    border: 2px solid #94a3b8;
    border-radius: 8px;
    overflow: hidden;
    background: white;
}

.layer-screed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 140px; /* Jastrych */
    background: repeating-linear-gradient(
        45deg,
        #e2e8f0,
        #e2e8f0 10px,
        #cbd5e1 10px,
        #cbd5e1 20px
    );
    border-bottom: 2px solid #64748b;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding-top: 15px;
}

.layer-eps {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 80px; /* Styropian */
    background: var(--eps);
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 800;
    color: #a16207;
    letter-spacing: 1px;
}

.sim-pipe {
    position: absolute;
    bottom: 82px; /* Rura leży na styropianie */
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 4px solid #ef4444; /* Czerwona rura PERT */
    background: #3b82f6; /* Woda w środku */
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10;
}

/* Elementy wymiarujące i ostrzeżenia */
.dimension-line {
    position: absolute;
    left: 20px;
    top: 15px;
    bottom: 40px; /* Przestrzeń nad rurą */
    width: 2px;
    background: #0f172a;
    transition: all 0.5s ease;
}

.dimension-line::before, .dimension-line::after {
    content: '';
    position: absolute;
    left: -5px;
    width: 12px;
    height: 2px;
    background: #0f172a;
}
.dimension-line::before { top: 0; }
.dimension-line::after { bottom: 0; }

.dimension-label {
    position: absolute;
    left: 35px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.9);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 900;
    font-size: 14px;
    color: var(--primary);
    transition: all 0.5s ease;
}

.sim-status-box {
    margin-top: 25px;
    padding: 15px 20px;
    border-radius: 12px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    transition: all 0.3s ease;
}

/* STANY SYMULACJI (Klasy nadawane przez JS) */
.state-danger .sim-pipe {
    bottom: 110px; /* Rura unosi się w wylewce */
    background: #ffffff; /* Pusta rura (powietrze) */
    border-color: #fca5a5;
    transform: translateX(-50%) rotate(5deg);
}

.state-danger .dimension-line { bottom: 68px; background: var(--danger); }
.state-danger .dimension-line::before, .state-danger .dimension-line::after { background: var(--danger); }
.state-danger .dimension-label { color: var(--danger); }

.state-danger .sim-status-box {
    background: #fee2e2;
    color: var(--danger);
    border: 1px solid #fca5a5;
}

.state-success .sim-status-box {
    background: #dcfce7;
    color: var(--success);
    border: 1px solid #86efac;
}

/* TEKST ARTYKUŁU */
.article-content {
    padding: 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    background: #ffffff;
}

.article-content p {
    margin-bottom: 20px;
}

.article-content p:last-child {
    margin-bottom: 0;
}

.article-content a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .physics-header { padding: 25px 20px; }
    .simulator-wrapper { padding: 20px; }
    .sim-controls { flex-direction: column; }
    .article-content { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator fizyki wylewki i próby ciśnieniowej",
    "description": "Interaktywna symulacja uderzenia łopatą i wibrowania betonu. Obrazuje zachowanie pustej rury PEX/PERT (wyporność i unoszenie się) w płynnym jastrychu w przypadku braku próby ciśnieniowej wg PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Koszty i normy prób szczelności ogrzewania podłogowego",
    "description": "Wymagania normy PN-EN 1264-4 (6 bar/24h) oraz finansowe konsekwencje jej złamania (23 400 zł za skucie wylewki).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-physics-box" id="physics-app-lock">
    
    <div class="physics-header">
        <h2>Ile kosztuje brak próby szczelności przed wylewką?</h2>
        <p>Zobacz na własne oczy, co dzieje się z rurą pod zalanym betonem, gdy wewnątrz brakuje stabilizującego ciśnienia.</p>
    </div>

    <div class="simulator-wrapper">
        <div class="sim-controls">
            <button class="sim-btn active-success" id="btn-pressure">Z próbą wodną (6 bar)</button>
            <button class="sim-btn" id="btn-no-pressure">Bez ciśnienia (Pusta rura)</button>
        </div>

        <div class="floor-cross-section state-success" id="sim-scene">
            <div class="layer-screed">
                <span style="font-weight: 800; color: #475569; font-size: 12px; letter-spacing: 1px;">JASTRYCH (BETON)</span>
                
                <div class="dimension-line"></div>
                <div class="dimension-label" id="sim-dim-text">6.5 cm</div>

                <div class="sim-pipe"></div>
            </div>
            <div class="layer-eps">STYROPIAN (EPS)</div>
        </div>

        <div class="sim-status-box" id="sim-status-msg">
            ✅ Zgodnie z normą PN-EN 1264-4. Rura spoczywa na dnie, jastrych ma pełną grubość chroniącą przed pęknięciami.
        </div>
    </div>

    <div class="article-content">
        <p>Brak próby szczelności kosztuje średnio <strong>18 000–26 000 zł</strong> za skucie i odtworzenie jastrychu w domu 150m². Norma <strong>PN-EN 1264-4 §4.2.3</strong> wymaga próby wodnej <strong>6 bar</strong> przez <strong>24h</strong> przed wylewką i utrzymania <strong>3 bar</strong> w trakcie wylewania. Bez protokołu tracisz gwarancję na rury i ryzykujesz przeciek pod posadzką. W projekcie z 2024, OZC 8,2 kW dla domu pod Lublinem, wykonawca zalał 1 120 m rury PERT bez manometru. Po 11 dniach pojawiła się plama na styropianie. Skaner termowizyjny pokazał wyciek na złączce pod salonem. Koszt naprawy: <strong>23 400 zł</strong> za skucie 42m², nowy jastrych i odtworzenie paneli.</p>
        
        <p>Prawidłowa <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">próba szczelności ogrzewania podłogowego</a> to <strong>45 minut pracy i 0 zł materiału</strong>, jeśli masz projekt. Napełniasz instalację wodą demineralizowaną, odpowietrzasz każdy obieg przez <em>rotametr</em>, podnosisz do 6 bar. Spadek powyżej 0,2 bar/24h oznacza nieszczelność.</p>
        
        <p>Błąd wynika z pośpiechu. Ekipa wylewkowa przyjeżdża, a rury nie są zabezpieczone przed <em>sprężem</em> termicznym. Woda w pętli stabilizuje rurę. Bez ciśnienia pusta rura unosi się w płynnym betonie z powodu wyporności (jak widać na symulatorze wyżej), a wylewka ma zaledwie <strong>4,5 cm</strong> zamiast projektowych <strong>6,5 cm</strong> nad rurą. To bezwzględnie łamie normę <strong>PN-EN 1264-4 §4.2.2</strong> i wystawia rury na uszkodzenie przy wibrowaniu betonu lub uderzeniu łopatą.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    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('physics-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ---
    const btnPressure = document.getElementById('btn-pressure');
    const btnNoPressure = document.getElementById('btn-no-pressure');
    const scene = document.getElementById('sim-scene');
    const dimText = document.getElementById('sim-dim-text');
    const statusMsg = document.getElementById('sim-status-msg');

    btnPressure.addEventListener('click', function() {
        // Zmiana klas przycisków
        btnPressure.classList.add('active-success');
        btnPressure.classList.remove('active-danger');
        btnNoPressure.classList.remove('active-danger', 'active-success');
        
        // Zmiana sceny
        scene.classList.remove('state-danger');
        scene.classList.add('state-success');
        
        // Aktualizacja tekstów
        dimText.textContent = '6.5 cm';
        statusMsg.innerHTML = '✅ Zgodnie z normą PN-EN 1264-4. Rura spoczywa na dnie, jastrych ma pełną grubość chroniącą przed pęknięciami.';
    });

    btnNoPressure.addEventListener('click', function() {
        // Zmiana klas przycisków
        btnNoPressure.classList.add('active-danger');
        btnPressure.classList.remove('active-success', 'active-danger');
        
        // Zmiana sceny
        scene.classList.remove('state-success');
        scene.classList.add('state-danger');
        
        // Aktualizacja tekstów
        dimText.textContent = '4.5 cm !';
        statusMsg.innerHTML = '⚠️ BŁĄD! Pusta rura wypływa ku górze. Wylewka pęknie, a uderzenie łopatą zniszczy instalację. Koszt naprawy: ~23 400 zł.';
    });

});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
}

.premium-interactive-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.interactive-header {
    padding: 30px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.interactive-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU W KONTENERZE */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 0;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* INTERAKTYWNY SYMULATOR */
.simulator-section {
    padding: 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.sim-controls-group {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.control-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.control-item label {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.control-item select {
    padding: 12px 15px;
    font-size: 15px;
    font-weight: 600;
    color: #334155;
    border: 2px solid #e2e8f0;
    border-radius: 10px;
    background: var(--sim-bg);
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
    font-family: inherit;
}

.control-item select:focus {
    border-color: var(--accent);
}

/* WYNIKI */
.sim-results-group {
    background: var(--sim-bg);
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: all 0.4s ease;
}

.sim-results-group.state-danger {
    background: #fee2e2;
    border-color: var(--danger);
}

.sim-results-group.state-success {
    background: #dcfce7;
    border-color: var(--success);
}

.result-label {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.state-danger .result-label { color: #991b1b; }
.state-success .result-label { color: #166534; }

.result-power {
    font-size: 54px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 10px;
    color: var(--primary);
    transition: color 0.3s;
}

.state-danger .result-power { color: var(--danger); }
.state-success .result-power { color: var(--success); }

.result-unit {
    font-size: 20px;
}

.result-message {
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    margin-top: 15px;
    line-height: 1.5;
}

.state-danger .result-message { color: #7f1d1d; }
.state-success .result-message { color: #14532d; }

@media (max-width: 768px) {
    .interactive-header { padding: 30px 20px; }
    .simulator-section { padding: 30px 20px; }
    .sim-grid { grid-template-columns: 1fr; }
    .result-power { font-size: 42px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator mocy grzewczej i oporu cieplnego posadzki",
    "description": "Interaktywne narzędzie inżynierskie ilustrujące zależność pomiędzy rozstawem rur (OZC), temperaturą zasilania (Pompa Ciepła/Kocioł Gazowy) a oporem cieplnym wykończenia podłogi (płytki, panele, drewno).",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Normy rozstawu rur wg PN-EN 1264-2",
    "description": "Parametry emisji cieplnej przy rozstawach 10 cm, 15 cm i 20 cm w zależności od oporu cieplnego R (0.02 - 0.18 m²K/W).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-interactive-box" id="spacing-app-lock">
    
    <div class="interactive-header">
        <h2>Jaka jest norma dla rozstawu rur i dlaczego 15 cm nie zawsze działa?</h2>
        
        <div class="article-text-section">
            <p>Norma <strong>PN-EN 1264-2 §5.3</strong> dopuszcza rozstaw 10, 15, 20, 25 i 30 cm, ale dobór zależy od oporu cieplnego posadzki <strong>R<sub>λ,B</sub> &le; 0,15 m&sup2;K/W</strong>. Przy panelach o R=0,12 i pompie ciepła 35/30°C rozstaw 15 cm daje moc <strong>62 W/m&sup2;</strong> przy &Delta;T=5K. Rozstaw 20 cm w tym samym miejscu spada do <strong>48 W/m&sup2;</strong> i pokój nie dogrzeje.</p>
            
            <p>W 2025 roku w domu 172m&sup2; pod Warszawą inwestor zmienił płytki na panele drewniane R=0,18 po wykonaniu projektu. Wykonawca zostawił rozstaw 20 cm w sypialniach. Efekt: przy -16°C na zewnątrz temperatura w sypialni wyniosła <strong>19,2°C zamiast 22°C</strong>. Dogrzewanie grzejnikiem elektrycznym kosztowało 340 zł za sezon.</p>
            
            <p><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">Rozstaw rur w wodnym ogrzewaniu podłogowym</a> musi wynikać z OZC, nie z przyzwyczajenia. Dla pompy ciepła projektujemy 10 cm w strefie brzegowej 1 m od okna i 15 cm w środku przy R posadzki do 0,10. Dla kotła gazowego 45/35°C możesz iść na 20 cm. <strong>Koszt zmiany rozstawu na etapie projektu to 0 zł. Koszt poprawki po wylewce to nowa podłoga.</strong></p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>🎛️</span> Symulator: Jak podłoga „dławi” moc grzewczą?</div>
        
        <div class="sim-grid">
            
            <div class="sim-controls-group">
                <div class="control-item">
                    <label>Źródło ciepła (Temp. zasilania)</label>
                    <select id="sim-source">
                        <option value="35">Pompa Ciepła (35°C)</option>
                        <option value="45">Kocioł Gazowy (45°C)</option>
                    </select>
                </div>
                
                <div class="control-item">
                    <label>Rozstaw rur</label>
                    <select id="sim-spacing">
                        <option value="10">Gęsty: co 10 cm</option>
                        <option value="15" selected>Standard: co 15 cm</option>
                        <option value="20">Rzadki: co 20 cm</option>
                    </select>
                </div>
                
                <div class="control-item">
                    <label>Materiał posadzki (Opór cieplny R)</label>
                    <select id="sim-floor">
                        <option value="0.02">Płytki ceramiczne / Gres (R ~0.02)</option>
                        <option value="0.12" selected>Panele winylowe / cienki laminat (R ~0.12)</option>
                        <option value="0.18">Gruba deska drewniana (R ~0.18)</option>
                    </select>
                </div>
            </div>

            <div class="sim-results-group state-success" id="result-box">
                <div class="result-label" id="result-status">Status instalacji</div>
                <div class="result-power"><span id="result-val">62</span><span class="result-unit"> W/m&sup2;</span></div>
                <div class="result-message" id="result-msg">Optymalna moc dla typowego, nowoczesnego domu. Pomieszczenie zostanie dogrzane.</div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    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('spacing-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA (Macierz Mocy Grzewczej W/m2) ---
    // Dane oparte na normie PN-EN 1264 i tekście artykułu
    const powerData = {
        "35": { // Pompa ciepła
            "0.02": { "10": 85, "15": 72, "20": 60 },  // Płytki
            "0.12": { "10": 72, "15": 62, "20": 48 },  // Panele laminat
            "0.18": { "10": 55, "15": 45, "20": 35 }   // Grube drewno
        },
        "45": { // Kocioł Gazowy
            "0.02": { "10": 140, "15": 120, "20": 100 }, // Płytki
            "0.12": { "10": 115, "15": 95,  "20": 80 },  // Panele laminat
            "0.18": { "10": 90,  "15": 75,  "20": 60 }   // Grube drewno
        }
    };

    const selSource = document.getElementById('sim-source');
    const selSpacing = document.getElementById('sim-spacing');
    const selFloor = document.getElementById('sim-floor');
    
    const resBox = document.getElementById('result-box');
    const resVal = document.getElementById('result-val');
    const resStatus = document.getElementById('result-status');
    const resMsg = document.getElementById('result-msg');

    function calculatePower() {
        const source = selSource.value;
        const spacing = selSpacing.value;
        const floor = selFloor.value;

        // Pobranie wartości z macierzy
        const power = powerData[source][floor][spacing];

        // Wyświetlenie wartości
        resVal.textContent = power;

        // Logika oceny (Uproszczona analiza dla domów WT2021)
        if (power < 50) {
            resBox.className = 'sim-results-group state-danger';
            resStatus.textContent = '⚠️ RYZYKO NIEDOGRzANIA';
            
            if(floor === "0.18") {
                resMsg.textContent = 'Grube drewno działa jak izolator. Przy tym rozstawie rur system nie odda ciepła do pomieszczenia. Zimą temperatura spadnie poniżej 20°C!';
            } else {
                resMsg.textContent = 'Zbyt niska emisja ciepła! Powierzchnia grzewcza jest zbyt mała lub temperatura zasilania zbyt niska dla tego rozstawu.';
            }
        } else {
            resBox.className = 'sim-results-group state-success';
            resStatus.textContent = '✅ PARAMETRY PRAWIDŁOWE';
            resMsg.textContent = 'Instalacja poradzi sobie z ogrzaniem typowego nowoczesnego pomieszczenia. Moc jest optymalna.';
        }
    }

    // Event listenery
    selSource.addEventListener('change', calculatePower);
    selSpacing.addEventListener('change', calculatePower);
    selFloor.addEventListener('change', calculatePower);

    // Inicjalizacja
    calculatePower();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
}

.premium-loop-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.loop-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.loop-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* SYMULATOR */
.simulator-section {
    padding: 30px 40px 40px 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.slider-container {
    background: var(--sim-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px 30px;
    margin-bottom: 30px;
}

.slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.slider-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

.slider-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--accent);
    background: #ffffff;
    padding: 5px 15px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
}

.slider-input {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

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

.result-card {
    background: var(--sim-bg);
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s ease;
}

.result-card.state-danger {
    background: #fee2e2;
    border-color: var(--danger);
}

.result-card.state-success {
    background: #dcfce7;
    border-color: var(--success);
}

.res-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
    min-height: 30px;
}

.state-danger .res-title { color: #991b1b; }
.state-success .res-title { color: #166534; }

.res-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
}

.state-danger .res-val { color: var(--danger); }
.state-success .res-val { color: var(--success); }

.res-unit {
    font-size: 16px;
}

/* WIZUALIZACJA SPADKU TEMPERATURY */
.pipe-visual {
    margin-top: 30px;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #ef4444 0%, #3b82f6 100%);
    position: relative;
    opacity: 0.2;
    transition: opacity 0.3s;
}

.pipe-visual.active {
    opacity: 1;
}

.pipe-label {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.warning-msg {
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    display: none;
}

.warning-msg.show {
    display: block;
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

@media (max-width: 768px) {
    .loop-header { padding: 25px 20px 10px 20px; }
    .simulator-section { padding: 20px; }
    .results-grid { grid-template-columns: 1fr; }
    .res-title { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator oporów hydraulicznych i spadku temperatury w pętli ogrzewania",
    "description": "Interaktywny symulator inżynierski wyliczający w czasie rzeczywistym wzrost oporu (kPa), pobór mocy pompy (W) oraz wychłodzenie posadzki w zależności od długości rury PERT/PEX. Tłumaczy normę PN-EN 1264-3.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne pętli grzewczej wg PN-EN 1264-3",
    "description": "Dane wykazujące drastyczny spadek wydajności instalacji przy przekroczeniu długości pętli 100m. Wzrost oporu z 23 kPa do ponad 40 kPa oraz poboru mocy pompy z 45W do 85W.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-loop-box" id="loop-app-lock">
    
    <div class="loop-header">
        <h2>Czy można układać pętle dłuższe niż 100 m?</h2>
        
        <div class="article-text-section">
            <p><strong>Nie. Maksymalna długość pętli z rury 16×2 mm to 90–100 m</strong> przy przepływie 1,5–2,0 l/min. Norma <strong>PN-EN 1264-3</strong> zaleca spadek ciśnienia w pętli poniżej 25 kPa. Pętla 140 m ma opór 38–42 kPa i nie da się jej wyregulować <em>rotametrem</em>. Przy Q=0,8 kW i &Delta;T=5K przepływ wynosi m=0,138 m&sup3;/h. To jest 2,3 l/min, czyli górna granica dla rury 16 mm.</p>
            
            <p>Przy pętli 130 m opór hydrauliczny rośnie do 31 kPa, pompa wchodzi na 3 bieg i pobiera <strong>85 W zamiast 45 W</strong>. W projekcie z 2023 dla domu 145m&sup2; w Wielkopolsce wykonawca „zaoszczędził” na rozdzielaczu i zrobił 5 pętli po 125 m zamiast 8 pętli po 78 m. Efekt: salon 35m&sup2; miał <strong>3,8°C różnicy</strong> między początkiem a końcem pętli. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" target="_blank" rel="noreferrer noopener">Za długa pętla podłogówki</a> nie odda ciepła na końcu.</p>
            
            <p>Poprawny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" target="_blank" rel="noreferrer noopener">projekt ogrzewania podłogowego</a> podaje długość każdej pętli z dokładnością do 1 m. Koszt dodatkowego obiegu w rozdzielaczu to 65–80 zł w 2026 roku. <strong>Koszt nierównej podłogi to lata dyskomfortu.</strong></p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>🎛️</span> Symulator Hydrauliczny Pętli Grzewczej</div>
        
        <div class="slider-container">
            <div class="slider-header">
                <span class="slider-label">Długość rury (Pętli)</span>
                <span class="slider-value"><span id="loop-len-val">90</span> m</span>
            </div>
            <input type="range" id="loop-slider" class="slider-input" min="50" max="150" step="1" value="90">
        </div>

        <div class="results-grid">
            <div class="result-card state-success" id="card-kpa">
                <div class="res-title">Opór (Spadek ciśnienia)</div>
                <div class="res-val"><span id="val-kpa">18</span><span class="res-unit"> kPa</span></div>
            </div>
            <div class="result-card state-success" id="card-power">
                <div class="res-title">Pobór mocy pompy</div>
                <div class="res-val"><span id="val-power">40</span><span class="res-unit"> W</span></div>
            </div>
            <div class="result-card state-success" id="card-temp">
                <div class="res-title">Niedogrzanie na końcu pętli</div>
                <div class="res-val"><span id="val-temp">1.2</span><span class="res-unit"> °C</span></div>
            </div>
        </div>

        <div class="pipe-visual" id="pipe-vis"></div>
        <div class="pipe-label">
            <span>Początek pętli (Gorąco)</span>
            <span id="pipe-end-label">Koniec pętli (Ciepło)</span>
        </div>

        <div class="warning-msg" id="warning-box">
            ⚠️ <strong>BŁĄD WYKONAWCZY:</strong> Przekroczono 100 m! Pompa zostaje przeciążona, a opór uniemożliwia regulację rotametru. Powstaje tzw. "zimna strefa" na podłodze.
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    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('loop-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ZGODNA Z TEKSTEM ARTYKUŁU ---
    const slider = document.getElementById('loop-slider');
    const lenVal = document.getElementById('loop-len-val');
    
    const valKpa = document.getElementById('val-kpa');
    const valPower = document.getElementById('val-power');
    const valTemp = document.getElementById('val-temp');
    
    const cardKpa = document.getElementById('card-kpa');
    const cardPower = document.getElementById('card-power');
    const cardTemp = document.getElementById('card-temp');
    
    const warningBox = document.getElementById('warning-box');
    const pipeVis = document.getElementById('pipe-vis');
    const pipeEndLabel = document.getElementById('pipe-end-label');

    function calculateLoop() {
        const len = parseInt(slider.value);
        lenVal.textContent = len;

        let kpa, power, tempDiff;

        // Modele matematyczne idealnie dopasowane do danych z tekstu:
        // 90-100m = OK
        // 125m = 3.8 °C
        // 130m = 31 kPa, 85 W
        // 140m = 40 kPa
        if (len <= 100) {
            kpa = (len / 100) * 23;
            power = 35 + (len / 100) * 10;
            tempDiff = (len / 100) * 1.5;
            
            // UI Update - Success
            [cardKpa, cardPower, cardTemp].forEach(card => {
                card.classList.remove('state-danger');
                card.classList.add('state-success');
            });
            warningBox.classList.remove('show');
            pipeVis.classList.remove('active');
            pipeEndLabel.textContent = "Koniec pętli (Ciepło)";
            
        } else {
            kpa = 23 + (len - 100) * (17 / 40); // 140m -> ~40 kPa
            power = 45 + (len - 100) * (40 / 30); // 130m -> ~85 W
            tempDiff = 1.5 + Math.pow((len - 100) / 25, 2) * 2.3; // 125m -> ~3.8 °C
            
            // UI Update - Danger
            [cardKpa, cardPower, cardTemp].forEach(card => {
                card.classList.remove('state-success');
                card.classList.add('state-danger');
            });
            warningBox.classList.add('show');
            pipeVis.classList.add('active');
            pipeEndLabel.textContent = "Koniec pętli (ZIMNO)";
        }

        // Aktualizacja wartości na ekranie (z jednym miejscem po przecinku dla temp)
        valKpa.textContent = Math.round(kpa);
        valPower.textContent = Math.round(power);
        valTemp.textContent = tempDiff.toFixed(1);
    }

    slider.addEventListener('input', calculateLoop);
    
    // Inicjalizacja
    calculateLoop();
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #dc2626; /* Zmienione na czerwony ostrzegawczy z poprzednich modułów */
    --bg-tip: #fef2f2; /* Zmienione na delikatny czerwony */
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wylewka betonowa nie wybacza pośpiechu. Zmiana grubości styropianu z 20 na 18 cm czy ułożenie pętli na 140 metrów zamiast 90, to błędy, których nie widać gołym okiem na budowie. Ale fizyki nie oszukasz. Pozorna oszczędność na etapie montażu lub ominięcie darmowej próby ciśnieniowej mszczą się bezlitośnie, zmuszając inwestora do kucia nowej posadzki. Profesjonalny projekt OZC to w tym procesie nie sugestia – to Twoja polisa ubezpieczeniowa.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny 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",
    "name": "Wpływ błędów instalacyjnych na koszty eksploatacji",
    "description": "Zestawienie inżynierskich zasad weryfikacji instalacji podłogowej przed zalaniem jastrychu wg normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o ukrytych kosztach błędów</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wylewka betonowa nie wybacza pośpiechu. Zmiana grubości styropianu z 20 na 18 cm czy ułożenie pętli na 140 metrów zamiast 90, to błędy, których nie widać gołym okiem na budowie. Ale fizyki nie oszukasz. Pozorna oszczędność na etapie montażu lub ominięcie darmowej próby ciśnieniowej mszczą się bezlitośnie, zmuszając inwestora do kucia nowej posadzki. Profesjonalny projekt OZC to w tym procesie nie sugestia – to Twoja polisa ubezpieczeniowa."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fef2f2; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Samodzielne zmiany w projekcie lub brak próby szczelności przed wylaniem jastrychu (wymaganej normą PN-EN 1264) prowadzą do drastycznego wzrostu oporów hydraulicznych i kosztownych awarii, których naprawa wielokrotnie przekracza cenę profesjonalnego projektu OZC.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    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('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Rekomendacja ekspercka Roberta Kucharskiego jest własnością Projekt-Ogrzewania.pl.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwień - spójność z poprzednimi modułami */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --app-bg: #f8fafc;
}

.premium-download-box {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.download-header {
    padding: 35px 40px 25px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

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

.download-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    max-width: 650px;
}

/* UKŁAD DWUKOLUMNOWY */
.download-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 0;
    background: #ffffff;
}

/* LEWA KOLUMNA: INFOGRAFIKA I POBIERANIE */
.download-media-section {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.infographic-preview {
    width: 100%;
    max-width: 250px;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    border: 1px solid #cbd5e1;
    transition: transform 0.3s ease;
    cursor: zoom-in;
    margin-bottom: 25px;
}

.infographic-preview:hover {
    transform: translateY(-5px) scale(1.02);
}

.btn-download-pdf {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    background: var(--primary);
    color: #ffffff;
    text-decoration: none;
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(15, 23, 42, 0.2);
}

.btn-download-pdf:hover {
    background: #1e293b;
    box-shadow: 0 8px 15px rgba(15, 23, 42, 0.3);
    transform: translateY(-2px);
}

.download-hint {
    font-size: 12px;
    color: #64748b;
    margin-top: 12px;
    text-align: center;
    font-weight: 600;
}

/* PRAWA KOLUMNA: INTERAKTYWNY AUDYT */
.audit-section {
    padding: 40px;
    background: var(--app-bg);
}

.audit-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.checklist-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 25px;
}

.audit-checkbox-row {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    transition: all 0.2s;
}

.audit-checkbox-row:hover {
    border-color: #94a3b8;
    background: #f1f5f9;
}

.audit-checkbox-row.checked {
    border-color: var(--success);
    background: #f0fdf4;
}

.custom-checkbox {
    width: 22px;
    height: 22px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.custom-checkbox::after {
    content: '✓';
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transition: opacity 0.2s;
}

.audit-checkbox-row.checked .custom-checkbox {
    background: var(--success);
    border-color: var(--success);
}

.audit-checkbox-row.checked .custom-checkbox::after {
    opacity: 1;
}

.audit-label {
    font-size: 14px;
    font-weight: 700;
    color: #334155;
    user-select: none;
}

/* PASEK ZAGROŻENIA */
.risk-meter-box {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
}

.risk-header {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.risk-label { color: #64748b; }
.risk-value { font-size: 16px; font-weight: 900; }

.risk-bar-container {
    width: 100%;
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 15px;
}

.risk-bar-fill {
    height: 100%;
    width: 100%;
    background: var(--danger);
    border-radius: 6px;
    transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.5s;
}

.risk-message {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    padding: 10px;
    border-radius: 8px;
    text-align: center;
    transition: all 0.3s;
}

@media (max-width: 768px) {
    .download-grid { grid-template-columns: 1fr; }
    .download-media-section { border-right: none; border-bottom: 1px solid #e2e8f0; padding: 30px 20px; }
    .audit-section { padding: 30px 20px; }
    .download-header { padding: 30px 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Audytor Błędów Wykonawczych Ogrzewania Podłogowego",
    "description": "Interaktywna check-lista (narzędzie obliczeniowe) dla inwestorów, pozwalająca ocenić ryzyko awarii instalacji na podstawie weryfikacji 5 kluczowych punktów normatywnych przed wylaniem jastrychu.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Lista kontrolna błędów ogrzewania podłogowego (PDF & Infografika)",
    "description": "Zestawienie twardych wytycznych (próba ciśnieniowa, dylatacje, grubości izolacji) zebranych w formie infografiki edukacyjnej i dokumentu PDF do druku dla kierownika budowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "ImageObject",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp",
    "description": "Kompleksowa infografika techniczna przedstawiająca krytyczne błędy przy montażu ogrzewania podłogowego, w tym brak próby ciśnieniowej i złe dylatacje.",
    "name": "Infografika: Błędy na budowie ogrzewania podłogowego"
  }
]
</script>

<div class="premium-download-box" id="download-app-lock">
    
    <div class="download-header">
        <h2>Zabierz tę wiedzę na budowę!</h2>
        <p>Nie pozwól, aby wykonawca zbagatelizował zasady fizyki. Pobierz darmową listę kontrolną w formacie PDF lub sprawdź status swojej instalacji w poniższym mini-audycie.</p>
    </div>

    <div class="download-grid">
        
        <div class="download-media-section">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp" target="_blank" rel="noopener noreferrer" title="Kliknij, aby powiększyć infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp" 
                     alt="Infografika techniczna: Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego" 
                     class="infographic-preview" loading="lazy">
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/poradnik-najczestsze-bledy-na-budowie-ogrzewanie-podlogowe.pdf" 
               class="btn-download-pdf" target="_blank" rel="noopener noreferrer">
                <span>📄 Pobierz Poradnik PDF</span>
            </a>
            <div class="download-hint">Gotowy do druku format A4 dla kierownika budowy.</div>
        </div>

        <div class="audit-section">
            <div class="audit-title"><span>🔍</span> Szybki audyt przed wylewką</div>
            
            <div class="checklist-container">
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Posiadam profesjonalny projekt OZC i rozkład pętli</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Wykonano wodną próbę ciśnieniową (6 bar/24h)</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Ułożono taśmę dylatacyjną brzegową (8 mm)</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Rozdzielacz wyposażony jest w rotametry</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Grubość styropianu zgodna z wytycznymi WT2021</div>
                </div>
            </div>

            <div class="risk-meter-box">
                <div class="risk-header">
                    <span class="risk-label">Ryzyko kosztownej awarii:</span>
                    <span class="risk-value" id="risk-percent" style="color: var(--danger);">100%</span>
                </div>
                <div class="risk-bar-container">
                    <div class="risk-bar-fill" id="risk-bar" style="width: 100%; background-color: var(--danger);"></div>
                </div>
                <div class="risk-message" id="risk-msg" style="background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5;">
                    ⚠️ KRYTYCZNE RYZYKO. Bez weryfikacji tych punktów, ryzyko kucia jastrychu lub niedogrzania jest ogromne. Koniecznie pobierz PDF!
                </div>
            </div>

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

<script>
    // --- OCHRONA DOMENY ---
    document.addEventListener('DOMContentLoaded', function() {
        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('download-app-lock');
            if (appContainer) {
                appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><h3 style="margin-top:0;">Treść chroniona prawem autorskim</h3><p>Własność Projekt-Ogrzewania.pl</p></div>';
            }
        }
    });

    // --- LOGIKA AUDYTU (CHECKLISTA) ---
    function toggleAudit(element) {
        element.classList.toggle('checked');
        updateRiskMeter();
    }

    function updateRiskMeter() {
        const totalCheckboxes = 5;
        const checkedBoxes = document.querySelectorAll('.audit-checkbox-row.checked').length;
        
        // Zmniejszamy ryzyko z 100% do 0% w zależności od zaznaczonych pól
        const riskLevel = 100 - ((checkedBoxes / totalCheckboxes) * 100);
        
        const riskPercentEl = document.getElementById('risk-percent');
        const riskBarEl = document.getElementById('risk-bar');
        const riskMsgEl = document.getElementById('risk-msg');

        // Animacja paska i procentów
        riskPercentEl.textContent = riskLevel + '%';
        riskBarEl.style.width = riskLevel + '%';

        // Logika zmiany kolorów i komunikatów
        if (riskLevel === 100) {
            riskPercentEl.style.color = 'var(--danger)';
            riskBarEl.style.backgroundColor = 'var(--danger)';
            riskMsgEl.style.background = '#fee2e2';
            riskMsgEl.style.color = '#991b1b';
            riskMsgEl.style.borderColor = '#fca5a5';
            riskMsgEl.innerHTML = '⚠️ KRYTYCZNE RYZYKO. Bez weryfikacji tych punktów, ryzyko kucia jastrychu lub niedogrzania jest ogromne. Pobierz PDF!';
        } else if (riskLevel >= 60) {
            riskPercentEl.style.color = 'var(--danger)';
            riskBarEl.style.backgroundColor = 'var(--danger)';
            riskMsgEl.style.background = '#fee2e2';
            riskMsgEl.style.color = '#991b1b';
            riskMsgEl.style.borderColor = '#fca5a5';
            riskMsgEl.innerHTML = '⚠️ WYSOKIE RYZYKO. Instalacja ma istotne braki. Błędy zemszczą się w pierwszym sezonie grzewczym.';
        } else if (riskLevel > 0) {
            riskPercentEl.style.color = 'var(--warning)';
            riskBarEl.style.backgroundColor = 'var(--warning)';
            riskMsgEl.style.background = '#ffedd5';
            riskMsgEl.style.color = '#9a3412';
            riskMsgEl.style.borderColor = '#fdba74';
            riskMsgEl.innerHTML = '⚡ ŚREDNIE RYZYKO. Jesteś na dobrej drodze, ale upewnij się u wykonawcy co do pozostałych, odznaczonych punktów.';
        } else {
            riskPercentEl.style.color = 'var(--success)';
            riskBarEl.style.backgroundColor = 'var(--success)';
            riskMsgEl.style.background = '#dcfce7';
            riskMsgEl.style.color = '#166534';
            riskMsgEl.style.borderColor = '#86efac';
            riskMsgEl.innerHTML = '✅ INSTALACJA ZABEZPIECZONA! Spełniasz inżynierskie normy bezpieczeństwa. Śpij spokojnie.';
        }
    }
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --calc-bg: #f8fafc;
}

.premium-formula-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.formula-header {
    padding: 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.formula-header h2 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
}

.formula-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.formula-content {
    padding: 30px 40px 10px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
}

/* GŁÓWNY WZÓR */
.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 42px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #fff5f5;
    padding: 20px 45px;
    border-radius: 16px;
    border: 2px solid #fecaca;
    box-shadow: inset 0 2px 4px rgba(255,255,255,0.5);
}

.math-fraction { display: flex; flex-direction: column; align-items: center; line-height: 1.1; margin-top: -5px; }
.math-numerator { border-bottom: 4px solid var(--accent); padding: 0 12px 2px 12px; }
.math-denominator { padding: 4px 12px 0 12px; }

/* INTERAKTYWNY KALKULATOR */
.interactive-calc-wrapper {
    background: var(--calc-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px 35px;
    width: 100%;
    margin: 0 auto 20px auto;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.calc-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.calc-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
    gap: 15px;
}

.calc-row:last-child { margin-bottom: 0; }

.calc-label {
    width: 35%;
    font-size: 14px;
    font-weight: 700;
    color: #334155;
}

.calc-slider {
    width: 45%;
    accent-color: var(--accent);
    cursor: pointer;
}

.calc-value-box {
    width: 20%;
    text-align: right;
    font-size: 16px;
    font-weight: 900;
    color: var(--accent);
    background: #ffffff;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
}

/* DYNAMICZNY TEKST (Artykuł) */
.dynamic-article-content {
    padding: 0 40px 40px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.dynamic-article-content p {
    margin-bottom: 20px;
}

.dynamic-article-content p:last-child {
    margin-bottom: 0;
}

.dyn-val {
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 6px;
    border-bottom: 2px solid #fca5a5;
    transition: all 0.3s ease;
}

/* Animacja przy zmianie wartości */
.dyn-val.updated {
    background: #fca5a5;
    color: #7f1d1d;
}

.formula-footer {
    padding: 20px 40px;
    background: #ffffff;
    border-top: 1px solid #fee2e2;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}

@media (max-width: 600px) {
    .formula-header { padding: 25px 20px; }
    .formula-content { padding: 20px; }
    .interactive-calc-wrapper { padding: 20px; }
    .calc-row { flex-direction: column; align-items: stretch; gap: 8px; margin-bottom: 20px; }
    .calc-label { width: 100%; }
    .calc-slider { width: 100%; }
    .calc-value-box { width: 100%; text-align: center; }
    .dynamic-article-content { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny kalkulator przepływu rotametrów i OZC",
    "description": "Narzędzie inżynierskie pozwalające na dynamiczne obliczanie przepływów masowych, nastaw rotametrów i wysokości podnoszenia pompy obiegowej.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-formula-box" id="formula-app-flow">
    
    <div class="formula-header">
        <h2>Jak obliczyć prawidłowy przepływ w rozdzielaczu?</h2>
        <p>Zmień parametry instalacji poniżej i zobacz, jak fizyka układa się w konkretne liczby, które musisz ustawić na budowie.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>m</span>
            <span style="color: var(--primary); font-style: normal;">=</span>
            <div class="math-fraction">
                <span class="math-numerator">Q</span>
                <span class="math-denominator">1,16 &times; &Delta;T</span>
            </div>
        </div>

        <div class="interactive-calc-wrapper">
            <div class="calc-title"><span>🎛️</span> Symulator nastaw instalacji</div>
            
            <div class="calc-row">
                <div class="calc-label">Zapotrzebowanie OZC (Q)</div>
                <input type="range" id="range-ozc" class="calc-slider" min="3" max="15" step="0.1" value="7.5">
                <div class="calc-value-box"><span id="val-ozc">7.5</span> kW</div>
            </div>
            
            <div class="calc-row">
                <div class="calc-label">Delta T (&Delta;T)</div>
                <input type="range" id="range-dt" class="calc-slider" min="3" max="10" step="1" value="5">
                <div class="calc-value-box"><span id="val-dt">5</span> K</div>
            </div>

            <div class="calc-row">
                <div class="calc-label">Ilość pętli na rozdzielaczu</div>
                <input type="range" id="range-loops" class="calc-slider" min="3" max="14" step="1" value="9">
                <div class="calc-value-box"><span id="val-loops">9</span> szt.</div>
            </div>

            <div class="calc-row">
                <div class="calc-label">Opór układu (&Delta;p)</div>
                <input type="range" id="range-dp" class="calc-slider" min="15" max="45" step="1" value="25">
                <div class="calc-value-box"><span id="val-dp">25</span> kPa</div>
            </div>
        </div>
    </div>

    <div class="dynamic-article-content">
        <p>Prawidłowy przepływ liczysz zawsze ze wzoru <strong>m = Q / (1,16 &times; &Delta;T)</strong>. Dla modelowego domu o zapotrzebowaniu z OZC na poziomie <span class="dyn-val" id="text-ozc">7,5</span> <strong>kW</strong> oraz parametrze instalacji <strong>&Delta;T = <span class="dyn-val" id="text-dt">5</span> K</strong>, przepływ całkowity wynosi równe <span class="dyn-val" id="text-m">1,29</span> <strong>m&sup3;/h</strong>.</p>
        
        <p>Pompa musi być w stanie pokonać opory układu i wygenerować odpowiednią wysokość podnoszenia, co liczysz ze wzoru <strong>H = &Delta;p / 9,81</strong>. Przy oporach rzędu <span class="dyn-val" id="text-dp">25</span> <strong>kPa</strong> daje to wysokość podnoszenia <span class="dyn-val" id="text-h">2,55</span> <strong>m</strong>. Skoro znamy całkowity strumień <strong>m = <span class="dyn-val" id="text-m2">1,293</span> m&sup3;/h</strong>, a w rozdzielaczu mamy na przykład <span class="dyn-val" id="text-loops">9</span> obiegów, to na pojedynczą pętlę przypada średnio <span class="dyn-val" id="text-m-loop">0,144</span> <strong>m&sup3;/h</strong>. Przeliczając to na jednostki na rotametrze, musisz ustawić pływak dokładnie na <span class="dyn-val" id="text-rotametr">2,4</span> <strong>l/min</strong>.</p>
        
        <p>Całkowity opór układu to suma jego najsłabszych ogniw: <strong>&Delta;p<sub>całk</sub> = &Delta;p<sub>pętle</sub> + &Delta;p<sub>rozdzielacz</sub> + &Delta;p<sub>wymiennik</sub></strong>. W standardowym, jednorodzinnym domu wynosi to zazwyczaj 18 kPa + 4 kPa + 3 kPa = <strong>25 kPa</strong>. Prawidłowo dobrana <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">pompa obiegowa w instalacji ogrzewania podłogowego</a> o parametrach 25/6 zużywa w takim wariancie optymalne 38–52 W prądu.</p>
        
        <p>W 2026 roku na budowach widzę wciąż nagminny, budżetowy błąd: montaż rozdzielacza bez wskaźników przepływu. Inwestor nie ma szans na wyregulowanie instalacji, bo po prostu nie widzi, ile wody płynie w posadzkach. Efekt? Lodowata łazienka i przegrzany salon. Każdy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametr – wskaźnik przepływu</a> kosztuje w detalu zaledwie <strong>28–35 zł</strong> za sztukę. Oszczędzanie na tym to proszenie się o kłopoty.</p>
    </div>

    <div class="formula-footer">
        Opracowanie inżynierskie: <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    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('formula-app-flow');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA KALKULATORA INTERAKTYWNEGO ---
    const rOzc = document.getElementById('range-ozc');
    const rDt = document.getElementById('range-dt');
    const rLoops = document.getElementById('range-loops');
    const rDp = document.getElementById('range-dp');
    
    const vOzc = document.getElementById('val-ozc');
    const vDt = document.getElementById('val-dt');
    const vLoops = document.getElementById('val-loops');
    const vDp = document.getElementById('val-dp');
    
    const tOzc = document.getElementById('text-ozc');
    const tDt = document.getElementById('text-dt');
    const tM = document.getElementById('text-m');
    const tDp = document.getElementById('text-dp');
    const tH = document.getElementById('text-h');
    const tM2 = document.getElementById('text-m2');
    const tLoops = document.getElementById('text-loops');
    const tMloop = document.getElementById('text-m-loop');
    const tRotametr = document.getElementById('text-rotametr');
    
    const allDynVals = document.querySelectorAll('.dyn-val');

    function calculateAndUpdate() {
        const Q = parseFloat(rOzc.value);
        const dT = parseFloat(rDt.value);
        const loops = parseFloat(rLoops.value);
        const dp = parseFloat(rDp.value);
        
        const m = Q / (1.16 * dT); // w m3/h
        const h = dp / 9.81; // w metrach
        const m_loop = m / loops; // w m3/h na pętlę
        const rotametr = (m * 1000 / 60) / loops; // l/min na pętlę
        
        vOzc.textContent = Q.toLocaleString('pl-PL');
        vDt.textContent = dT.toString();
        vLoops.textContent = loops.toString();
        vDp.textContent = dp.toString();
        
        tOzc.textContent = Q.toLocaleString('pl-PL');
        tDt.textContent = dT.toString();
        tM.textContent = m.toLocaleString('pl-PL', {minimumFractionDigits: 2, maximumFractionDigits: 2});
        tDp.textContent = dp.toString();
        tH.textContent = h.toLocaleString('pl-PL', {minimumFractionDigits: 2, maximumFractionDigits: 2});
        tM2.textContent = m.toLocaleString('pl-PL', {minimumFractionDigits: 3, maximumFractionDigits: 3});
        tLoops.textContent = loops.toString();
        tMloop.textContent = m_loop.toLocaleString('pl-PL', {minimumFractionDigits: 3, maximumFractionDigits: 3});
        tRotametr.textContent = rotametr.toLocaleString('pl-PL', {minimumFractionDigits: 1, maximumFractionDigits: 1});

        allDynVals.forEach(el => {
            el.classList.remove('updated');
            void el.offsetWidth; // Trigger reflow
            el.classList.add('updated');
        });
    }

    [rOzc, rDt, rLoops, rDp].forEach(input => {
        input.addEventListener('input', calculateAndUpdate);
    });

    calculateAndUpdate();
});
</script>



<style>
/* STYLE DLA TABELI PORÓWNAWCZEJ ROZDZIELACZY */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare-module {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.compare-header {
    padding: 40px 40px 20px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    text-align: center;
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.compare-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

/* TABELA */
.table-container {
    padding: 20px 40px;
    overflow-x: auto;
}

.styled-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    min-width: 700px; /* Zapewnia czytelność na mobile z przewijaniem */
}

.styled-table th,
.styled-table td {
    padding: 16px 15px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
}

.styled-table th {
    background-color: var(--bg-light);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
}

.styled-table th:nth-child(1) { width: 25%; color: var(--primary); }
.styled-table th:nth-child(2) { width: 20%; }
.styled-table th:nth-child(3) { width: 15%; }
.styled-table th:nth-child(4) { width: 15%; color: var(--danger); }
.styled-table th:nth-child(5) { width: 25%; }

.styled-table td {
    font-size: 14px;
    color: #334155;
    line-height: 1.5;
}

.styled-table td:first-child {
    font-weight: 700;
    color: var(--primary);
    background-color: #f8fafc;
}

.styled-table tr:hover td {
    background-color: #f0f9ff;
}

.styled-table td strong {
    color: var(--primary);
}

/* SEKACJA ZWROTU Z INWESTYCJI (CASE STUDY) */
.case-study-container {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.case-study-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.case-card {
    background: var(--bg-light);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

.case-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
}

.case-card.case-mosiadz::before { background: var(--warning); }
.case-card.case-inox::before { background: var(--success); }

.case-card h5 {
    margin: 0 0 15px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.case-card p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.power-result {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.power-result strong {
    font-size: 20px;
    font-weight: 900;
    color: var(--primary);
}

.case-conclusion {
    margin-top: 15px;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 15px;
    border-radius: 8px;
    font-style: italic;
}

.case-conclusion.warning { background: #fffbeb; color: #b45309; }
.case-conclusion.ok { background: #f0fdf4; color: #15803d; }

.link-highlight {
    display: inline-block;
    margin-top: 20px;
    font-weight: 700;
    color: var(--accent);
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.2s ease;
}

.link-highlight:hover {
    color: #1d4ed8;
    border-bottom-color: #1d4ed8;
}

@media (max-width: 768px) {
    .compare-header { padding: 30px 20px; }
    .table-container { padding: 10px 20px; }
    .styled-table th, .styled-table td { padding: 12px; font-size: 13px; }
    .case-study-container { padding: 20px; }
    .case-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Porównanie rozdzielaczy ogrzewania podłogowego (Mosiądz vs INOX) - 2026",
  "description": "Zestawienie cen, parametrów technicznych i rekomendacji zastosowań dla rozdzielaczy z rotametrami w układach ogrzewania płaszczyznowego.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Cena rozdzielacza mosiężnego (7 obwodów)",
      "value": "480–590 PLN"
    },
    {
      "@type": "PropertyValue",
      "name": "Cena rozdzielacza INOX (7 obwodów)",
      "value": "620–750 PLN"
    },
    {
      "@type": "PropertyValue",
      "name": "Zwrot z inwestycji (INOX)",
      "value": "4-5 lat ze względu na brak korozji"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski",
    "sameAs": [
      "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
      "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    ]
  }
}
</script>

<div class="premium-compare-module premium-protected" id="manifold-table-app">
    
    <div class="compare-header">
        <h3>Tabela: jaki rozdzielacz wybrać w 2026?</h3>
        <p>Porównanie techniczne i cenowe wariantów mosiężnych, INOX oraz układów mieszających. Wybierz rozwiązanie dopasowane do Twojego źródła ciepła.</p>
    </div>

    <div class="table-container">
        <table class="styled-table">
            <thead>
                <tr>
                    <th>Rozwiązanie</th>
                    <th>Parametr techniczny</th>
                    <th>Wartość</th>
                    <th>Cena PLN (2026)</th>
                    <th>Rekomendacja (Dla kogo)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Rozdzielacz mosiężny z rotametrami</td>
                    <td>Max przepływ na obieg</td>
                    <td><strong>2,5 l/min</strong></td>
                    <td><strong>480–590 zł</strong><br><span style="font-size:11px; font-weight:normal; color:#64748b;">(7 obwodów)</span></td>
                    <td>Domy 120–160m² z kotłem gazowym (temp. zasilania do 55°C).</td>
                </tr>
                <tr>
                    <td>Rozdzielacz INOX z rotametrami</td>
                    <td>Ciśnienie robocze</td>
                    <td><strong>10 bar</strong></td>
                    <td><strong>620–750 zł</strong><br><span style="font-size:11px; font-weight:normal; color:#64748b;">(7 obwodów)</span></td>
                    <td>Pompy ciepła, woda demineralizowana, instalacje na min. <strong>25 lat żywotności</strong>.</td>
                </tr>
                <tr>
                    <td>Rozdzielacz z układem mieszającym</td>
                    <td>Zakres temp. zasilania</td>
                    <td><strong>25–55°C</strong></td>
                    <td><strong>1 890–2 240 zł</strong></td>
                    <td>Modernizacje ze starymi grzejnikami, instalacje mieszane (wysoki + niski parametr).</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="case-study-container">
        <div class="case-study-title">
            <span>⚙️</span> Analiza Opłacalności: Mosiądz czy INOX?
        </div>
        
        <div class="case-grid">
            
            <div class="case-card case-mosiadz">
                <h5>Wariant Mosiężny (Tańszy na start)</h5>
                <p>Mosiądz jest powszechny i tańszy w zakupie, jednak przy niskich temperaturach (pompy ciepła) i specyficznym pH wody może z czasem ulegać odcynkowaniu i korozji.</p>
                
                <div class="power-result">
                    <span>Oszczędność przy zakupie:</span>
                    Różnica ok. <strong>150 zł</strong>
                </div>
                
                <div class="case-conclusion warning">
                    <strong>Wniosek:</strong> Wybieraj głównie do obiegów zamkniętych z kotłem gazowym, gdzie woda jest stabilna chemicznie.
                </div>
            </div>

            <div class="case-card case-inox">
                <h5>Wariant INOX (Stal Nierdzewna)</h5>
                <p>Początkowy koszt jest nieznacznie wyższy, jednak stal szlachetna gwarantuje całkowitą odporność na korozję, zwłaszcza w układach z pompami ciepła.</p>
                
                <div class="power-result" style="border-top: 3px solid var(--success);">
                    <span>Długoterminowy zwrot:</span>
                    Zwrot kosztów już po <strong>4–5 latach</strong>
                </div>
                
                <div class="case-conclusion ok" style="margin-top: 25px;">
                    <strong>Wniosek:</strong> Wybór INOX to inwestycja w brak awarii rotametrów i zatorów. <strong>Żywotność instalacji rośnie do ponad 25 lat.</strong>
                </div>
            </div>

        </div>

        <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="link-highlight" target="_blank" rel="noreferrer noopener">
            Czytaj więcej: Rozdzielacz do podłogówki – mosiężny czy INOX? →
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    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('manifold-table-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>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To zestawienie edukacyjne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</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 ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
/* NOWOCZESNY INŻYNIERYJNY DARK MODE */
:root {
    --dash-bg: #0f172a;
    --dash-surface: #1e293b;
    --dash-border: #334155;
    --dash-text: #e2e8f0;
    --dash-muted: #94a3b8;
    --dash-accent: #3b82f6;
    --dash-danger: #ef4444;
    --dash-success: #10b981;
    --dash-eps: #eab308;
    --dash-concrete: #64748b;
}

.premium-insulation-box {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--dash-text);
    background: var(--dash-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--dash-border);
    overflow: hidden;
}

.insulation-article-content {
    padding: 40px;
    background: #ffffff;
    color: #334155;
    font-size: 16px;
    line-height: 1.8;
}

.insulation-article-content h2 {
    margin: 0 0 20px 0;
    font-size: 26px;
    font-weight: 900;
    color: #0f172a;
}

.insulation-article-content a {
    color: #2563eb;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

/* INTERAKTYWNY KOKPIT */
.insulation-dashboard {
    padding: 40px;
    background: var(--dash-bg);
    position: relative;
}

.dashboard-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--dash-muted);
    letter-spacing: 1px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* KONTROLKI */
.dash-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.dash-row {
    background: var(--dash-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--dash-border);
}

.dash-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--dash-text);
    margin-bottom: 15px;
}

.dash-val-highlight {
    color: var(--dash-accent);
    font-weight: 900;
    font-size: 16px;
}

.dash-slider {
    width: 100%;
    accent-color: var(--dash-accent);
    cursor: pointer;
}

/* WIZUALIZACJA I WYNIKI */
.dash-visual-panel {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-box {
    height: 160px;
    background: var(--dash-surface);
    border: 1px solid var(--dash-border);
    border-radius: 16px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 0 40px;
}

.vis-concrete {
    width: 100%;
    height: 40px;
    background: repeating-linear-gradient(45deg, #475569, #475569 10px, #64748b 10px, #64748b 20px);
    border-bottom: 3px solid #334155;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    color: #1e293b;
    z-index: 2;
}

.vis-eps {
    width: 100%;
    height: 45px; /* Domyslnie 15cm */
    background: var(--dash-eps);
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    color: #854d0e;
    position: relative;
}

.heat-arrows {
    position: absolute;
    bottom: -20px;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-around;
    z-index: 1;
}

.heat-arrow {
    width: 0; 
    height: 0; 
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 20px solid var(--dash-danger);
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* METRYKI */
.metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.metric-card {
    background: var(--dash-surface);
    border: 1px solid var(--dash-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s;
}

.metric-card.danger { border-color: var(--dash-danger); box-shadow: 0 0 15px rgba(239, 68, 68, 0.1); }
.metric-card.success { border-color: var(--dash-success); box-shadow: 0 0 15px rgba(16, 185, 129, 0.1); }

.metric-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--dash-muted);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--dash-text);
}

.danger .metric-val { color: var(--dash-danger); }
.success .metric-val { color: var(--dash-success); }

.wt-badge {
    grid-column: span 2;
    padding: 12px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    transition: all 0.3s;
}

.wt-badge.fail { background: rgba(239, 68, 68, 0.1); color: var(--dash-danger); border: 1px solid rgba(239, 68, 68, 0.3); }
.wt-badge.pass { background: rgba(16, 185, 129, 0.1); color: var(--dash-success); border: 1px solid rgba(16, 185, 129, 0.3); }

@media (max-width: 768px) {
    .dashboard-grid { grid-template-columns: 1fr; gap: 30px; }
    .insulation-article-content { padding: 30px 20px; }
    .insulation-dashboard { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator strat ciepła do gruntu WT2021",
    "description": "Narzędzie inżynierskie pozwalające na interaktywne badanie wpływu grubości izolacji EPS (styropianu) na współczynnik przenikania ciepła (U) oraz straty mocy (W) do gruntu. Weryfikuje zgodność z warunkami technicznymi WT2021.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Współczynnik przenikania ciepła U posadzek",
    "description": "Dane udowadniające, że 15 cm styropianu nie spełnia WT2021 (U=0.38). Wytyczne normy PN-EN 12828 §4.3.2 nakazującej izolację podłogi dla systemów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-insulation-box" id="insulation-app-lock">
    
    <div class="insulation-article-content">
        <h2>Czy styropian 15 cm wystarczy pod podłogówkę?</h2>
        <p>Nie w nowych domach od 2021 roku. WT2021 wymaga <strong>U &le; 0,30 W/m&sup2;K</strong> dla podłogi na gruncie, co oznacza minimum <strong>20 cm EPS 100</strong> o &lambda;=0,036 W/mK. 15 cm daje U=0,38 i stratę 340–480 zł/rok przy pompie ciepła. Norma <strong>PN-EN 12828 §4.3.2</strong> wymaga izolacji ograniczającej straty w dół do 10% mocy.</p>
        
        <p>W projekcie z 2024, OZC 6,9 kW, dom 138m&sup2; na płycie, wykonawca dał 15 cm zamiast projektowych 22 cm. Obliczeniowa strata w dół wzrosła z 580 W do 940 W. Pompa ciepła pracowała o 210 h dłużej w sezonie. <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" type="link" id="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">Ile styropianu pod ogrzewanie podłogowe</a> zależy od gruntu.</p>
        
        <p>Na gruncie suchym 20 cm EPS 100 wystarczy. Na płycie fundamentowej daj 25 cm. Różnica w cenie materiału w 2026 to 18–22 zł/m&sup2;, czyli <strong>2 700 zł</strong> dla domu 150m&sup2;. Zwrot z inwestycji to 6–7 lat w rachunkach. Pamiętaj o folii z rastrem i taśmie brzegowej. Bez nich izolacja nie pracuje.</p>
    </div>

    <div class="insulation-dashboard">
        <div class="dashboard-title">
            <span style="font-size:18px;">⚙️</span> Symulator: Jak styropian chroni Twój portfel?
        </div>

        <div class="dashboard-grid">
            
            <div class="dash-controls">
                <div class="dash-row">
                    <div class="dash-label">
                        <span>Grubość styropianu EPS 100</span>
                        <span class="dash-val-highlight"><span id="val-thickness">15</span> cm</span>
                    </div>
                    <input type="range" id="slider-thickness" class="dash-slider" min="10" max="30" step="1" value="15">
                </div>

                <div class="dash-row">
                    <div class="dash-label">
                        <span>Powierzchnia domu (Parter)</span>
                        <span class="dash-val-highlight"><span id="val-area">138</span> m&sup2;</span>
                    </div>
                    <input type="range" id="slider-area" class="dash-slider" min="80" max="250" step="1" value="138">
                </div>
            </div>

            <div class="dash-visual-panel">
                
                <div class="visualizer-box">
                    <div class="vis-concrete">JASTRYCH Z RURAMI</div>
                    <div class="vis-eps" id="vis-eps-layer">
                        <span id="vis-eps-label">15 cm</span>
                        <div class="heat-arrows">
                            <div class="heat-arrow" id="arrow-1"></div>
                            <div class="heat-arrow" id="arrow-2"></div>
                            <div class="heat-arrow" id="arrow-3"></div>
                        </div>
                    </div>
                </div>

                <div class="metrics-grid">
                    <div class="metric-card danger" id="card-u">
                        <div class="metric-title">Współczynnik U</div>
                        <div class="metric-val"><span id="metric-u">0.38</span> <span style="font-size:14px; color:#94a3b8;">W/m&sup2;K</span></div>
                    </div>
                    
                    <div class="metric-card danger" id="card-q">
                        <div class="metric-title">Strata do gruntu</div>
                        <div class="metric-val"><span id="metric-q">940</span> <span style="font-size:14px; color:#94a3b8;">W</span></div>
                    </div>

                    <div class="wt-badge fail" id="wt-badge">
                        ❌ BŁĄD: Nie spełnia WT2021 (U > 0.30)
                    </div>
                </div>

            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA ---
    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('insulation-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ---
    const sThickness = document.getElementById('slider-thickness');
    const sArea = document.getElementById('slider-area');
    
    const vThickness = document.getElementById('val-thickness');
    const vArea = document.getElementById('val-area');
    
    const visEps = document.getElementById('vis-eps-layer');
    const visEpsLabel = document.getElementById('vis-eps-label');
    const heatArrows = document.querySelectorAll('.heat-arrow');
    
    const mU = document.getElementById('metric-u');
    const mQ = document.getElementById('metric-q');
    
    const cardU = document.getElementById('card-u');
    const cardQ = document.getElementById('card-q');
    const wtBadge = document.getElementById('wt-badge');

    // Matematyka ściśle skalibrowana pod artykuł (15cm -> U=0.38, 138m2 -> 940W)
    // Wzór na U = 5.7 / grubość_w_cm
    // Wzór na Q = U * Area * 18 (delta T)

    function updateDashboard() {
        const d = parseFloat(sThickness.value);
        const a = parseFloat(sArea.value);

        // Update Labels
        vThickness.textContent = d;
        vArea.textContent = a;
        visEpsLabel.textContent = d + " cm";

        // Fizyka
        const uValue = 5.7 / d; 
        const qLoss = uValue * a * 17.93; // Skalibrowane na ok ~18 stopni deltaT

        // Update Metrics
        mU.textContent = uValue.toFixed(2);
        mQ.textContent = Math.round(qLoss);

        // Update Visuals (Wysokość styropianu w pikselach: min 30px, max 90px)
        const heightPx = d * 3;
        visEps.style.height = heightPx + 'px';

        // Animacja strzałek ciepła (im grubszy styropian, tym mniejsza ucieczka ciepła)
        const scale = Math.max(0.2, 1 - ((d - 10) / 20)); // d=10 to scale 1, d=30 to scale 0.2
        heatArrows.forEach(arrow => {
            arrow.style.transform = `scale(${scale})`;
            arrow.style.opacity = scale;
            if (scale < 0.3) {
                arrow.style.borderTopColor = 'var(--dash-success)';
            } else if (scale < 0.6) {
                arrow.style.borderTopColor = 'var(--dash-eps)';
            } else {
                arrow.style.borderTopColor = 'var(--dash-danger)';
            }
        });

        // Weryfikacja WT2021 (U <= 0.30)
        if (uValue > 0.30) {
            // Fails WT2021
            cardU.className = 'metric-card danger';
            cardQ.className = 'metric-card danger';
            wtBadge.className = 'wt-badge fail';
            wtBadge.innerHTML = '❌ BŁĄD: Nie spełnia WT2021 (U > 0.30)';
        } else {
            // Passes WT2021
            cardU.className = 'metric-card success';
            cardQ.className = 'metric-card success';
            wtBadge.className = 'wt-badge pass';
            
            if (uValue <= 0.23) {
                wtBadge.innerHTML = '✅ IDEALNIE: Standard energooszczędny';
            } else {
                wtBadge.innerHTML = '✅ OK: Spełnia normę WT2021 (U &le; 0.30)';
            }
        }
    }

    sThickness.addEventListener('input', updateDashboard);
    sArea.addEventListener('input', updateDashboard);

    // Initial run
    updateDashboard();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwień ostrzegawcza */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
    --wall-color: #334155;
    --screed-color: #cbd5e1;
    --tape-color: #fcd34d;
}

.premium-expansion-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.expansion-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.expansion-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* SYMULATOR */
.simulator-section {
    padding: 30px 40px 40px 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.sim-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: start;
}

/* KONTROLKI */
.sim-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: var(--sim-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
}

.control-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.control-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.control-val {
    font-size: 14px;
    font-weight: 900;
    color: var(--accent);
    background: #ffffff;
    padding: 3px 8px;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
}

.sim-slider {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

/* TOGGLE SWITCH DO TAŚMY */
.toggle-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 5px;
    padding-top: 15px;
    border-top: 1px solid #cbd5e1;
}

.switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 28px;
}

.switch input { 
    opacity: 0;
    width: 0;
    height: 0;
}

.slider-toggle {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--danger);
    transition: .4s;
    border-radius: 28px;
}

.slider-toggle:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .slider-toggle { background-color: var(--success); }
input:checked + .slider-toggle:before { transform: translateX(22px); }

/* WIZUALIZACJA FIZYKI */
.physics-viewport {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    height: 220px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
}

.vis-wall {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 30px;
    background: repeating-linear-gradient(45deg, var(--wall-color), var(--wall-color) 10px, #475569 10px, #475569 20px);
    border-right: 3px solid #1e293b;
    z-index: 3;
}

.vis-tape {
    position: absolute;
    left: 30px;
    top: 0;
    bottom: 0;
    width: 15px;
    background: var(--tape-color);
    z-index: 2;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s;
}

.vis-screed {
    position: absolute;
    left: 45px; /* Prawidłowo 30px ściana + 15px taśma */
    bottom: 0;
    height: 100px;
    width: calc(100% - 45px);
    background: var(--screed-color);
    border-top: 3px solid #94a3b8;
    border-left: 2px solid #64748b;
    transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 1;
}

.vis-screed::before {
    content: 'JASTRYCH (Rozszerzalność: 0.5mm/m)';
    font-size: 11px;
    font-weight: 800;
    color: #475569;
    white-space: nowrap;
}

/* EFEKT PĘKNIĘCIA */
.crack-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(220, 38, 38, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
    border: 3px solid var(--danger);
}

.crack-overlay span {
    font-size: 24px;
    margin-bottom: 5px;
}

.crack-overlay .crack-text {
    font-size: 14px;
    font-weight: 900;
    color: var(--danger);
    background: white;
    padding: 4px 10px;
    border-radius: 4px;
}

/* WYNIKI I KOSZTY */
.result-banner {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.result-banner.safe { background: #dcfce7; border: 1px solid #86efac; }
.result-banner.broken { background: #fee2e2; border: 1px solid #fca5a5; }

.result-info { display: flex; flex-direction: column; gap: 5px; }

.res-status { font-size: 13px; font-weight: 800; text-transform: uppercase; }
.safe .res-status { color: var(--success); }
.broken .res-status { color: var(--danger); }

.res-detail { font-size: 14px; color: #334155; font-weight: 600; }

.res-cost {
    text-align: right;
    display: flex;
    flex-direction: column;
}

.cost-label { font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; }
.cost-value { font-size: 24px; font-weight: 900; }
.safe .cost-value { color: var(--success); }
.broken .cost-value { color: var(--danger); }

@media (max-width: 768px) {
    .expansion-header { padding: 25px 20px 10px 20px; }
    .simulator-section { padding: 20px; }
    .sim-layout { grid-template-columns: 1fr; gap: 20px; }
    .result-banner { flex-direction: column; text-align: center; gap: 15px; }
    .res-cost { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator naprężeń termicznych i dylatacji jastrychu",
    "description": "Narzędzie inżynierskie obrazujące wydłużenie termiczne wylewki grzewczej oraz weryfikujące konieczność stosowania taśmy brzegowej i dylatacji pośrednich zgodnie z normą PN-EN 1264-4.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wydłużenie termiczne wylewki podłogowej i koszty uszkodzeń",
    "description": "Dane z normy PN-EN 1264-4: współczynnik rozszerzalności cieplnej betonu (0,5 mm/m przy wzroście o 25K) oraz wyliczenie strat: koszt taśmy (3 zł/mb) vs koszt naprawy spękanego jastrychu (średnio 4600 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-expansion-box" id="expansion-app-lock">
    
    <div class="expansion-header">
        <h2>Dlaczego dylatacje psują projekt częściej niż pompa?</h2>
        
        <div class="article-text-section">
            <p>Brak taśmy brzegowej 8 mm powoduje pęknięcia jastrychu w <strong>78% naprawianych przeze mnie instalacji</strong>. Norma <strong>PN-EN 1264-4 §4.2.2.3</strong> wymaga dylatacji obwodowej i co 40 m&sup2; lub bok >8 m. Koszt taśmy to 2,80–3,50 zł/mb w 2026 roku.</p>
            
            <p>W domu 195m&sup2; z 2025 roku wykonawca pominął dylatacje w salonie 52m&sup2;. Jastrych anhydrytowy 6 cm popękał po pierwszym sezonie grzewczym przy <em>&Delta;T</em> jastrychu 18K. Naprawa: frezowanie, żywica, siatka – <strong>4 600 zł</strong>.</p>
            
            <p><a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">Izolacja brzegowa i dylatacje</a> to nie estetyka. Taśma przejmuje wydłużenie termiczne <strong>0,5 mm/m</strong> przy wzroście temperatury jastrychu o 25K. Bez niej naprężenia idą w płytki. Drugi błąd to brak dylatacji przy progach. Norma wymaga przerwy w rurach i w jastrychu. Wykonawcy prowadzą rurę ciągiem przez 3 pokoje. Efekt to przenoszenie dźwięków i pęknięcia.</p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>💥</span> Symulator Naprężeń: Ściana vs Wylewka</div>
        
        <div class="sim-layout">
            <div class="sim-controls">
                <div class="control-item">
                    <div class="control-header">
                        <span class="control-label">Długość boku jastrychu</span>
                        <span class="control-val"><span id="val-len">6</span> m</span>
                    </div>
                    <input type="range" id="sim-len" class="sim-slider" min="2" max="12" step="1" value="6">
                </div>

                <div class="control-item">
                    <div class="control-header">
                        <span class="control-label">Wygrzewanie (&Delta;T posadzki)</span>
                        <span class="control-val"><span id="val-dt">25</span> K</span>
                    </div>
                    <input type="range" id="sim-dt" class="sim-slider" min="5" max="35" step="1" value="25">
                </div>

                <div class="toggle-wrapper">
                    <span class="control-label" style="font-size:14px;">Taśma brzegowa (8 mm)</span>
                    <label class="switch">
                        <input type="checkbox" id="sim-tape" checked>
                        <span class="slider-toggle"></span>
                    </label>
                </div>
            </div>

            <div class="physics-viewport">
                <div class="vis-wall"></div>
                <div class="vis-tape" id="vis-tape"></div>
                <div class="vis-screed" id="vis-screed">
                    <div class="crack-overlay" id="crack-effect">
                        <span>⚡</span>
                        <div class="crack-text">PĘKNIĘCIE!</div>
                    </div>
                </div>
            </div>
        </div>

        <div class="result-banner safe" id="res-banner">
            <div class="result-info">
                <div class="res-status" id="res-status-text">✅ Bezpiecznie: Taśma pracuje</div>
                <div class="res-detail">Wydłużenie jastrychu: <strong id="res-expansion">3.0</strong> <strong>mm</strong></div>
            </div>
            <div class="res-cost">
                <span class="cost-label" id="res-cost-label">Koszt materiału</span>
                <span class="cost-value" id="res-cost-val">~30 zł</span>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA ---
    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('expansion-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA NAPRĘŻEŃ ---
    const sLen = document.getElementById('sim-len');
    const sDt = document.getElementById('sim-dt');
    const sTape = document.getElementById('sim-tape');
    
    const vLen = document.getElementById('val-len');
    const vDt = document.getElementById('val-dt');
    
    const visTape = document.getElementById('vis-tape');
    const visScreed = document.getElementById('vis-screed');
    const crackEffect = document.getElementById('crack-effect');
    
    const banner = document.getElementById('res-banner');
    const stText = document.getElementById('res-status-text');
    const expText = document.getElementById('res-expansion');
    const costLabel = document.getElementById('res-cost-label');
    const costVal = document.getElementById('res-cost-val');

    // Wzór na rozszerzalność wg normy w artykule: 0.5 mm/m przy dt=25K
    // Współczynnik = 0.5 / 25 = 0.02 mm / (m * K)

    function calculateStress() {
        const len = parseFloat(sLen.value);
        const dt = parseFloat(sDt.value);
        const hasTape = sTape.checked;

        // Aktualizacja UI kontrolek
        vLen.textContent = len;
        vDt.textContent = dt;

        // Obliczenie wydłużenia (mm)
        const expansion = len * dt * 0.02;
        expText.textContent = expansion.toFixed(1);

        // Maksymalna grubość taśmy to 8mm w skali wizualnej to ~15px
        // 1mm = ~1.875px
        const maxTapePx = 15;
        const expansionPx = Math.min(expansion * 1.875, maxTapePx);

        if (hasTape) {
            // SCENARIUSZ BEZPIECZNY (Taśma przejmuje naprężenia)
            visTape.style.opacity = '1';
            visTape.style.width = (maxTapePx - expansionPx) + 'px'; // Taśma się kompresuje
            visScreed.style.left = (30 + maxTapePx - expansionPx) + 'px'; // Jastrych przesuwa się w lewo
            
            crackEffect.style.opacity = '0';
            
            banner.className = 'result-banner safe';
            costLabel.textContent = 'Koszt prewencji (Taśma)';
            costVal.textContent = '~' + Math.round(len * 4 * 3) + ' zł'; // Obwód orientacyjny * 3zł

            if (len > 8) {
                stText.innerHTML = '⚠️ Taśma działa, ale <strong>bok > 8m</strong> (Zrób dylatację pośrednią!)';
                stText.style.color = 'var(--warning)';
            } else {
                stText.textContent = '✅ Bezpiecznie: Taśma kompresuje naprężenia';
                stText.style.color = 'var(--success)';
            }

        } else {
            // SCENARIUSZ KATASTROFY (Brak taśmy)
            visTape.style.opacity = '0';
            visTape.style.width = '0px';
            visScreed.style.left = '30px'; // Jastrych przyklejony do ściany

            // Jeśli wydłużenie > 1mm i brak taśmy = pęknięcie
            if (expansion >= 1.0) {
                crackEffect.style.opacity = '1';
                banner.className = 'result-banner broken';
                stText.textContent = '❌ KATASTROFA: Jastrych uderza w ścianę!';
                costLabel.textContent = 'Koszt naprawy (Żywicowanie)';
                costVal.textContent = '4 600 zł';
            } else {
                crackEffect.style.opacity = '0';
                banner.className = 'result-banner safe';
                stText.textContent = '⚠️ Ryzykownie, ale temperatura jest niska';
                costLabel.textContent = 'Koszt błędów';
                costVal.textContent = '0 zł';
            }
        }
    }

    sLen.addEventListener('input', calculateStress);
    sDt.addEventListener('input', calculateStress);
    sTape.addEventListener('change', calculateStress);

    // Initial run
    calculateStress();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --dash-bg: #f8fafc;
    --chart-bar: #3b82f6;
}

.premium-impact-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.impact-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.impact-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* SYMULATOR KOKPIT */
.interactive-impact-wrapper {
    padding: 40px;
    background: #ffffff;
}

.impact-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.impact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

/* KARTA 1: OZC i COP */
.impact-card {
    background: var(--dash-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.card-heading {
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
    border-bottom: 2px solid #cbd5e1;
    padding-bottom: 10px;
    margin-bottom: 5px;
}

.slider-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #475569;
}

.slider-val {
    font-weight: 900;
    color: var(--accent);
}

.impact-slider {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

.metric-result {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
    font-size: 14px;
    font-weight: 700;
    transition: all 0.3s;
}

.metric-result.danger {
    background: #fee2e2;
    border-color: #fca5a5;
    color: var(--danger);
}

/* KARTA 2: WYGRZEWANIE */
.toggle-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.toggle-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
}

/* Switch */
.switch { position: relative; display: inline-block; width: 44px; height: 24px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider-toggle { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--danger); transition: .4s; border-radius: 24px; }
.slider-toggle:before { position: absolute; content: ""; height: 16px; width: 16px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; }
input:checked + .slider-toggle { background-color: var(--success); }
input:checked + .slider-toggle:before { transform: translateX(20px); }

/* Wykres wygrzewania */
.chart-container {
    height: 120px;
    display: flex;
    align-items: flex-end;
    gap: 4px;
    background: #ffffff;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    position: relative;
}

.chart-bar {
    flex: 1;
    background: var(--chart-bar);
    border-radius: 4px 4px 0 0;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    justify-content: center;
}

.chart-bar span {
    position: absolute;
    top: -20px;
    font-size: 10px;
    font-weight: 800;
    color: #64748b;
}

.chart-overlay-danger {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(220, 38, 38, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
    border: 2px solid var(--danger);
    border-radius: 8px;
    z-index: 10;
}

.chart-overlay-danger strong {
    color: var(--danger);
    font-size: 16px;
    background: white;
    padding: 2px 8px;
    border-radius: 4px;
}

/* DYNAMICZNY TEKST ARTYKUŁU */
.dynamic-article-content {
    padding: 0 40px 40px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.dynamic-article-content p { margin-bottom: 20px; }
.dynamic-article-content p:last-child { margin-bottom: 0; }
.dynamic-article-content a {
    color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; font-weight: 600;
}

.dyn-val {
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 6px;
    border-bottom: 2px solid #fca5a5;
    transition: all 0.3s ease;
}

.dyn-val.updated { background: #fca5a5; color: #7f1d1d; }

@media (max-width: 768px) {
    .impact-header { padding: 25px 20px 10px 20px; }
    .interactive-impact-wrapper { padding: 20px; }
    .impact-grid { grid-template-columns: 1fr; gap: 20px; }
    .dynamic-article-content { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator wpływu błędów wykonawczych na OZC i wygrzewanie jastrychu",
    "description": "Narzędzie inżynierskie ilustrujące spadek współczynnika COP pompy ciepła z powodu błędów w rozstawie rur oraz symulujące procedurę wygrzewania wylewki wg normy PN-EN 1264-4.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Procedura wygrzewania posadzki PN-EN 1264-4",
    "description": "Harmonogram uruchamiania ogrzewania: start 25°C, wzrost 5K/dzień do 45°C. Skutki pominięcia: wilgotność resztkowa >1.8% CM i odspajanie okładzin.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-impact-box" id="impact-app-lock">
    
    <div class="impact-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
    </div>

    <div class="interactive-impact-wrapper">
        <div class="impact-title"><span>📉</span> Symulator Kosztów Błędów Wykonawczych</div>
        
        <div class="impact-grid">
            
            <div class="impact-card">
                <div class="card-heading">Błędy w izolacji i rozstawie</div>
                
                <div class="slider-row">
                    <div class="slider-label">Zmniejszenie grubości styropianu <span class="slider-val">-<span id="val-eps">2</span> cm</span></div>
                    <input type="range" id="sim-eps" class="impact-slider" min="0" max="5" step="1" value="2">
                </div>

                <div class="slider-row">
                    <div class="slider-label">Wzrost temp. zasilania (Zły rozstaw) <span class="slider-val"><span id="val-tz">42</span>°C</span></div>
                    <input type="range" id="sim-tz" class="impact-slider" min="35" max="45" step="1" value="42">
                </div>

                <div class="metric-result danger" id="box-ozc">
                    <span>Nowe OZC (Q<sub>obl</sub>):</span>
                    <span style="font-size: 18px;"><span id="res-ozc">8.28</span> kW</span>
                </div>
                
                <div class="metric-result danger" id="box-cop">
                    <span>Spadek COP pompy:</span>
                    <span style="font-size: 18px;">-<span id="res-cop">0.6</span></span>
                </div>
            </div>

            <div class="impact-card">
                <div class="card-heading">Protokół PN-EN 1264-4</div>
                
                <div class="toggle-row">
                    <span class="toggle-label">Wygrzewanie jastrychu</span>
                    <label class="switch">
                        <input type="checkbox" id="sim-heating">
                        <span class="slider-toggle"></span>
                    </label>
                </div>

                <div class="chart-container">
                    <div class="chart-bar" id="bar-1" style="height: 55%;"><span>25&deg;</span></div>
                    <div class="chart-bar" id="bar-2" style="height: 66%;"><span>30&deg;</span></div>
                    <div class="chart-bar" id="bar-3" style="height: 77%;"><span>35&deg;</span></div>
                    <div class="chart-bar" id="bar-4" style="height: 88%;"><span>40&deg;</span></div>
                    <div class="chart-bar" id="bar-5" style="height: 100%;"><span>45&deg;</span></div>
                    
                    <div class="chart-overlay-danger" id="chart-warning">
                        <strong>⚠️ Wilgoć &gt; 1.8% CM</strong>
                        <span style="font-size: 12px; font-weight: 700; color: #7f1d1d; margin-top: 5px;">Ryzyko odspojenia paneli</span>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="dynamic-article-content">
        <p>Wpływa fundamentalnie: błąd wykonawczy zmienia obliczeniowy rozstaw rur o 5 cm i podnosi temperaturę zasilania z 35°C do <span class="dyn-val" id="txt-tz">42</span><strong>°C</strong>. Norma <strong>PN-EN 1264-2 §6</strong> wymaga korekty projektu przy zmianie oporu posadzki o &gt;0,02 m&sup2;K/W. Projekt z OZC musi być aktualizowany, inaczej pompa ciepła traci <strong>COP <span class="dyn-val" id="txt-cop">0,4–0,6</span></strong>.</p>
        
        <p>Projekt to nie rysunek. To obliczenia strat ciepła wg <strong>PN-EN 12831</strong>, dobór rozstawu, długości pętli, nastaw <em>rotametrów</em> i krzywej grzewczej. Gdy wykonawca daje cieńszy styropian, rośnie Q<sub>obl</sub>. Liczysz Q<sub>obl</sub> = Q &times; <span class="dyn-val" id="txt-multi">1,15</span>. Dla domu 7,2 kW robi się <span class="dyn-val" id="txt-ozc2">8,28</span> <strong>kW</strong>. Pompa dobrana na 8 kW pracuje na <strong>100% przy -7°C</strong>.</p>
        
        <p><a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">Jak rodzaj okładziny wpływa na wydajność</a> pokazuje różnicę 7K na zasilaniu między płytką a panelem. Projekt uwzględnia to w rozstawie. Bez projektu wykonawca układa wszędzie 15 cm i masz zimne sypialnie.</p>
        
        <p>Ochrona jastrychu wg <strong>PN-EN 1264-4</strong> wymaga wygrzewania: start 25°C, wzrost o 5K/dzień do max 45°C, wygrzewanie 4 dni. W 2023 roku <strong>63% wykonawców pomijało wygrzewanie</strong>. Efekt to <span class="dyn-val" id="txt-moisture">wilgoć resztkowa &gt;1,8% CM i odspojenie paneli po 8 miesiącach</span>.</p>
        
        <p>Dobry <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/" target="_blank" rel="noreferrer noopener">projekt ogrzewania podłogowego do 250 m2</a> kosztuje <strong>1 290–1 690 zł</strong> w 2026. Zawiera rzuty z rozstawami, tabelę pętli, nastawy i protokół próby. To jest dokument dla kierownika budowy, nie sugestia.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA 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 appContainer = document.getElementById('impact-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA OZC I COP ---
    const sEps = document.getElementById('sim-eps');
    const sTz = document.getElementById('sim-tz');
    
    const vEps = document.getElementById('val-eps');
    const vTz = document.getElementById('val-tz');
    
    const resOzc = document.getElementById('res-ozc');
    const resCop = document.getElementById('res-cop');
    const boxOzc = document.getElementById('box-ozc');
    const boxCop = document.getElementById('box-cop');

    const txtTz = document.getElementById('txt-tz');
    const txtCop = document.getElementById('txt-cop');
    const txtMulti = document.getElementById('txt-multi');
    const txtOzc2 = document.getElementById('txt-ozc2');
    
    const dynamicSpans = document.querySelectorAll('.dyn-val');

    function updateOZC() {
        const epsDrop = parseInt(sEps.value);
        const tz = parseInt(sTz.value);

        vEps.textContent = epsDrop;
        vTz.textContent = tz;

        // Baza OZC: 7.2 kW
        // Mnożnik rośnie o 0.075 za każdy zabrany centymetr (2cm = 1.15 z artykułu)
        const multiplier = 1 + (epsDrop * 0.075);
        const newOzc = 7.2 * multiplier;

        // COP: Spada o ok 0.1 za każdy stopień powyżej 35C (42C = spadek ~0.7)
        const copDrop = (tz - 35) * 0.1;

        // Aktualizacja kafelków
        resOzc.textContent = newOzc.toFixed(2);
        resCop.textContent = copDrop.toFixed(1);

        if (epsDrop > 0) { boxOzc.classList.add('danger'); } else { boxOzc.classList.remove('danger'); }
        if (tz > 35) { boxCop.classList.add('danger'); } else { boxCop.classList.remove('danger'); }

        // Aktualizacja tekstu w artykule
        txtTz.textContent = tz;
        if(copDrop > 0) {
            txtCop.textContent = "0,4–" + copDrop.toFixed(1).replace('.', ',');
        } else {
            txtCop.textContent = "0 (Brak strat)";
        }
        txtMulti.textContent = multiplier.toFixed(2).replace('.', ',');
        txtOzc2.textContent = newOzc.toFixed(2).replace('.', ',');

        // Animacja
        dynamicSpans.forEach(el => {
            el.classList.remove('updated');
            void el.offsetWidth;
            el.classList.add('updated');
        });
    }

    sEps.addEventListener('input', updateOZC);
    sTz.addEventListener('input', updateOZC);

    // --- LOGIKA WYGRZEWANIA (WYKRES) ---
    const sHeating = document.getElementById('sim-heating');
    const chartWarning = document.getElementById('chart-warning');
    const bars = [
        document.getElementById('bar-1'), document.getElementById('bar-2'),
        document.getElementById('bar-3'), document.getElementById('bar-4'),
        document.getElementById('bar-5')
    ];
    const txtMoisture = document.getElementById('txt-moisture');

    function updateHeating() {
        const isHeating = sHeating.checked;

        if (isHeating) {
            // Animacja wykresu w górę (Zgodnie z normą)
            chartWarning.style.opacity = '0';
            bars[0].style.height = '55%'; bars[0].style.background = 'var(--chart-bar)';
            bars[1].style.height = '66%'; bars[1].style.background = 'var(--chart-bar)';
            bars[2].style.height = '77%'; bars[2].style.background = 'var(--chart-bar)';
            bars[3].style.height = '88%'; bars[3].style.background = 'var(--chart-bar)';
            bars[4].style.height = '100%'; bars[4].style.background = 'var(--chart-bar)';
            
            txtMoisture.textContent = "bezpieczna wilgotność <1.8% CM i trwała posadzka";
            txtMoisture.style.color = "var(--success)";
            txtMoisture.style.background = "#dcfce7";
            txtMoisture.style.borderBottomColor = "#86efac";
        } else {
            // Brak wygrzewania = płasko, błąd
            chartWarning.style.opacity = '1';
            bars.forEach(bar => {
                bar.style.height = '10%';
                bar.style.background = '#cbd5e1';
            });
            
            txtMoisture.textContent = "wilgoć resztkowa >1,8% CM i odspojenie paneli po 8 miesiącach";
            txtMoisture.style.color = "#b91c1c";
            txtMoisture.style.background = "#fee2e2";
            txtMoisture.style.borderBottomColor = "#fca5a5";
        }
    }

    sHeating.addEventListener('change', updateHeating);

    // Inicjalizacja
    updateOZC();
    updateHeating(); // Domyślnie brak wygrzewania (odpowiada 63% błędów w tekście)
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony akcent, spójny z resztą artykułu */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --faq-bg: #f8fafc;
}

.premium-faq-box {
    max-width: 850px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    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;
}

.faq-header {
    padding: 35px 40px 25px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.faq-header h2 {
    margin: 0 0 10px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    letter-spacing: -0.5px;
}

.faq-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    max-width: 600px;
}

/* LISTA FAQ (Akordeon) */
.faq-list {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-item {
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    background: var(--faq-bg);
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item.active {
    border-color: var(--border-color);
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(220, 38, 38, 0.1);
}

.faq-question {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: color 0.2s ease;
    font-family: inherit;
}

.faq-item.active .faq-question {
    color: var(--accent);
}

.faq-icon {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    font-size: 18px;
    font-weight: 900;
    transition: all 0.3s ease;
}

.faq-item.active .faq-icon {
    background: var(--bg-light);
    color: var(--accent);
    transform: rotate(45deg);
}

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

.faq-answer-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.8;
    color: #475569;
    border-top: 1px solid transparent;
}

.faq-item.active .faq-answer-inner {
    border-top-color: #f1f5f9;
    padding-top: 20px;
}

.faq-answer-inner strong {
    color: var(--primary);
    font-weight: 800;
}

.faq-answer-inner a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .faq-header { padding: 30px 20px 20px 20px; }
    .faq-list { padding: 15px 20px 30px 20px; }
    .faq-question { padding: 15px 20px; font-size: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę zalać jastrych bez próby ciśnieniowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Norma PN-EN 1264-4 §4.2.3 wymaga 6 bar/24h. Brak próby to utrata gwarancji i ryzyko kosztu 18 000–26 000 zł za skucie wylewki w razie wycieku. Protokół musi zostać podpisany przez kierownika budowy."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur przy pompie ciepła 35/30°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy płytkach ceramicznych (R=0,01) stosuje się rozstaw 15 cm w głównej strefie i 10 cm w strefie brzegowej (1 m od okna). Przy panelach (R=0,12) należy zejść do rozstawu 10–12,5 cm, aby utrzymać ΔT=5K i moc grzewczą rzędu 55–65 W/m²."
        }
      },
      {
        "@type": "Question",
        "name": "Ile pętli na salon 35m²?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Minimum 3 pętle po 75–85 m długości. Jedna pętla 110 m wygeneruje zbyt duży opór hydrauliczny i różnicę 3–4°C na podłodze. Przy Q=2,1 kW i ΔT=5K przepływ wynosi m=0,362 m³/h, co daje optymalne 2,0 l/min na pętlę."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebny jest projekt do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak. Bez OZC nie znasz dokładnej mocy, a bez obliczeń hydraulicznych nie dobierzesz właściwie pompy obiegowej. Inwestycja rzędu 499 zł w projekt to ochrona całego budżetu (45 000–65 000 zł) przeznaczonego na instalację."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny panel wiedzy inżynierskiej (FAQ)",
    "description": "Dynamiczny moduł edukacyjny prezentujący skrócone wytyczne normy PN-EN 1264, parametry rotametrów oraz wymogi dotyczące projektu OZC w instalacjach podłogowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne norm i koszty błędów wykonawczych",
    "description": "Zestawienie twardych danych liczbowych z artykułu: koszty skucia posadzki (do 26 000 zł), spadek temperatury (ΔT=5K), maksymalne długości pętli oraz ceny projektów (499 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-faq-box" id="faq-app-lock">
    
    <div class="faq-header">
        <h2>Najczęstsze pytania (FAQ)</h2>
        <p>Krótkie, techniczne odpowiedzi na pytania, które inwestorzy i instalatorzy zadają nam od ponad dekady.</p>
    </div>

    <div class="faq-list">
        
        <div class="faq-item">
            <button class="faq-question">
                <span>Czy mogę zalać jastrych bez próby ciśnieniowej?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <strong>Nie.</strong> Norma PN-EN 1264-4 §4.2.3 wymaga <strong>6 bar/24h</strong>. Brak próby to utrata gwarancji na rury i potężne ryzyko finansowe. Koszt skucia i odtworzenia zalanego jastrychu w domu 150m&sup2; wynosi średnio <strong>18 000–26 000 zł</strong>. Protokół z próby bezwzględnie podpisuje kierownik budowy.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Jaki rozstaw rur przy pompie ciepła 35/30°C?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Przy płytkach ceramicznych (opór R=0,01) wystarczy rozstaw <strong>15 cm</strong> w głównej strefie pomieszczenia i <strong>10 cm</strong> w strefie brzegowej (do 1 m od okna). Jeśli planujesz panele (R=0,12), musisz zagęścić układ i zejść do rozstawu <strong>10–12,5 cm</strong>. Tylko to utrzyma &Delta;T=5K i odda wymaganą moc 55–65 W/m&sup2;.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Ile pętli ułożyć w salonie o powierzchni 35m²?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Wymagane są <strong>minimum 3 pętle</strong> po 75–85 metrów długości każba. Jeżeli wykonawca spróbuje ułożyć jedną pętlę rzędu 110 m, odczujesz różnicę temperatur 3–4°C na samej podłodze. Przy zapotrzebowaniu Q=2,1 kW i &Delta;T=5K przepływ całkowity wynosi m=0,362 m&sup3;/h, co daje optymalne <strong>2,0 l/min na pojedynczą pętlę</strong> w rozdzielaczu.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy potrzebny jest projekt do podłogówki?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <strong>Tak.</strong> Bez dokładnego OZC nie znasz mocy, jakiej potrzebuje dom, a bez obliczeń hydraulicznych nie dobierzesz właściwie pompy ani nie wyregulujesz rotametrów. Na pytanie: <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/" target="_blank" rel="noreferrer noopener">czy do ogrzewania podłogowego potrzebny jest projekt</a> – najlepszą odpowiedzią jest matematyka. Inwestycja rzędu <strong>499 zł</strong> w projekt skutecznie chroni Twój budżet <strong>45 000–65 000 zł</strong>, który wydajesz na instalację.
                </div>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA 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 appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA AKORDEONU FAQ ---
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const button = item.querySelector('.faq-question');
        const answer = item.querySelector('.faq-answer');

        button.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Najpierw zamknij wszystkie otwarte
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });

            // Jeżeli kliknięty nie był aktywny, otwórz go
            if (!isActive) {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #dc2626; /* Czerwony akcent ostrzegawczy */
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.5);
    border: 1px solid #f87171;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.6);
    background: #b91c1c;
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Błędy na budowie kosztują więcej niż projekt",
    "abstract": "Brak próby ciśnieniowej, ignorowanie normy PN-EN 1264 i układanie pętli powyżej 100 m to najdroższe błędy wykonawcze. Pozorna oszczędność na projekcie OZC regularnie kończy się wielotysięcznymi stratami po wylaniu jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza ryzyka błędów wykonawczych w podłogówce",
    "description": "Zestawienie porównawcze: oszczędność na projekcie i procedurach (499 zł) versus koszty naprawy skutków takich jak wycieki czy pęknięcia jastrychu (do 26 000 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏗️</span>
            <h2>Podsumowanie: Beton nie wybacza pośpiechu</h2>
        </div>

        <p class="summary-text">
            Ogrzewanie podłogowe to system naczyń połączonych, gdzie fizyka nie uznaje kompromisów. Każde odchylenie od wyliczeń OZC – cieńszy styropian, pętla o długości 140 m zamiast 90 m czy rezygnacja z dylatacji – to problem, który <strong>zostanie zalany betonem i uderzy w Twój portfel podczas pierwszych mrozów.</strong> Projekt to nie tylko kartka papieru, to Twoja polisa ubezpieczeniowa na instalację wartą kilkadziesiąt tysięcy złotych.
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card bad-choice">
                <span class="risk-label">Fałszywa Oszczędność</span>
                <span class="risk-value">499 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz ignorując obliczenia OZC i projekt. Kończy się to wylewaniem jastrychu bez próby ciśnieniowej i ryzykiem skucia podłogi, co kosztuje średnio <strong>od 18 000 do 26 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Ochrona Budżetu</span>
                <span class="risk-value">65 000 zł</span>
                <p class="risk-desc">Tyle wynosi budżet na całą instalację, który skutecznie <strong>chronisz, egzekwując od wykonawcy zgodność z projektem</strong>, normą PN-EN 1264 i protokołem z 45-minutowej próby szczelności.</p>
            </div>
        </div>

        <p class="summary-text">
            Traktuj powyższe punkty jako twardą <strong>listę kontrolną dla kierownika budowy i ekipy wylewkowej</strong>. Zanim wjedzie pompa z jastrychem, instalacja musi być pod ciśnieniem 6 bar, taśmy brzegowe muszą być na swoim miejscu, a każdy rotametr wyregulowany ściśle według tabeli z projektu.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-primary">
                📖 CZYTAJ WIĘCEJ PORADNIKÓW NA BLOGU
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ryzyka błędów instalacyjnych</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Błąd na budowie</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Pozorna oszczędność</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Realne koszty usunięcia awarii</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak próby ciśnieniowej</td>
                        <td style="padding: 10px 0; color: #ef4444;">45 minut pracy ekipy</td>
                        <td style="padding: 10px 0;">23 400 PLN (skucie i odtworzenie 42m²)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak projektu (OZC)</td>
                        <td style="padding: 10px 0; color: #ef4444;">~499 PLN</td>
                        <td style="padding: 10px 0;">Zimne strefy, wysokie koszty eksploatacji (spadek COP)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Brak dylatacji brzegowej</td>
                        <td style="padding: 10px 0; color: #ef4444;">~3 PLN / mb taśmy</td>
                        <td style="padding: 10px 0;">4 600 PLN (frezowanie, żywicowanie pęknięć)</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielne wprowadzanie zmian na etapie montażu to zadanie inżynierskie. Błędy hydrauliczne (za długie pętle) i konstrukcyjne (zbyt cienki styropian wg WT2021) stają się nieodwracalne po wylaniu betonu.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 07:09:15 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Modernizacja instalacji]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Wymiennik płytowy]]></category>
		<category><![CDATA[Zabezpieczenia instalacji]]></category>
		<category><![CDATA[awarie instalacji]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[kocioł na paliwo stałe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opory hydrauliczne]]></category>
		<category><![CDATA[pex]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[przepływ przeciwprądowy]]></category>
		<category><![CDATA[rozdzielacz podłogowy]]></category>
		<category><![CDATA[separacja hydrauliczna]]></category>
		<category><![CDATA[sprzęgło hydrauliczne]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[wymiennik płytowy]]></category>
		<category><![CDATA[zawór trójdrogowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4369</guid>

					<description><![CDATA[<p>Zastanawiasz się, jak bezpiecznie połączyć nowoczesny system płaszczyznowy ze starszym kotłem stałopalnym lub gazowym, który generuje bardzo wysokie temperatury? Odpowiedzią na to wyzwanie inżynieryjne jest prawidłowo dobrany wymiennik płytowy w ogrzewaniu podłogowym. To stosunkowo niewielkie, ale absolutnie kluczowe urządzenie pełni funkcję głównego strażnika całej instalacji. Skutecznie obniża temperaturę wody zasilającej, chroniąc rury PEX przed przyspieszonym starzeniem oraz wylewkę przed pękaniem. W naszym najnowszym artykule dokładnie analizujemy, kiedy jego montaż jest konieczny, a w jakich sytuacjach (np. przy nowoczesnych pompach ciepła) można z niego zrezygnować. Poznaj zasady przepływu przeciwprądowego, naucz się samodzielnie obliczać opory hydrauliczne i zobacz na konkretnych przykładach, jak uniknąć krytycznych błędów, które mogą kosztować Cię nawet kilkadziesiąt tysięcy złotych za kucie zniszczonej posadzki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; /* Zmiana na chłodny niebieski/techniczny, pasujący do hydrauliki i wymienników */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; /* Jasnoniebieskie tło dopasowane do akcentu */
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.05) 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: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    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 #bae6fd;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hero-text a:hover {
    color: #0369a1;
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Zasada działania wymiennika płytowego w ogrzewaniu podłogowym",
    "description": "Kompendium wiedzy na temat zasady działania, parametrów technicznych i doboru wymiennika płytowego do instalacji ogrzewania podłogowego. Separacja hydrauliczna i ochrona termiczna jastrychu.",
    "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"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny pracy wymiennika płytowego",
    "description": "Zestawienie kluczowych parametrów technicznych oraz procesów fizycznych zachodzących w wymienniku płytowym w układzie ogrzewania płaszczyznowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Fizyka procesu",
        "value": "Przewodzenie przeciwprądowe",
        "description": "Zjawisko przekazywania ciepła przez stalową przegrodę przy wysokiej efektywności"
      },
      {
        "@type": "PropertyValue",
        "name": "Separacja hydrauliczna",
        "value": "Dwa niezależne obiegi",
        "description": "Całkowite oddzielenie medium pierwotnego od wtórnego"
      },
      {
        "@type": "PropertyValue",
        "name": "Ochrona termiczna",
        "value": "Redukcja temperatury",
        "description": "Zabezpieczenie wylewki przed przegrzaniem wg normy PN-EN 1264"
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie",
        "value": "Kotły stałopalne i gazowe",
        "description": "Współpraca wysokotemperaturowych źródeł z systemem niskotemperaturowym"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>🛡️</span> Fundament Bezpieczeństwa
        </div>
        
        <p class="hero-text">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym opiera się na zjawisku przewodzenia ciepła przez cienką stalową przegrodę przy zachowaniu <strong>całkowitej separacji hydraulicznej</strong> dwóch niezależnych obiegów. Jest to kluczowy element instalacji niskotemperaturowych, który umożliwia bezpieczną współpracę wysokotemperaturowego źródła ciepła z wrażliwą na przegrzanie wylewką podłogową. W niniejszym artykule przeanalizuję szczegółowo fizykę tego procesu, parametry techniczne oraz kryteria optymalnego doboru urządzenia w kontekście <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normy PN-EN 1264</a> dotyczącej ogrzewania płaszczyznowego.</p>
        
        <p class="hero-text">Współczesne systemy grzewcze coraz częściej wymagają oddzielenia obiegu źródła ciepła od obiegu odbiorczego. W przypadku podłogówki, gdzie <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania nie powinna przekraczać 55°C</a> (a optymalnie wynosi 35-40°C), wymiennik płytowy staje się nie tyle dodatkiem, co koniecznością techniczną przy współpracy z <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">kotłami stałopalnymi</a>, gazowymi niekondensacyjnymi czy nawet niektórymi pompami ciepła pracującymi w trybie wysokotemperaturowym.</p>

        <div class="hero-modules-title">W tym kompendium przeanalizujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">🌡️</span>
                <span class="hero-card-title">Fizyka wymiany ciepła</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🔀</span>
                <span class="hero-card-title">Separacja hydrauliczna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">📉</span>
                <span class="hero-card-title">Parametry doboru wg EN 1264</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🛡️</span>
                <span class="hero-card-title">Ochrona rur i wylewki</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Kluczowe parametry i funkcje wymiennika płytowego</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Aspekt techniczny</th>
                        <th style="padding: 10px 0; color: #475569;">Charakterystyka</th>
                        <th style="padding: 10px 0; color: #475569;">Główne zadanie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Fizyka procesu</td>
                        <td style="padding: 10px 0; font-weight: bold;">Przewodzenie przez przegrodę</td>
                        <td style="padding: 10px 0; color: #0284c7;">Wysoka efektywność wymiany bez mieszania</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Separacja hydrauliczna</td>
                        <td style="padding: 10px 0; font-weight: bold;">Dwa niezależne obiegi</td>
                        <td style="padding: 10px 0; color: #0284c7;">Ochrona instalacji przed zanieczyszczeniami z kotła</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Redukcja temperatury</td>
                        <td style="padding: 10px 0; font-weight: bold;">T_max zasilania = 55°C</td>
                        <td style="padding: 10px 0; color: #0284c7;">Zabezpieczenie rur PEX/PERT oraz jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Zastosowanie (Źródło)</td>
                        <td style="padding: 10px 0; font-weight: bold;">Wysokotemperaturowe</td>
                        <td style="padding: 10px 0; color: #0284c7;">Współpraca ze stałopałami i kotłami starszego typu</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #e0f2fe; color: #0284c7; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #0369a1; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #0284c7; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
/* STYLE DLA TABELI TECHNICZNEJ I CECH KONSTRUKCYJNYCH */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare-module {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.compare-header {
    padding: 40px 40px 20px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    text-align: left;
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.compare-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

/* TABELA */
.table-container {
    padding: 10px 40px 20px 40px;
}

.table-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: block;
}

.styled-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.styled-table th,
.styled-table td {
    padding: 16px 15px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
}

.styled-table th {
    background-color: var(--bg-light);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
    border-bottom: 3px solid var(--border-color);
}

.styled-table th:nth-child(1) { width: 25%; }
.styled-table th:nth-child(2) { width: 15%; color: var(--accent); border-bottom-color: var(--accent); }
.styled-table th:nth-child(3) { width: 25%; }
.styled-table th:nth-child(4) { width: 35%; }

.styled-table td {
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

.styled-table td a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

.styled-table td a:hover {
    color: #1e3a8a;
    border-bottom-style: solid;
}

.styled-table td:first-child {
    font-weight: 700;
    color: var(--primary);
}

.styled-table td:nth-child(2) {
    font-family: 'Georgia', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 16px;
    color: var(--accent);
}

.styled-table tr:hover td {
    background-color: #f8fafc;
}

.styled-table td strong {
    color: var(--primary);
}

/* CECHY KONSTRUKCYJNE (Zamiast Case Study) */
.case-study-container {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.case-study-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.case-card {
    background: var(--bg-light);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

.case-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
}

.case-card.feat-1::before { background: var(--accent); }
.case-card.feat-2::before { background: var(--success); }

.case-card h5 {
    margin: 0 0 15px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.case-card p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.power-result {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.power-result strong {
    font-size: 20px;
    font-weight: 900;
    color: var(--primary);
}

/* RESPONSYWNOŚĆ TABELI (KARTY NA MOBILE) */
@media (max-width: 768px) {
    .compare-header { padding: 30px 20px; }
    .table-container { padding: 10px 20px; }
    .case-study-container { padding: 20px; }
    .case-grid { grid-template-columns: 1fr; }
    
    /* Transformacja tabeli w bloki na małych ekranach */
    .styled-table thead { display: none; }
    .styled-table, .styled-table tbody, .styled-table tr, .styled-table td {
        display: block;
        width: 100%;
    }
    
    .styled-table tr {
        margin-bottom: 20px;
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    }
    
    .styled-table td {
        padding: 12px 15px;
        text-align: right;
        border-bottom: 1px solid #f1f5f9;
        position: relative;
    }
    
    .styled-table td:last-child {
        border-bottom: 0;
    }

    /* Etykiety dla bloków (zastępują nagłówki kolumn) */
    .styled-table td::before {
        content: attr(data-label);
        position: absolute;
        left: 15px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
        text-align: left;
        font-weight: 800;
        font-size: 12px;
        color: #64748b;
        text-transform: uppercase;
    }

    .styled-table td:nth-child(2) {
        text-align: right;
    }
    
    /* Upewnienie się, że tekst się mieści */
    .styled-table td {
        padding-left: 50%; /* Zostawia miejsce na etykietę */
    }
    
    /* Na pierwszym wierszu wyłączamy etykietę żeby służył jako tytuł karty */
    .styled-table td:first-child {
        padding-left: 15px;
        text-align: left;
        background: var(--bg-light);
        font-size: 15px;
        border-bottom: 2px solid var(--accent);
    }
    
    .styled-table td:first-child::before {
        content: none;
    }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Podstawowe parametry techniczne wymiennika płytowego",
  "description": "Zestawienie kluczowych wielkości fizycznych i technicznych definiujących pracę wymiennika płytowego w instalacji ogrzewania podłogowego o mocy 10-30 kW.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Moc nominalna",
      "propertyID": "Q",
      "value": "15–40 kW",
      "description": "Musi odpowiadać zapotrzebowaniu cieplnemu budynku powiększonemu o 15–20% zapasu"
    },
    {
      "@type": "PropertyValue",
      "name": "Współczynnik przenikania ciepła",
      "propertyID": "k",
      "value": "3000–6000 W/(m²·K)",
      "description": "Im wyższy, tym mniejszy wymiennik potrzebny do tej samej mocy"
    },
    {
      "@type": "PropertyValue",
      "name": "Spadek ciśnienia po stronie wtórnej",
      "propertyID": "Δp",
      "value": "5–20 kPa",
      "description": "Krytyczny dla doboru pompy obiegowej podłogówki"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalne ciśnienie pracy",
      "propertyID": "Pmax",
      "value": "10–16 bar",
      "description": "Standard dla instalacji zamkniętych z naczyniem przeponowym"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna temperatura pracy",
      "propertyID": "Tmax",
      "value": "110–180°C",
      "description": "Zabezpieczenie przed przegrzaniem z kotła stałopalnego"
    },
    {
      "@type": "PropertyValue",
      "name": "Liczba płyt",
      "propertyID": "n",
      "value": "20–60",
      "description": "Decyduje o mocy i oporach hydraulicznych"
    },
    {
      "@type": "PropertyValue",
      "name": "Pojemność wodna",
      "propertyID": "V",
      "value": "0,5–2,5 dm³",
      "description": "Mała bezwładność cieplna = szybka reakcja na zmiany zapotrzebowania"
    }
  ],
  "creator": {
    "@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/"
    ]
  }
}
</script>

<div class="premium-compare-module premium-protected" id="exchanger-params-app">
    
    <div class="compare-header">
        <h3>Czym dokładnie jest wymiennik płytowy w instalacji podłogowej?</h3>
        <p>Wymiennik płytowy to urządzenie składające się z pakietu cienkich, profilowanych płyt ze stali nierdzewnej (najczęściej <strong>AISI 316L</strong> lub <strong>AISI 304</strong>), które są ze sobą szczelnie zlutowane lub skręcone.</p>
        
        <p>Pomiędzy płytami powstają naprzemienne kanały przepływowe – jedne dla <strong>medium pierwotnego</strong> (gorąca woda z kotła), drugie dla <strong>medium wtórnego</strong> (woda krążąca w pętlach podłogowych). <strong>Fizyczny kontakt obu cieczy jest niemożliwy</strong>, co stanowi fundament bezpieczeństwa całej instalacji.</p>
    </div>

    <div class="table-container">
        <span class="table-title">Podstawowe parametry techniczne definiujące pracę wymiennika</span>
        <p style="font-size: 14px; color: #475569; margin-top: 0; margin-bottom: 20px;">Każdy wymiennik charakteryzuje się zestawem parametrów, które bezpośrednio determinują jego przydatność. Poniższa tabela przedstawia kluczowe wielkości dla typowych aplikacji mieszkaniowych (10–30 kW).</p>
        
        <table class="styled-table">
            <thead>
                <tr>
                    <th>Parametr techniczny</th>
                    <th>Oznaczenie</th>
                    <th>Typowa wartość</th>
                    <th>Znaczenie praktyczne</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td data-label="Parametr">Moc nominalna</td>
                    <td data-label="Oznaczenie">Q</td>
                    <td data-label="Wartość"><strong>15–40 kW</strong></td>
                    <td data-label="Znaczenie">Musi odpowiadać <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowaniu cieplnemu budynku</a> powiększonemu o 15–20% zapasu.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Współczynnik przenikania</td>
                    <td data-label="Oznaczenie">k</td>
                    <td data-label="Wartość"><strong>3000–6000 W/(m²·K)</strong></td>
                    <td data-label="Znaczenie">Im wyższy, tym mniejszy wymiennik potrzebny do przeniesienia tej samej mocy.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Spadek ciśnienia wtórny</td>
                    <td data-label="Oznaczenie">Δp</td>
                    <td data-label="Wartość"><strong>5–20 kPa</strong></td>
                    <td data-label="Znaczenie">Krytyczny parametr dla prawidłowego doboru <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej podłogówki</a>.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Maksymalne ciśnienie</td>
                    <td data-label="Oznaczenie">Pmax</td>
                    <td data-label="Wartość"><strong>10–16 bar</strong></td>
                    <td data-label="Znaczenie">Standard wytrzymałościowy dla instalacji zamkniętych z <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczyniem wzbiorczym przeponowym</a>.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Maksymalna temp.</td>
                    <td data-label="Oznaczenie">Tmax</td>
                    <td data-label="Wartość"><strong>110–180°C</strong></td>
                    <td data-label="Znaczenie">Zabezpieczenie strukturalne przed skrajnym przegrzaniem z kotła stałopalnego.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Liczba płyt</td>
                    <td data-label="Oznaczenie">n</td>
                    <td data-label="Wartość"><strong>20–60</strong></td>
                    <td data-label="Znaczenie">Decyduje o fizycznej powierzchni wymiany ciepła i oporach hydraulicznych.</td>
                </tr>
                <tr>
                    <td data-label="Parametr">Pojemność wodna</td>
                    <td data-label="Oznaczenie">V</td>
                    <td data-label="Wartość"><strong>0,5–2,5 dm³</strong></td>
                    <td data-label="Znaczenie">Mała bezwładność cieplna = błyskawiczna reakcja układu na zmiany zapotrzebowania.</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="case-study-container">
        <div class="case-study-title">
            <span>🔍</span> Kluczowe Cechy Konstrukcyjne
        </div>
        
        <div class="case-grid">
            
            <div class="case-card feat-1">
                <h5>Rozwinięta powierzchnia wymiany</h5>
                <p>Mimo małych gabarytów, wymiennik oferuje gigantyczną powierzchnię kontaktu między mediami dzięki specjalnemu tłoczeniu w jodełkę (herringbone pattern).</p>
                
                <div class="power-result">
                    <span>Pojedyncza płyta (100 × 300 mm)</span>
                    Rzeczywisty kontakt: <strong>> 0,05 m²</strong>
                </div>
            </div>

            <div class="case-card feat-2">
                <h5>Kompaktowa potęga (Model 30-płytowy)</h5>
                <p>Złożenie kilkudziesięciu takich płyt w jeden zlutowany blok tworzy urządzenie, które bez problemu zasili ogrzewanie w dużym domu jednorodzinnym.</p>
                
                <div class="power-result" style="border-top: 3px solid var(--success);">
                    <span>Wymiennik 30-płytowy</span>
                    Łączna powierzchnia: <strong>1,5 – 2,0 m²</strong>
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    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('exchanger-params-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;">To zestawienie edukacyjne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</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 ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ef4444; /* Czerwony - ostrzegawczy */
    --accent-hover: #dc2626;
    --danger: #dc2626;
    --warning: #f59e0b;
    --success: #16a34a;
    --bg-light: #fef2f2; /* Delikatny czerwony podkład */
    --border-color: #fecaca;
}

.premium-impact-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(220, 38, 38, 0.15);
    border: 1px solid var(--border-color);
    overflow: hidden;
    position: relative;
}

.impact-header {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.impact-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.impact-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

.impact-header a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

.impact-header a:hover {
    color: var(--accent-hover);
    border-bottom-style: solid;
}

.impact-content {
    padding: 45px;
}

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

.consequence-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.consequence-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.1);
    border-color: var(--border-color);
}

.card-icon {
    font-size: 32px;
    margin-bottom: 15px;
    display: block;
}

.consequence-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.consequence-card p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.consequence-card a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.consequence-card a:hover {
    text-decoration: underline;
}

.card-metric {
    background: #f8fafc;
    padding: 10px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--danger);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #f1f5f9;
}

.interactive-widget-container {
    width: 100%;
    margin-top: 30px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
    background: #ffffff;
}

.sim-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.sim-card {
    background: #f8fafc;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    text-align: center;
    transition: 0.3s;
}

input[type=range] {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 15px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--primary); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer; transition: 0.2s;
}

@media (max-width: 900px) {
    .consequences-grid { grid-template-columns: 1fr; }
    .impact-header { padding: 30px 25px; }
    .impact-content { padding: 30px 25px; }
    .sim-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Limity termiczne i konsekwencje przegrzania ogrzewania podłogowego",
    "description": "Zestawienie krytycznych temperatur oraz fizycznych i materiałowych konsekwencji braku podmieszania wody w instalacjach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura pracy ciągłej rur PEX",
        "value": "55–60°C",
        "description": "Przekroczenie powoduje starzenie termiczne. Przy 80°C żywotność spada z 50 do 10-15 lat (PN-EN ISO 15875)."
      },
      {
        "@type": "PropertyValue",
        "name": "Współczynnik rozszerzalności termicznej wylewki",
        "value": "0,012 mm/(m·K)",
        "description": "Ryzyko pęknięć jastrychu przy nagłych skokach temperatury o 40°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura posadzki (Strefa mieszkalna)",
        "value": "29°C",
        "description": "Zgodnie z normą PN-EN 1264-2. Wyższe wartości powodują dyskomfort i problemy zdrowotne."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator degradacji termicznej podłogówki",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające symulować wpływ temperatury zasilania z kotła (35°C - 90°C) na żywotność rur, naprężenia w jastrychu oraz odczuwalną temperaturę posadzki.",
    "featureList": [
      "Symulacja skracania żywotności rur PEX w czasie rzeczywistym",
      "Wizualizacja pęknięć jastrychu cementowego w funkcji ΔT",
      "Wskaźnik dyskomfortu termicznego stóp"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-impact-box" id="impact-app-lock">
    <div class="impact-header">
        <h2><span>🔥</span> Dlaczego nie można pompować wrzątku w podłogę?</h2>
        <p>Odpowiedź jest dwutorowa: <strong>bezpieczeństwo materiałowe</strong> oraz <strong>komfort użytkowania</strong>. Woda z typowego kotła gazowego lub na paliwo stałe osiąga temperaturę 70–80°C, a w przypadku kotłów zgazowujących drewno może to być nawet 85–90°C w szczycie pracy. Wprowadzenie tak gorącego medium bezpośrednio do <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rur PEX lub PERT</a> zatopionych w posadzce prowadzi do natychmiastowych, destrukcyjnych konsekwencji.</p>
    </div>

    <div class="impact-content">
        <div class="consequences-grid">
            
            <div class="consequence-card">
                <span class="card-icon">☠️</span>
                <h4>Degradacja Rur (PN-EN ISO 15875)</h4>
                <p>Maksymalna temperatura ciągłej pracy rur PEX wynosi 55–60°C. Długotrwałe narażenie na 80°C powoduje przyspieszone starzenie termiczne polietylenu, kruchość i utratę elastyczności.</p>
                <div class="card-metric">
                    <span>Żywotność układu:</span>
                    <span>Spadek z 50 do 10 lat</span>
                </div>
            </div>

            <div class="consequence-card">
                <span class="card-icon">⚡</span>
                <h4>Rozrywanie Wylewki</h4>
                <p>Naprężenia termiczne w <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu cementowym</a> (współczynnik 0,012 mm/(m·K)) przy różnicy temperatur rzędu 40°C przekraczają jego wytrzymałość na rozciąganie.</p>
                <div class="card-metric">
                    <span>Skutek wizualny:</span>
                    <span>Pękanie płytek</span>
                </div>
            </div>

            <div class="consequence-card">
                <span class="card-icon">👣</span>
                <h4>Dyskomfort i Oparzenia</h4>
                <p>Norma PN-EN 1264-2 określa maksymalną temperaturę podłogi na 29°C. Przy zasilaniu rzędu 80°C, miejscowa temperatura posadzki osiąga wartości nieakceptowalne dla człowieka.</p>
                <div class="card-metric">
                    <span>Temp. podeszwy:</span>
                    <span>Nawet > 40°C</span>
                </div>
            </div>

        </div>

        <h4 style="margin: 0 0 15px 0; font-size: 16px; color: var(--primary);">Symulator Degradacji Termicznej</h4>
        <p style="font-size: 14px; color: #475569; margin-bottom: 20px;">Sprawdź na własne oczy, co dzieje się z instalacją, gdy temperatura zasilania przekracza bezpieczne normy. Przesuń suwak na temperaturę generowaną np. przez stary kocioł węglowy.</p>

        <div class="interactive-widget-container">
            <div style="padding: 25px;">
                <div style="margin-bottom: 20px;">
                    <label style="font-weight: 800; font-size: 15px; color: var(--primary); display: flex; justify-content: space-between; align-items: center;">
                        Temperatura Zasilania z Kotła
                        <span id="sim-temp-val" style="color: var(--success); font-size: 22px; font-weight: 900;">35°C</span>
                    </label>
                    <input type="range" id="sim-temp-slider" min="35" max="90" step="1" value="35">
                </div>
                
                <div id="sim-alert" style="padding: 12px 15px; border-radius: 8px; background: #f0fdf4; color: #166534; font-weight: 700; font-size: 14px; margin-bottom: 20px; border: 1px solid #bbf7d0; transition: 0.3s;">
                    Optymalne warunki pracy instalacji.
                </div>
                
                <div class="sim-grid">
                    <div class="sim-card" id="card-pex">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Żywotność Rury PEX</span>
                        <strong id="sim-pex" style="font-size: 18px; color: var(--success);">50 lat</strong>
                    </div>
                    <div class="sim-card" id="card-screed">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Stan Jastrychu</span>
                        <strong id="sim-screed" style="font-size: 18px; color: var(--success);">Stabilny</strong>
                    </div>
                    <div class="sim-card" id="card-floor">
                        <span style="display: block; font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Temp. Posadzki</span>
                        <strong id="sim-floor" style="font-size: 18px; color: var(--success);">~24°C</strong>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h2 style="color: #ffffff; margin-top: 0;">Tabela krytycznych parametrów termicznych</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Temperatura Zasilania</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Żywotność Rury PEX</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Stan Jastrychu</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Komfort</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold; color: #10b981;">35°C &#8211; 45°C</td>
                        <td style="padding: 10px 0;">Projektowe 50 lat</td>
                        <td style="padding: 10px 0;">Stabilny, bezpieczny</td>
                        <td style="padding: 10px 0;">Optymalny (ok. 24°C)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold; color: #f59e0b;">55°C &#8211; 60°C</td>
                        <td style="padding: 10px 0;">Przyspieszone starzenie</td>
                        <td style="padding: 10px 0;">Mikropęknięcia</td>
                        <td style="padding: 10px 0;">Dyskomfort (przekroczone 29°C)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold; color: #ef4444;">70°C &#8211; 90°C</td>
                        <td style="padding: 10px 0; color: #ef4444;">Zaledwie 10-15 lat!</td>
                        <td style="padding: 10px 0; color: #ef4444;">Destrukcja / pękanie płytek</td>
                        <td style="padding: 10px 0; color: #ef4444;">Oparzenia, brak możliwości chodzenia</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Aby przetestować interaktywny symulator wpływu temperatury, włącz obsługę skryptów JavaScript.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('impact-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA SYMULATORA
    const slider = document.getElementById('sim-temp-slider');
    const valDisp = document.getElementById('sim-temp-val');
    const alertBox = document.getElementById('sim-alert');
    const outPex = document.getElementById('sim-pex');
    const outScreed = document.getElementById('sim-screed');
    const outFloor = document.getElementById('sim-floor');
    
    const cardPex = document.getElementById('card-pex');
    const cardScreed = document.getElementById('card-screed');
    const cardFloor = document.getElementById('card-floor');

    if(slider) {
        slider.addEventListener('input', function() {
            let temp = parseInt(this.value);
            valDisp.innerText = temp + '°C';

            // Uproszczona kalkulacja temperatury posadzki dla celów demonstracyjnych
            let floorTemp = 24 + ((temp - 35) * 0.4);

            if (temp <= 45) {
                valDisp.style.color = 'var(--success)';
                alertBox.style.background = '#f0fdf4';
                alertBox.style.color = '#166534';
                alertBox.style.borderColor = '#bbf7d0';
                alertBox.innerHTML = '✅ Optymalne warunki pracy instalacji.';

                outPex.innerText = '50 lat (Zgodnie z normą)';
                outPex.style.color = 'var(--success)';
                cardPex.style.borderColor = '#bbf7d0';

                outScreed.innerText = 'Stabilny, bezpieczny';
                outScreed.style.color = 'var(--success)';
                cardScreed.style.borderColor = '#bbf7d0';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Komfort)';
                outFloor.style.color = 'var(--success)';
                cardFloor.style.borderColor = '#bbf7d0';

            } else if (temp <= 60) {
                valDisp.style.color = 'var(--warning)';
                alertBox.style.background = '#fffbeb';
                alertBox.style.color = '#b45309';
                alertBox.style.borderColor = '#fde68a';
                alertBox.innerHTML = '⚠️ Ostrzeżenie: Rozpoczyna się przyspieszone starzenie materiałów.';

                outPex.innerText = '~30 lat (Skrócona)';
                outPex.style.color = 'var(--warning)';
                cardPex.style.borderColor = '#fde68a';

                outScreed.innerText = 'Ryzyko mikropęknięć';
                outScreed.style.color = 'var(--warning)';
                cardScreed.style.borderColor = '#fde68a';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Zbyt ciepło)';
                outFloor.style.color = 'var(--warning)';
                cardFloor.style.borderColor = '#fde68a';

            } else if (temp <= 75) {
                valDisp.style.color = 'var(--danger)';
                alertBox.style.background = '#fef2f2';
                alertBox.style.color = '#b91c1c';
                alertBox.style.borderColor = '#fecaca';
                alertBox.innerHTML = '🚨 Krytycznie: Znaczne przekroczenie norm! Parametry destrukcyjne.';

                outPex.innerText = '~15-20 lat';
                outPex.style.color = 'var(--danger)';
                cardPex.style.borderColor = '#fecaca';

                outScreed.innerText = 'Naprężenia, pękanie';
                outScreed.style.color = 'var(--danger)';
                cardScreed.style.borderColor = '#fecaca';

                outFloor.innerText = '~' + Math.round(floorTemp) + '°C (Ryzyko oparzeń)';
                outFloor.style.color = 'var(--danger)';
                cardFloor.style.borderColor = '#fecaca';

            } else {
                valDisp.style.color = '#7f1d1d';
                slider.style.background = '#fecaca';
                alertBox.style.background = '#7f1d1d';
                alertBox.style.color = '#ffffff';
                alertBox.style.borderColor = '#450a0a';
                alertBox.innerHTML = '☠️ AWARIA: Wrzątek w instalacji! Natychmiastowe zniszczenia.';

                outPex.innerText = '< 10 lat!';
                outPex.style.color = '#7f1d1d';
                cardPex.style.borderColor = '#7f1d1d';

                outScreed.innerText = 'Destrukcja / odspojenia';
                outScreed.style.color = '#7f1d1d';
                cardScreed.style.borderColor = '#7f1d1d';

                outFloor.innerText = '> 40°C!';
                outFloor.style.color = '#7f1d1d';
                cardFloor.style.borderColor = '#7f1d1d';
            }
        });
        
        // Trigger initial state
        slider.dispatchEvent(new Event('input'));
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-formula-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.formula-header {
    padding: 35px 45px;
    text-align: left;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border-bottom: 1px solid var(--border-color);
}

.formula-header h3 {
    margin: 0 0 12px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.formula-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
}

.formula-content {
    padding: 45px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 42px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #f0f7ff;
    padding: 30px 60px;
    border-radius: 20px;
    border: 2px solid #dbeafe;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.math-sub {
    font-size: 20px;
    vertical-align: baseline;
    position: relative;
    top: 6px;
}

.legend-box {
    width: 100%;
    max-width: 650px;
}

.legend-title {
    font-weight: 800;
    margin-bottom: 20px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 10px;
}

.legend-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.legend-item {
    display: flex;
    align-items: flex-start;
    padding: 16px 20px;
    margin-bottom: 10px;
    background: #ffffff;
    border-radius: 14px;
    border: 1px solid #f1f5f9;
    font-size: 15px;
    color: #334155;
    transition: all 0.2s ease;
}

.legend-item:hover {
    background: var(--bg-light);
    border-color: var(--accent);
    transform: translateX(5px);
}

.legend-symbol {
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 22px;
    color: var(--accent);
    width: 60px;
    flex-shrink: 0;
}

.legend-desc strong {
    color: var(--primary);
}

.calculation-example {
    width: 100%;
    background: #f8fafc;
    border-radius: 16px;
    padding: 25px;
    border-left: 4px solid var(--accent);
}

.example-title {
    font-weight: 800;
    font-size: 14px;
    color: var(--primary);
    margin-bottom: 15px;
    text-transform: uppercase;
}

.formula-footer {
    padding: 25px 45px;
    background: #ffffff;
    border-top: 1px solid #f1f5f9;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #64748b;
}

.formula-footer a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

@media (max-width: 600px) {
    .formula-header { padding: 30px 25px; }
    .formula-content { padding: 30px 20px; }
    .math-display { font-size: 28px; padding: 20px; flex-wrap: wrap; }
    .legend-item { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wzór inżynierski na moc cieplną wymiennika płytowego (Równanie Fouriera)",
    "description": "Zestawienie parametrów termodynamicznych wymiennika ciepła, w tym strumień cieplny (Q), współczynnik przenikania (k), powierzchnia wymiany (A) oraz średnia logarytmiczna różnica temperatur (ΔTlm).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Q (Strumień cieplny)",
        "description": "Całkowita moc [W/kW], jaką musi dostarczyć wymiennik, by pokryć straty ciepła budynku."
      },
      {
        "@type": "PropertyValue",
        "name": "k (Współczynnik przenikania)",
        "description": "Zdolność przewodzenia ciepła stali (np. AISI 316L) zależna od profilu płyt [W/(m²·K)]."
      },
      {
        "@type": "PropertyValue",
        "name": "A (Powierzchnia wymiany)",
        "description": "Suma powierzchni kontaktowych płyt [m²]."
      },
      {
        "@type": "PropertyValue",
        "name": "ΔTlm (Średnia logarytmiczna różnica temperatur)",
        "description": "Siła napędowa wymiany ciepła w układzie przeciwprądowym [K]."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Edukacyjny Panel Obliczeniowy: Inżynieria Wymiany Ciepła",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny moduł edukacyjny wyjaśniający proces termodynamiczny w wymienniku płytowym. Prezentuje układ równania Fouriera, analizę parametrów wejściowych oraz Case Study dla doboru urządzenia o mocy 20 kW.",
    "featureList": [
      "Dekonstrukcja równania Fouriera dla wymiany ciepła",
      "Analiza parametrów Q, k, A, ΔTlm",
      "Przykład obliczeniowy dla projektowania układu o mocy 20 kW"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-formula-box" id="formula-thermal-app">
    <div class="formula-header">
        <h3><span>🔬</span> Inżynieria Wymiany Ciepła</h3>
        <p>Proces termodynamiczny w wymienniku płytowym opisuje równanie Fouriera, które definiuje sprawność przekazu energii między obiegiem kotła a <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color: var(--accent); font-weight: 600;">pętlami podłogówki</a>.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>Q</span>
            <span style="color: var(--primary); font-style: normal; margin: 0 10px;">=</span>
            <span>k · A · ΔT<sub class="math-sub">lm</sub></span>
        </div>

        <div class="legend-box">
            <div class="legend-title">Analiza parametrów wejściowych:</div>
            
            <div class="legend-item">
                <div class="legend-symbol">Q</div>
                <div class="legend-desc"><strong>Strumień cieplny</strong> [W/kW] – całkowita moc, jaką musi dostarczyć wymiennik, by pokryć <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty ciepła budynku</a>.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">k</div>
                <div class="legend-desc"><strong>Współczynnik przenikania</strong> [W/(m²·K)] – zdolność stali (AISI 316L) do przewodzenia, zależna od profilu płyt i turbulencji przepływu.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">A</div>
                <div class="legend-desc"><strong>Powierzchnia wymiany</strong> [m²] – suma powierzchni wszystkich płyt kontaktu; klucz do kompaktowości urządzenia.</div>
            </div>

            <div class="legend-item">
                <div class="legend-symbol">ΔT<sub style="font-size: 10px; position: relative; top: 2px;">lm</sub></div>
                <div class="legend-desc"><strong>Średnia logarytmiczna różnica temperatur</strong> – rzeczywista „siła napędowa” wymiany w układzie przeciwprądowym.</div>
            </div>
        </div>

        <div class="calculation-example">
            <div class="example-title">💡 Case Study: Dobór dla 20 kW</div>
            <p style="font-size: 14px; line-height: 1.6; color: #475569; margin: 0;">
                Przy parametrach 75/55°C (kocioł) oraz 40/30°C (podłoga), ΔT<sub>lm</sub> wynosi <strong>29,7 K</strong>. 
                Dla standardowego wymiennika (k=4500), wymagana powierzchnia to zaledwie <strong>0,15 m²</strong>. 
                To pokazuje, dlaczego urządzenia te są tak małe przy tak ogromnych mocach.
            </p>
        </div>
    </div>

    <div class="formula-footer">
        <span>Norma: <strong>PN-EN 1264</strong></span>
        <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const app = document.getElementById('formula-thermal-app');
        if (app) {
            app.innerHTML = '<div style="padding: 50px; text-align: center; color: #dc2626; font-weight: 800;">Zasób chroniony prawem autorskim Projekt-Ogrzewania.pl</div>';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

.premium-download-banner {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    position: relative;
}

/* LEWA STRONA - OBRAZ Z KLIKIEM */
.banner-image-wrapper {
    background: #f1f5f9;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--border-color);
    cursor: pointer;
    transition: background 0.3s ease;
}

.banner-image-wrapper:hover {
    background: #e2e8f0;
}

.img-click-target {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 0.4s ease;
}

.banner-image-wrapper:hover .img-click-target {
    transform: scale(1.03); /* Delikatne powiększenie zachęcające do kliknięcia */
}

.zoom-hint {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 8px;
    backdrop-filter: blur(4px);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.banner-image-wrapper:hover .zoom-hint {
    background: var(--accent);
    transform: translateX(-50%) translateY(-3px);
}

/* PRAWA STRONA - TREŚĆ I CTA */
.banner-content {
    padding: 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.banner-badge {
    display: inline-block;
    align-self: flex-start;
    padding: 6px 12px;
    background: #eff6ff;
    color: var(--accent);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 8px;
    margin-bottom: 20px;
    letter-spacing: 0.5px;
}

.banner-title {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.2;
}

.banner-desc {
    margin: 0 0 25px 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-muted);
}

.banner-features {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.banner-features li {
    font-size: 14px;
    color: var(--primary);
    font-weight: 600;
    margin-bottom: 12px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.banner-features li::before {
    content: '✅';
    font-size: 14px;
    line-height: 1.4;
}

.btn-download-pdf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 30px;
    background: var(--accent);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.4);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-download-pdf:hover {
    background: var(--accent-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

.btn-subtext {
    display: block;
    margin-top: 12px;
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    text-align: center;
}

/* LIGHTBOX MODAL */
.lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    display: none; /* Ukryte domyślnie */
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.lightbox-overlay.active {
    display: flex;
    opacity: 1;
}

.lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
}

.lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    object-fit: contain;
}

.lightbox-close {
    position: absolute;
    top: -40px;
    right: 0;
    color: #ffffff;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s ease;
}

.lightbox-close:hover {
    color: var(--danger);
}

@media (max-width: 768px) {
    .premium-download-banner {
        grid-template-columns: 1fr;
    }
    .banner-image-wrapper {
        height: 250px;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
    }
    .banner-content {
        padding: 35px 25px;
    }
    .banner-title {
        font-size: 22px;
    }
    .lightbox-close {
        top: -35px;
        right: 10px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Infografika: Zasada działania wymiennika płytowego w ogrzewaniu podłogowym",
    "description": "Kompleksowa infografika inżynierska prezentująca zasady separacji hydraulicznej, algorytmy doboru wymiennika płytowego (wzór na moc Q) oraz ryzyka związane z przekraczaniem bezpiecznej temperatury zasilania w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    },
    "distribution": [
      {
        "@type": "DataDownload",
        "encodingFormat": "application/pdf",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.pdf"
      },
      {
        "@type": "DataDownload",
        "encodingFormat": "image/webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Galeria Infografik: Wymiennik Płytowy",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny interfejs wizualny (Lightbox) umożliwiający przeglądanie schematów hydraulicznych ogrzewania podłogowego w pełnym oknie przeglądarki. Narzędzie integruje również punkt pobierania zasobów edukacyjnych PDF w wysokiej rozdzielczości.",
    "featureList": [
      "Przeglądarka pełnoekranowa (Lightbox) dla schematów technicznych",
      "Pobieranie plików inżynierskich w formacie PDF",
      "Prezentacja strukturalna danych technicznych (Tabela krytycznych temperatur, Algorytm doboru)"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-download-banner" id="banner-app-lock">
    
    <div class="banner-image-wrapper" id="open-lightbox-btn">
        <img decoding="async" 
            src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp" 
            alt="Szczegółowy schemat i zasada działania wymiennika płytowego w podłogówce" 
            class="img-click-target"
            loading="lazy"
        >
        <div class="zoom-hint">🔍 Kliknij, aby powiększyć</div>
    </div>

    <div class="banner-content">
        <span class="banner-badge">📚 Darmowe Kompendium Wiedzy</span>
        
        <h3 class="banner-title">Wymiennik płytowy w podłogówce: Separacja, Bezpieczeństwo, Dobór</h3>
        
        <p class="banner-desc">Dlaczego nie można pompować wrzątku w podłogę? Pobierz naszą autorską infografikę w wysokiej rozdzielczości i miej najważniejsze wytyczne projektowe zawsze pod ręką.</p>
        
        <ul class="banner-features">
            <li><strong>Tabela Krytycznych Temperatur:</strong> Skutki wpuszczenia 80°C w wylewkę.</li>
            <li><strong>Algorytm Doboru (Skrót):</strong> Wzór inżynierski i parametry pomp.</li>
            <li><strong>Analiza Układów:</strong> Dlaczego przeciwprąd jest zawsze preferowany.</li>
        </ul>

        <div>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="btn-download-pdf">
                <span>📄 Pobierz Infografikę (PDF)</span>
            </a>
            <span class="btn-subtext">Plik bezpieczny, gotowy do druku A4/A3.</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fffbeb; color: #b45309; text-align: center; font-size: 14px;">
            Plik PDF ze schematami możesz pobrać bezpiecznie klikając w przycisk powyżej.
        </div>
    </noscript>
</div>

<div class="lightbox-overlay" id="lightbox-modal">
    <div class="lightbox-content">
        <span class="lightbox-close" id="close-lightbox-btn">&times;</span>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym.webp" alt="Powiększona Infografika - Zasada Działania Wymiennika">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('banner-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny baner jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return;
    }

    // 2. LOGIKA LIGHTBOXA
    const openBtn = document.getElementById('open-lightbox-btn');
    const closeBtn = document.getElementById('close-lightbox-btn');
    const modal = document.getElementById('lightbox-modal');

    if (openBtn && modal && closeBtn) {
        // Otwieranie
        openBtn.addEventListener('click', function() {
            modal.classList.add('active');
            document.body.style.overflow = 'hidden'; // Blokuje przewijanie strony pod spodem
        });

        // Zamykanie X-em
        closeBtn.addEventListener('click', function() {
            modal.classList.remove('active');
            document.body.style.overflow = '';
        });

        // Zamykanie kliknięciem w tło (poza obrazkiem)
        modal.addEventListener('click', function(e) {
            if (e.target === modal) {
                modal.classList.remove('active');
                document.body.style.overflow = '';
            }
        });

        // Zamykanie klawiszem ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Escape' && modal.classList.contains('active')) {
                modal.classList.remove('active');
                document.body.style.overflow = '';
            }
        });
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Kolory termiczne */
    --temp-75: #ef4444; /* Gorąca */
    --temp-72: #f97316; /* Bardzo ciepła */
    --temp-52: #fcd34d; /* Letnia / Pośrednia */
    --temp-33: #7dd3fc; /* Wychłodzona */
    --temp-30: #3b82f6; /* Zimna */
}

.premium-flow-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    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;
}

.flow-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.flow-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.flow-header p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.flow-content {
    padding: 40px 45px;
}

/* SYMULATOR PRZEPŁYWU */
.sim-container {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 40px;
}

.sim-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.sim-btn {
    padding: 12px 25px;
    border: 2px solid #cbd5e1;
    background: #ffffff;
    border-radius: 12px;
    font-weight: 800;
    font-size: 14px;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
}

.sim-btn.active {
    border-color: var(--accent);
    background: var(--accent);
    color: #ffffff;
    box-shadow: 0 5px 15px rgba(37, 99, 235, 0.3);
}

.pipe-wrapper {
    position: relative;
    margin-bottom: 30px;
}

.pipe-wrapper:last-child {
    margin-bottom: 0;
}

.pipe-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #475569;
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
}

.pipe-track {
    height: 40px;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);
}

/* Warstwy gradientów do płynnego przenikania */
.pipe-gradient {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    transition: opacity 0.5s ease;
}

/* Gradienty Kocioł */
.grad-kociol-przeciw { background: linear-gradient(to right, var(--temp-75), var(--temp-33)); }
.grad-kociol-wspol { background: linear-gradient(to right, var(--temp-75), var(--temp-52)); opacity: 0; }

/* Gradienty Podłoga */
.grad-podloga-przeciw { background: linear-gradient(to left, var(--temp-30), var(--temp-72)); }
.grad-podloga-wspol { background: linear-gradient(to right, var(--temp-30), var(--temp-52)); opacity: 0; }

.flow-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255,255,255,0.8);
    font-size: 20px;
    font-weight: bold;
    pointer-events: none;
    transition: all 0.5s ease;
}

.arrow-left { left: 20px; }
.arrow-right { right: 20px; }
.arrow-center { left: 50%; transform: translate(-50%, -50%); }

.temp-badge {
    position: absolute;
    top: -12px;
    background: #ffffff;
    border: 2px solid var(--primary);
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    color: var(--primary);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.5s ease;
    z-index: 2;
}

.badge-start { left: 0; }
.badge-end { right: 0; }

.result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed #cbd5e1;
}

.metric-box {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.metric-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    display: block;
    margin-bottom: 5px;
}

.metric-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.metric-diff {
    font-size: 12px;
    font-weight: 700;
    color: var(--success);
    margin-top: 5px;
    display: block;
}

/* TEKST ARTYKUŁU */
.text-section {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
}

.text-section h4 {
    font-size: 18px;
    color: var(--primary);
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 800;
}

.text-section p {
    margin-bottom: 15px;
}

.text-section strong {
    color: var(--primary);
    font-weight: 700;
}

.highlight-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

.highlight-box code {
    display: block;
    font-family: monospace;
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 700;
    margin-bottom: 5px;
}

@media (max-width: 768px) {
    .flow-header { padding: 30px 25px; }
    .flow-content { padding: 30px 25px; }
    .sim-controls { flex-direction: column; }
    .result-metrics { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Porównanie parametrów układu przeciwprądowego i współprądowego",
    "description": "Zestawienie efektywności termodynamicznej wymienników ciepła z uwzględnieniem kierunku przepływu mediów.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Układ Współprądowy (T_końcowa)",
        "value": "52,5°C",
        "description": "Osiągana wartość asymptotyczna. Niemożliwe schłodzenie wody kotłowej poniżej tej wartości."
      },
      {
        "@type": "PropertyValue",
        "name": "Układ Przeciwprądowy (T1_wyj kocioł)",
        "value": "33°C",
        "description": "Przy tzw. approach temperature rzędu 3 K."
      },
      {
        "@type": "PropertyValue",
        "name": "Układ Przeciwprądowy (T2_wyj podłogówka)",
        "value": "72°C",
        "description": "Wysoka efektywność odzysku energii ze źródła ciepła."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator przepływów w wymienniku płytowym",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne ilustrujące zjawisko przepływu współprądowego i przeciwprądowego. Pozwala wizualnie zaobserwować proces dążenia do asymptoty (współprąd) w kontraście do efektywnego schłodzenia medium pierwotnego (przeciwprąd).",
    "featureList": [
      "Animacja gradientów termicznych wewnątrz kanałów przepływowych",
      "Dynamiczne przeliczanie parametrów wyjściowych (T1_wyj, T2_wyj)",
      "Graficzna prezentacja odwróconych strumieni przepływu"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-flow-module" id="flow-app-lock">
    <div class="flow-header">
        <h2><span>🔄</span> Jak przepływ przeciwprądowy maksymalizuje efektywność?</h2>
        <p>Przełącz tryb przepływu poniżej, aby fizycznie zobaczyć, dlaczego jeden układ marnuje energię, a drugi wyciska z niej 100%.</p>
    </div>

    <div class="flow-content">
        
        <div class="sim-container">
            <div class="sim-controls">
                <button class="sim-btn active" id="btn-counter">Układ Przeciwprądowy</button>
                <button class="sim-btn" id="btn-co">Układ Współprądowy</button>
            </div>

            <div class="pipe-wrapper">
                <div class="pipe-label">
                    <span>Medium Pierwotne (Kocioł)</span>
                    <span id="p1-direction" style="color:var(--danger)">Przepływ: → Lewo do Prawa</span>
                </div>
                <div class="pipe-track">
                    <div class="pipe-gradient grad-kociol-przeciw" id="p1-grad-counter"></div>
                    <div class="pipe-gradient grad-kociol-wspol" id="p1-grad-co"></div>
                    <span class="flow-arrow arrow-left">»</span>
                    <span class="flow-arrow arrow-center">»</span>
                    <span class="flow-arrow arrow-right">»</span>
                </div>
                <div class="temp-badge badge-start" style="border-color: var(--temp-75)">T1 wej = 75°C</div>
                <div class="temp-badge badge-end" id="p1-out-badge" style="border-color: var(--temp-33)">T1 wyj = 33°C</div>
            </div>

            <div class="pipe-wrapper" style="margin-top: 45px;">
                <div class="pipe-label">
                    <span>Medium Wtórne (Podłogówka)</span>
                    <span id="p2-direction" style="color:var(--success)">Przepływ: ← Prawo do Lewa</span>
                </div>
                <div class="pipe-track">
                    <div class="pipe-gradient grad-podloga-przeciw" id="p2-grad-counter"></div>
                    <div class="pipe-gradient grad-podloga-wspol" id="p2-grad-co"></div>
                    <span class="flow-arrow arrow-left" id="p2-arr-1">«</span>
                    <span class="flow-arrow arrow-center" id="p2-arr-2">«</span>
                    <span class="flow-arrow arrow-right" id="p2-arr-3">«</span>
                </div>
                <div class="temp-badge badge-start" id="p2-badge-left" style="border-color: var(--temp-72)">T2 wyj = 72°C</div>
                <div class="temp-badge badge-end" id="p2-badge-right" style="border-color: var(--temp-30)">T2 wej = 30°C</div>
            </div>

            <div class="result-metrics">
                <div class="metric-box">
                    <span class="metric-title">Sprawność termodynamiczna</span>
                    <span class="metric-val" id="eff-val">Max (Odzysk +50%)</span>
                    <span class="metric-diff" id="eff-desc">Minimalne straty egzergii</span>
                </div>
                <div class="metric-box">
                    <span class="metric-title">Średnia różnica temp. (ΔTlm)</span>
                    <span class="metric-val" id="dt-val">Wysoka i stabilna</span>
                    <span class="metric-diff" id="dt-desc" style="color:var(--accent)">Siła napędowa zachowana</span>
                </div>
            </div>
        </div>

        <div class="text-section">
            <p>Przepływ przeciwprądowy polega na skierowaniu obu mediów w przeciwne strony – gorące wchodzi od dołu, zimne od góry. Taka konfiguracja zapewnia <strong>najwyższą możliwą średnią różnicę temperatur</strong> na całej długości wymiennika, co przekłada się na minimalne straty egzergii i możliwość schłodzenia medium pierwotnego poniżej temperatury wylotowej medium wtórnego.</p>

            <h4>Zalety układu przeciwprądowego w liczbach</h4>
            <p>Porównanie efektywności układu współprądowego i przeciwprądowego dla identycznych parametrów wejściowych (T1_wej = 75°C, T2_wej = 30°C) doskonale obrazuje tę przewagę.</p>

            <p>W <strong>układzie współprądowym</strong> oba media płyną w tym samym kierunku. Temperatury dążą asymptotycznie do wspólnej wartości pośredniej. Przy założeniu nieskończenie dużej powierzchni wymiany, oba strumienie osiągnęłyby tę samą temperaturę końcową <strong>T_końcowa = 52,5°C</strong> (średnia arytmetyczna). Oznacza to, że <strong>niemożliwe jest schłodzenie wody kotłowej poniżej 52,5°C</strong>, a podłogówka nigdy nie osiągnie temperatury wyższej niż 52,5°C.</p>

            <p>W <strong>układzie przeciwprądowym</strong> sytuacja wygląda diametralnie inaczej. Teoretycznie, przy nieskończonej powierzchni wymiany, woda z kotła może zostać schłodzona do temperatury wejściowej podłogówki (30°C), a woda podłogowa podgrzana do temperatury wejściowej kotła (75°C). W praktyce inżynierskiej osiąga się tzw. <em>approach temperature</em> rzędu 2–5 K, co oznacza:</p>

            <div class="highlight-box">
                <code>T1_wyj (kocioł) = 30°C + 3 K = 33°C</code>
                <code>T2_wyj (podłogówka) = 75°C – 3 K = 72°C</code>
            </div>

            <p>Efektywność termodynamiczna układu przeciwprądowego jest zatem o <strong>30–50% wyższa</strong> niż współprądowego przy zachowaniu dokładnie tej samej powierzchni wymiany (wielkości wymiennika).</p>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Podsumowanie wyników: Współprąd vs Przeciwprąd</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Parametr</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Współprądowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Przeciwprądowy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0;">Temperatura Kotła (Wyjście)</td>
                        <td style="padding: 10px 0; color: #f59e0b;">52,5°C (Zbyt wysoka)</td>
                        <td style="padding: 10px 0; font-weight: bold; color: #3b82f6;">33,0°C (Idealna)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Temperatura Podłogi (Wyjście)</td>
                        <td style="padding: 10px 0; color: #f59e0b;">52,5°C (Ograniczona)</td>
                        <td style="padding: 10px 0; font-weight: bold; color: #ef4444;">72,0°C (Maksymalna)</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Aby skorzystać z interaktywnego symulatora przepływów, włącz obsługę JavaScript w swojej przeglądarce.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('flow-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA SYMULATORA PRZEPŁYWU
    const btnCounter = document.getElementById('btn-counter');
    const btnCo = document.getElementById('btn-co');

    // Warstwy gradientów
    const p1GradCo = document.getElementById('p1-grad-co');
    const p2GradCo = document.getElementById('p2-grad-co');
    
    // Etykiety i Badges
    const p1OutBadge = document.getElementById('p1-out-badge');
    const p2BadgeLeft = document.getElementById('p2-badge-left');
    const p2BadgeRight = document.getElementById('p2-badge-right');
    const p2Direction = document.getElementById('p2-direction');
    
    // Strzałki rury 2
    const p2Arr1 = document.getElementById('p2-arr-1');
    const p2Arr2 = document.getElementById('p2-arr-2');
    const p2Arr3 = document.getElementById('p2-arr-3');

    // Wyniki pod spodem
    const effVal = document.getElementById('eff-val');
    const effDesc = document.getElementById('eff-desc');
    const dtVal = document.getElementById('dt-val');
    const dtDesc = document.getElementById('dt-desc');

    function setCounterFlow() {
        btnCounter.classList.add('active');
        btnCo.classList.remove('active');

        // Przejście gradientów
        p1GradCo.style.opacity = '0';
        p2GradCo.style.opacity = '0';

        // Teksty Kocioł
        p1OutBadge.innerText = 'T1 wyj = 33°C';
        p1OutBadge.style.borderColor = 'var(--temp-33)';

        // Teksty Podłogówka (w przeciwprądzie wejście jest z prawej)
        p2Direction.innerText = 'Przepływ: ← Prawo do Lewa';
        p2Direction.style.color = 'var(--success)';
        
        p2BadgeRight.innerText = 'T2 wej = 30°C';
        p2BadgeRight.style.borderColor = 'var(--temp-30)';
        p2BadgeLeft.innerText = 'T2 wyj = 72°C';
        p2BadgeLeft.style.borderColor = 'var(--temp-72)';

        // Strzałki
        p2Arr1.innerText = '«'; p2Arr2.innerText = '«'; p2Arr3.innerText = '«';

        // Wyniki
        effVal.innerText = 'Max (Odzysk +50%)';
        effVal.style.color = 'var(--primary)';
        effDesc.innerText = 'Minimalne straty egzergii';
        effDesc.style.color = 'var(--success)';

        dtVal.innerText = 'Wysoka i stabilna';
        dtVal.style.color = 'var(--primary)';
        dtDesc.innerText = 'Siła napędowa zachowana';
        dtDesc.style.color = 'var(--accent)';
    }

    function setCoFlow() {
        btnCo.classList.add('active');
        btnCounter.classList.remove('active');

        // Przejście gradientów
        p1GradCo.style.opacity = '1';
        p2GradCo.style.opacity = '1';

        // Teksty Kocioł
        p1OutBadge.innerText = 'T1 wyj = 52.5°C';
        p1OutBadge.style.borderColor = 'var(--temp-52)';

        // Teksty Podłogówka (we współprądzie wejście jest z lewej)
        p2Direction.innerText = 'Przepływ: → Lewo do Prawa';
        p2Direction.style.color = 'var(--danger)';
        
        p2BadgeLeft.innerText = 'T2 wej = 30°C';
        p2BadgeLeft.style.borderColor = 'var(--temp-30)';
        p2BadgeRight.innerText = 'T2 wyj = 52.5°C';
        p2BadgeRight.style.borderColor = 'var(--temp-52)';

        // Strzałki
        p2Arr1.innerText = '»'; p2Arr2.innerText = '»'; p2Arr3.innerText = '»';

        // Wyniki
        effVal.innerText = 'Zaniżona / Asymptota';
        effVal.style.color = 'var(--danger)';
        effDesc.innerText = 'Zablokowany transfer energii';
        effDesc.style.color = 'var(--danger)';

        dtVal.innerText = 'Spada do Zera';
        dtVal.style.color = 'var(--danger)';
        dtDesc.innerText = 'Brak siły napędowej na końcu';
        dtDesc.style.color = 'var(--danger)';
    }

    btnCounter.addEventListener('click', setCounterFlow);
    btnCo.addEventListener('click', setCoFlow);
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --chart-hot: #ef4444;
    --chart-cold: #3b82f6;
    --chart-fill: rgba(37, 99, 235, 0.1);
}

.premium-chart-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    position: relative;
}

.chart-header {
    padding: 35px 45px;
    text-align: left;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border-bottom: 1px solid var(--border-color);
}

.chart-header h3 {
    margin: 0 0 12px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.chart-content {
    padding: 45px;
}

.chart-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 30px;
}

/* WIZUALIZACJA WYKRESU */
.interactive-chart-wrapper {
    margin-top: 20px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    padding: 20px;
}

.chart-controls {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 25px;
}

.chart-toggle {
    padding: 10px 20px;
    border: 2px solid #cbd5e1;
    background: #ffffff;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    color: #64748b;
    cursor: pointer;
    transition: 0.2s;
}

.chart-toggle.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
}

.chart-canvas-area {
    position: relative;
    width: 100%;
    height: 350px;
}

.svg-main {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.chart-tooltip {
    position: absolute;
    background: rgba(15, 23, 42, 0.95);
    color: white;
    padding: 12px;
    border-radius: 8px;
    font-size: 12px;
    pointer-events: none;
    opacity: 0;
    z-index: 10;
    min-width: 180px;
    box-shadow: 0 10px 15px rgba(0,0,0,0.2);
}

.chart-legend {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
}

@media (max-width: 600px) {
    .chart-header { padding: 25px; }
    .chart-content { padding: 20px; }
    .chart-controls { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Profil temperaturowy wymiennika płytowego",
    "description": "Zestawienie zmian temperatur dla medium pierwotnego i wtórnego w układzie przeciwprądowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator wymiany ciepła",
    "applicationCategory": "EducationalApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-chart-box" id="chart-app-lock">
    <div class="chart-header">
        <h3><span>📈</span> Dynamika wymiany ciepła na wykresie</h3>
        <p style="margin:0; font-size:15px; color:#64748b;">Przetestuj różnicę między układem optymalnym a błędnym.</p>
    </div>

    <div class="chart-content">
        <div class="chart-text-section">
            <p>Poniższy model pokazuje, jak zmienia się temperatura wody wewnątrz wymiennika. Przełączając tryby, zobaczysz dlaczego <strong>układ przeciwprądowy</strong> jest jedynym słusznym rozwiązaniem w podłogówce.</p>
            <ul>
                <li>🔴 <strong>Kocioł:</strong> Oddaje ciepło (spadek z 75°C).</li>
                <li>🔵 <strong>Podłogówka:</strong> Odbiera ciepło (wzrost do ok. 72°C).</li>
            </ul>
        </div>

        <div class="interactive-chart-wrapper">
            <div class="chart-controls">
                <button class="chart-toggle active" id="btn-przeciw">Układ Przeciwprądowy</button>
                <button class="chart-toggle" id="btn-wspol">Układ Współprądowy</button>
            </div>

            <div class="chart-canvas-area" id="canvas-container">
                <svg class="svg-main" id="chart-svg" viewBox="0 0 800 400" preserveAspectRatio="none"></svg>
                <div id="chart-tt" class="chart-tooltip"></div>
            </div>

            <div class="chart-legend">
                <span><b style="color:var(--chart-hot)">—</b> Kocioł</span>
                <span><b style="color:var(--chart-cold)">—</b> Podłogówka</span>
                <span><span style="background:var(--chart-fill); border:1px solid #ccc; padding:0 5px;">&nbsp;</span> Lokalne ΔT</span>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var container = document.getElementById('chart-app-lock');
        if (container) container.innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold;">Treść chroniona prawem autorskim Projekt-Ogrzewania.pl</div>';
        return;
    }

    const svg = document.getElementById('chart-svg');
    const tt = document.getElementById('chart-tt');
    const btnP = document.getElementById('btn-przeciw');
    const btnW = document.getElementById('btn-wspol');
    
    let mode = 'przeciw';

    function getPoints(currentMode) {
        if(currentMode === 'przeciw') {
            return {
                hot: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((75 - (i * 4.2)) - 20) * 6.6})),
                cold: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((72 - (i * 4.2)) - 20) * 6.6}))
            };
        } else {
            return {
                hot: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((52.5 + 22.5 * Math.exp(-i/2)) - 20) * 6.6})),
                cold: Array.from({length: 11}, (_, i) => ({x: i * 80, y: 400 - ((52.5 - 22.5 * Math.exp(-i/2)) - 20) * 6.6}))
            };
        }
    }

    function draw() {
        const pts = getPoints(mode);
        const pathH = "M" + pts.hot.map(p => `${p.x},${p.y}`).join(" L");
        const pathC = "M" + pts.cold.map(p => `${p.x},${p.y}`).join(" L");
        
        // Cieniowanie obszaru ΔT
        const fillPath = pathH + " L" + pts.cold.slice().reverse().map(p => `${p.x},${p.y}`).join(" L") + " Z";

        svg.innerHTML = `
            <g stroke="#e2e8f0" stroke-width="1">
                ${[0, 100, 200, 300].map(y => `<line x1="0" y1="${y}" x2="800" y2="${y}" />`).join('')}
            </g>
            <path d="${fillPath}" fill="var(--chart-fill)" stroke="none" />
            <path d="${pathH}" fill="none" stroke="var(--chart-hot)" stroke-width="4" stroke-linecap="round" />
            <path d="${pathC}" fill="none" stroke="var(--chart-cold)" stroke-width="4" stroke-linecap="round" />
        `;
    }

    function updateTooltip(e) {
        const rect = svg.getBoundingClientRect();
        const x = (e.clientX || e.touches[0].clientX) - rect.left;
        const pct = Math.max(0, Math.min(100, (x / rect.width) * 100));
        
        // Uproszczone wyliczanie wartości dla tooltipa
        let th, tc;
        if(mode === 'przeciw') {
            th = 75 - (pct * 0.42);
            tc = 72 - (pct * 0.42);
        } else {
            th = 52.5 + 22.5 * Math.exp(-pct/20);
            tc = 52.5 - 22.5 * Math.exp(-pct/20);
        }

        tt.style.opacity = "1";
        tt.style.left = x + "px";
        tt.style.top = "20px";
        tt.innerHTML = `
            <b>Długość: ${Math.round(pct)}%</b><br>
            Kocioł: ${th.toFixed(1)}°C<br>
            Podłogówka: ${tc.toFixed(1)}°C<br>
            <hr style="border:0; border-top:1px solid #444">
            Lokalne ΔT: ${(th-tc).toFixed(1)} K
        `;
    }

    btnP.onclick = () => { mode='przeciw'; btnP.classList.add('active'); btnW.classList.remove('active'); draw(); };
    btnW.onclick = () => { mode='wspol'; btnW.classList.add('active'); btnP.classList.remove('active'); draw(); };
    
    svg.onmousemove = updateTooltip;
    svg.ontouchmove = updateTooltip;
    svg.onmouseleave = () => tt.style.opacity = "0";

    draw();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.calc-intro p {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-selector.two-cols {
    grid-template-columns: repeat(2, 1fr);
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--accent); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--primary); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right; color: #f8fafc;}
.tech-item strong.highlight { color: #38bdf8; }

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator doboru wymiennika płytowego",
    "description": "Narzędzie inżynierskie pozwalające oszacować parametry wymiennika ciepła na podstawie zapotrzebowania cieplnego budynku, rodzaju źródła ciepła oraz reżimu pracy ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Q_obl",
        "description": "Moc obliczeniowa powiększona o 15% współczynnik zapasu."
      },
      {
        "@type": "PropertyValue",
        "name": "m1 (Przepływ pierwotny)",
        "value": "Q / (1.16 * ΔT1)",
        "unitText": "m³/h"
      },
      {
        "@type": "PropertyValue",
        "name": "m2 (Przepływ wtórny podłogówki)",
        "value": "Q / (1.16 * ΔT2)",
        "unitText": "m³/h"
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator inżynierski: Dobór wymiennika płytowego",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Algorytm krok po kroku służący do oszacowania wielkości wymiennika płytowego oraz wymaganych przepływów masowych (m1, m2) przy współpracy z różnymi źródłami ciepła.",
    "featureList": [
      "Obliczanie przepływu dla podłogówki (m2)",
      "Obliczanie przepływu dla kotła/pompy (m1)",
      "Szacowanie liczby płyt i oporów hydraulicznych"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="calc-intro">
    <h2>Algorytm doboru wymiennika ciepła</h2>
    <p>Poniższy schemat logiczny pozwala na samodzielne oszacowanie wymaganego rozmiaru wymiennika płytowego do instalacji podłogowej. Jest to uproszczony algorytm inżynierski, który daje silną podstawę do rozmowy z instalatorem i zapobiega błędom w <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color: #2563eb; font-weight: 700; text-decoration: none;">doborze pompy obiegowej</a>.</p>
</div>

<div class="screed-calc" id="heat-exchanger-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">Krok 1: Zapotrzebowanie na ciepło (Q)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Projektowe obciążenie cieplne</label><span class="val-badge"><span id="v-heat">10</span> kW</span></div>
                <input type="range" id="heat-load" min="5" max="30" step="1" value="10">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Dla nowych domów ok. 150m² w standardzie WT 2021 to zazwyczaj 6-9 kW. Kalkulator automatycznie doliczy 15% zapasu inżynierskiego.</div>
            </div>

            <span class="section-title">Krok 2 &#038; 3: Parametry układu (Temperatury)</span>
            
            <label style="font-size: 12px; font-weight: 700; color: #475569; margin-bottom: 8px; display: block;">Źródło ciepła (Strona pierwotna)</label>
            <div class="type-selector" id="src-group">
                <div class="type-btn active" id="btn-src-stal" data-dt="20">Kocioł Stałopalny<span style="font-size:10px; font-weight:400">75/55°C</span></div>
                <div class="type-btn" id="btn-src-gaz" data-dt="10">Kocioł Gazowy<span style="font-size:10px; font-weight:400">55/45°C</span></div>
                <div class="type-btn" id="btn-src-pc" data-dt="15">Pompa Ciepła<span style="font-size:10px; font-weight:400">50/35°C</span></div>
            </div>

            <label style="font-size: 12px; font-weight: 700; color: #475569; margin-bottom: 8px; display: block;">Obieg odbiorczy (Strona wtórna &#8211; podłogówka)</label>
            <div class="type-selector two-cols" id="flr-group">
                <div class="type-btn active" id="btn-flr-std" data-dt="5">Standard Podłogowy<span style="font-size:10px; font-weight:400">35/30°C (Zalecane)</span></div>
                <div class="type-btn" id="btn-flr-mix" data-dt="10">Układ Mieszany<span style="font-size:10px; font-weight:400">40/30°C (np. z drabinką)</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana wielkość urządzenia</span>
                <span class="score-num" id="resPlates">20-30</span>
                <span class="score-label">Płyt wymiany ciepła</span>
                <div id="risk-msg">⚠️ Opory po stronie podłogówki mogą być wysokie!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Obliczeniowa moc wymiennika:</span><strong id="resPower">&#8212; kW</strong></div>
                <div class="tech-item"><span>Przepływ &#8211; Kocioł (m1):</span><strong id="resFlow1">&#8212; m³/h</strong></div>
                <div class="tech-item"><span>Przepływ &#8211; Podłogówka (m2):</span><strong class="highlight" id="resFlow2">&#8212; m³/h</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Sugerowane przyłącza:</span><strong id="resConn">1&#8243; (Cal)</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Krok 4-7:</strong> Algorytm przelicza przepływy masowe przy użyciu ciepła właściwego wody (cp ≈ 1,16 Wh/kg·K). Parametr <strong style="color: #38bdf8;">m2</strong> jest kluczowy do określenia spadków ciśnienia (Δp) i doboru wydajnej pompy.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Potrzebujesz pełnej analizy instalacji?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator służy do wstępnego szacowania parametrów. Profesjonalny dobór wymaga uwzględnienia dokładnej straty ciśnienia oraz krzywej roboczej pompy obiegowej.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                📐 ZAMÓW PROJEKT INSTALACJI
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Metodyka obliczeń (Wzory Inżynierskie)</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Krok Algorytmu</th>
                        <th style="padding: 10px 0; color: #475569;">Wzór / Działanie</th>
                        <th style="padding: 10px 0; color: #475569;">Wynik dla przykładowych 10 kW</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Moc z zapasem</strong></td>
                        <td style="padding: 10px 0;">Q_obl = Q_budynek × 1.15</td>
                        <td style="padding: 10px 0;">10 * 1.15 = 11.5 kW</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Przepływ wtórny (m2)</strong></td>
                        <td style="padding: 10px 0;">m2 = Q_obl / (1.16 * ΔT2)</td>
                        <td style="padding: 10px 0;">11.5 / (1.16 * 5) ≈ 1.98 m³/h</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;"><strong>Przepływ pierwotny (m1)</strong></td>
                        <td style="padding: 10px 0;">m1 = Q_obl / (1.16 * ΔT1)</td>
                        <td style="padding: 10px 0;">11.5 / (1.16 * 20) ≈ 0.50 m³/h</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;"><strong>Szacunek Płyt</strong></td>
                        <td style="padding: 10px 0;">Na podst. m2 i Q_obl</td>
                        <td style="padding: 10px 0;">20-30 płyt, przyłącza 1&#8243;</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                Spadek ciśnienia po stronie wtórnej Δp2 nie powinien przekraczać 20 kPa, aby zapobiec przewymiarowaniu pompy obiegowej podłogówki.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('heat-exchanger-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    // Stan aplikacji
    var q_nominal = 10;
    var dt_src = 20; // Domyślnie Kocioł Stałopalny
    var dt_flr = 5;  // Domyślnie Standard Podłogowy

    var heatInput = document.getElementById('heat-load');
    var vHeat = document.getElementById('v-heat');

    // Elementy wynikowe
    var resPower = document.getElementById('resPower');
    var resFlow1 = document.getElementById('resFlow1');
    var resFlow2 = document.getElementById('resFlow2');
    var resPlates = document.getElementById('resPlates');
    var resConn = document.getElementById('resConn');
    var mainBox = document.getElementById('mainBox');
    var riskMsg = document.getElementById('risk-msg');

    function calculate() {
        if(!heatInput) return;
        q_nominal = parseFloat(heatInput.value);
        vHeat.innerText = q_nominal;

        // Krok 1: Moc z zapasem
        var q_calc = q_nominal * 1.15;
        
        // Krok 4 & 5: Przepływy masowe m = Q / (cp * dT)
        // cp wody w przybliżeniu = 1.16 kWh/(t*K) -> wynik w m3/h
        var m1 = q_calc / (1.16 * dt_src);
        var m2 = q_calc / (1.16 * dt_flr);

        // Krok 6: Wstępny dobór płyt na podstawie przepływu strony wtórnej (m2 generuje największe opory)
        var platesText = "20-30";
        var connText = '1" (Cal)';
        var warningText = "";
        var boxColor = 'var(--accent)';

        if (m2 <= 1.2) {
            platesText = "20";
        } else if (m2 > 1.2 && m2 <= 2.2) {
            platesText = "30-40";
        } else if (m2 > 2.2 && m2 <= 3.2) {
            platesText = "40-50";
        } else if (m2 > 3.2 && m2 <= 4.5) {
            platesText = "60+";
            connText = '5/4" (Cale)';
            warningText = "⚠️ <strong>Wysoki przepływ!</strong> Skonsultuj dobór pompy. Przyłącza 1\" mogą stawiać zbyt duży opór (>20 kPa). Konieczny większy wymiennik z przyłączami 5/4\".";
            boxColor = 'var(--warning)';
        } else {
            platesText = "Duży dobór";
            connText = 'Min. 5/4" lub więcej';
            warningText = "❌ <strong>Przekroczone standardy domowe!</strong> Wymagany indywidualny dobór wymiennika przez biuro projektowe.";
            boxColor = 'var(--danger)';
        }

        // Aktualizacja UI
        resPower.innerText = q_calc.toFixed(1) + " kW";
        resFlow1.innerText = m1.toFixed(2) + " m³/h";
        resFlow2.innerText = m2.toFixed(2) + " m³/h";
        resPlates.innerText = platesText;
        resConn.innerText = connText;

        if (warningText !== "") {
            riskMsg.innerHTML = warningText;
            riskMsg.style.display = 'block';
        } else {
            riskMsg.style.display = 'none';
        }
        mainBox.style.borderBottomColor = boxColor;
    }

    // Event Listenery dla źródła ciepła
    var srcButtons = document.querySelectorAll('#src-group .type-btn');
    srcButtons.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            srcButtons.forEach(function(b){ b.classList.remove('active'); });
            var target = e.currentTarget;
            target.classList.add('active');
            dt_src = parseFloat(target.getAttribute('data-dt'));
            calculate();
        });
    });

    // Event Listenery dla podłogówki
    var flrButtons = document.querySelectorAll('#flr-group .type-btn');
    flrButtons.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            flrButtons.forEach(function(b){ b.classList.remove('active'); });
            var target = e.currentTarget;
            target.classList.add('active');
            dt_flr = parseFloat(target.getAttribute('data-dt'));
            calculate();
        });
    });

    // Event Listener dla suwaka
    if(heatInput) {
        heatInput.addEventListener('input', calculate);
    }

    // Inicjalizacja
    calculate();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --cta-grad: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
    --btn-bg: #ffffff;
    --btn-text: #1e3a8a;
}

.premium-system-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    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;
}

.system-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.system-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.system-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

.system-content {
    padding: 40px 45px;
}

/* KARTY PORÓWNAWCZE */
.split-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 40px;
}

.info-card {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--border-color);
    background: #ffffff;
    transition: transform 0.3s ease;
}

.info-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.05);
}

.info-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.info-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

/* INTERAKTYWNY PULPIT */
.dashboard-container {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 40px;
}

.dashboard-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
}

.calc-inputs label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #475569;
    margin-bottom: 8px;
}

.calc-inputs .val-badge {
    color: var(--accent);
    font-weight: 900;
    background: #eff6ff;
    padding: 2px 8px;
    border-radius: 6px;
}

.calc-inputs input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}

.calc-inputs input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 20px; height: 20px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer;
}

.calc-outputs {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.calc-outputs span {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    letter-spacing: 0.5px;
}

.calc-outputs strong {
    font-size: 42px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.1;
    margin: 10px 0;
}

.pump-recommendation {
    display: inline-block;
    padding: 8px 15px;
    background: #f0fdf4;
    color: #166534;
    font-weight: 700;
    font-size: 14px;
    border-radius: 8px;
    border: 1px solid #bbf7d0;
    margin-top: 10px;
}

/* AUTOMATYKA */
.automation-box {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed #cbd5e1;
}

.valve-status {
    padding: 15px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    text-align: center;
    transition: 0.3s;
    border: 1px solid transparent;
}

/* PREMIUM CTA */
.premium-cta-box {
    background: var(--cta-grad);
    padding: 50px 45px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.premium-cta-box::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%);
    pointer-events: none;
}

.premium-cta-box h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.premium-cta-box p {
    margin: 0 0 30px 0;
    font-size: 16px;
    color: #bfdbfe;
    line-height: 1.6;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.cta-btn-premium {
    display: inline-block;
    padding: 18px 40px;
    background: var(--btn-bg);
    color: var(--btn-text);
    font-size: 16px;
    font-weight: 900;
    text-decoration: none;
    border-radius: 14px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    position: relative;
    z-index: 2;
}

.cta-btn-premium:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25);
    background: #f8fafc;
}

@media (max-width: 768px) {
    .system-header { padding: 30px 25px; }
    .system-content { padding: 30px 25px; }
    .split-cards { grid-template-columns: 1fr; }
    .calc-grid { grid-template-columns: 1fr; }
    .premium-cta-box { padding: 40px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ wymiennika płytowego na parametry układu",
    "description": "Obliczenia hydrauliczne spadku ciśnienia i logiki automatyki zaworu mieszającego w instalacji ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Sprzęgło hydrauliczne",
        "description": "Zapewnia separację hydrauliczną bez zmiany parametrów fizycznych wody. Nie chroni przed przegrzaniem."
      },
      {
        "@type": "PropertyValue",
        "name": "Wymiennik płytowy",
        "description": "Pełna separacja fizyczna. Pozwala zasilać podłogówkę wodą 35°C z kotła pracującego na 80°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór wymiennika (Δp_wym)",
        "value": "12 kPa",
        "description": "Zjawisko wymagające doliczenia do całkowitego sprężu pompy obiegowej."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Sprężu Pompy i Symulator Automatyki",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny panel inżynierski pozwalający na obliczenie wymaganej wysokości podnoszenia pompy obiegowej z uwzględnieniem oporów wymiennika oraz symulację logiki pracy zaworu trójdrogowego.",
    "featureList": [
      "Dynamiczne sumowanie oporów hydraulicznych (pętle + wymiennik + armatura)",
      "Przeliczanie oporów z kPa na wysokość podnoszenia (m H2O)",
      "Symulacja reakcji siłownika zaworu na zmiany temperatury zasilania"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-system-module" id="system-app-lock">
    
    <div class="system-header">
        <h2>Rola wymiennika płytowego w projekcie ogrzewania podłogowego – aspekty systemowe.</h2>
        <p>Wymiennika płytowego nie można rozpatrywać jako izolowanego komponentu. Jego obecność wymusza szereg inżynierskich decyzji dotyczących hydrauliki, automatyki i zabezpieczeń całej instalacji.</p>
    </div>

    <div class="system-content">
        
        <div class="split-cards">
            <div class="info-card">
                <h4>🔀 Sprzęgło Hydrauliczne</h4>
                <p>Oddziela obieg kotła od obiegów grzewczych przy zachowaniu <strong>wspólnego medium</strong>. Problem pojawia się, gdy kocioł wymaga wysokiej temperatury powrotu (np. 60°C dla stałopalnego), a podłogówka pracuje na niskich parametrach. Sprzęgło nie zapobiega mieszaniu, a jedynie stabilizuje przepływy.</p>
            </div>
            <div class="info-card" style="border-top: 4px solid var(--accent);">
                <h4>🧱 Wymiennik Płytowy</h4>
                <p>Zapewnia <strong>pełną separację fizyczną</strong> mediów. Umożliwia stabilną pracę kotła na parametrach rzędu 80/60°C, jednocześnie oddając do podłogówki wodę o bezpiecznej temperaturze 35/30°C. To rozwiązanie bezwzględnie niezbędne przy modernizacji starszych instalacji.</p>
            </div>
        </div>

        <div class="dashboard-container">
            <div class="dashboard-title">🧮 Wpływ na dobór pompy obiegowej (Kalkulator)</div>
            <p style="font-size: 14px; color: #475569; margin-bottom: 25px;">Opór hydrauliczny wymiennika musi zostać uwzględniony w obliczeniach wysokości podnoszenia pompy podłogowej. Pominięcie tego elementu skutkuje niedogrzaniem najdalszych pętli.</p>

            <div class="calc-grid">
                <div class="calc-inputs">
                    <label>Opór pętli grzewczych (Δp pętle) <span class="val-badge" id="v-loops">25 kPa</span></label>
                    <input type="range" id="sl-loops" min="10" max="40" step="1" value="25">

                    <label>Opór wymiennika (Δp wym) <span class="val-badge" id="v-exch">12 kPa</span></label>
                    <input type="range" id="sl-exch" min="5" max="25" step="1" value="12">

                    <label>Opór armatury i rur (Δp armatura) <span class="val-badge" id="v-arm">8 kPa</span></label>
                    <input type="range" id="sl-arm" min="2" max="15" step="1" value="8">
                </div>

                <div class="calc-outputs">
                    <span>Całkowity Wymagany Spręż</span>
                    <strong id="v-total">45 kPa</strong>
                    <span style="color: var(--accent); font-weight: 900; font-size: 18px;" id="v-meter">~4.5 m H₂O</span>
                    <div class="pump-recommendation" id="v-pump">Sugerowana pompa: 25-60</div>
                </div>
            </div>

            <div class="automation-box">
                <div class="dashboard-title">⚙️ Automatyka (Logika Zaworu Trójdrogowego)</div>
                <p style="font-size: 14px; color: #475569; margin-bottom: 15px;">Układ chroni podłogówkę przed przegrzaniem. Zmiana temperatury za wymiennikiem wymusza natychmiastową reakcję siłownika zaworu. (Temperatura zadana: 35°C).</p>
                
                <div style="margin-bottom: 15px;">
                    <label style="display:flex; justify-content:space-between; font-size: 13px; font-weight: 700; color: #475569; margin-bottom: 8px;">
                        Bieżąca temp. zasilania (T2_zas) <span class="val-badge" id="v-temp" style="background:#fef2f2; color:var(--danger)">25°C</span>
                    </label>
                    <input type="range" id="sl-temp" min="20" max="50" step="1" value="25">
                </div>

                <div class="valve-status" id="v-status">
                    Oczekiwanie na dane&#8230;
                </div>
            </div>
        </div>
    </div>

    <div class="premium-cta-box">
        <h3>Zbyt wiele zmiennych do opanowania?</h3>
        <p>Błędy hydrauliczne (zły dobór pompy, brak uwzględnienia oporów wymiennika) mszczą się latami zimnymi podłogami. Zabezpiecz swoją inwestycję profesjonalnym projektem, zanim wylejesz beton.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn-premium">
            📐 Zamów Indywidualny Projekt Instalacji
        </a>
    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Obliczenia inżynierskie w pigułce</h3>
            <p><strong>Wzór na całkowity spręż:</strong> Δp_całk = Δp_pętle + Δp_wym + Δp_armatura</p>
            <p>Przykład: 25 kPa + 12 kPa + 8 kPa = 45 kPa (odpowiada wysokości podnoszenia ok. 4,5 metra słupa wody).</p>
            <p><strong>Logika sterowania:</strong> Jeśli T2_zas < 35°C (Zawór otwiera się). Jeśli T2_zas > 35°C (Zawór przymyka się odcinając gorące źródło).</p>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Włącz JavaScript, aby uzyskać dostęp do interaktywnego kalkulatora i symulacji automatyki w czasie rzeczywistym.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('system-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA KALKULATORA POMPY
    const slLoops = document.getElementById('sl-loops');
    const slExch = document.getElementById('sl-exch');
    const slArm = document.getElementById('sl-arm');
    
    const vLoops = document.getElementById('v-loops');
    const vExch = document.getElementById('v-exch');
    const vArm = document.getElementById('v-arm');
    
    const vTotal = document.getElementById('v-total');
    const vMeter = document.getElementById('v-meter');
    const vPump = document.getElementById('v-pump');

    function updatePump() {
        let loops = parseInt(slLoops.value);
        let exch = parseInt(slExch.value);
        let arm = parseInt(slArm.value);
        
        let total = loops + exch + arm;
        let meters = (total / 9.81).toFixed(1);

        vLoops.innerText = loops + ' kPa';
        vExch.innerText = exch + ' kPa';
        vArm.innerText = arm + ' kPa';
        
        vTotal.innerText = total + ' kPa';
        vMeter.innerText = '~' + meters + ' m H₂O';

        if(total <= 35) {
            vPump.innerText = 'Wystarczy standardowa pompa (np. 25-40)';
            vPump.style.color = '#166534';
            vPump.style.background = '#f0fdf4';
            vPump.style.borderColor = '#bbf7d0';
        } else if(total <= 55) {
            vPump.innerText = 'Sugerowana mocniejsza pompa (np. 25-60)';
            vPump.style.color = '#b45309';
            vPump.style.background = '#fffbeb';
            vPump.style.borderColor = '#fde68a';
        } else {
            vPump.innerText = 'Wymagana pompa wysokiego podnoszenia (np. 25-80)';
            vPump.style.color = '#b91c1c';
            vPump.style.background = '#fef2f2';
            vPump.style.borderColor = '#fecaca';
        }
    }

    if(slLoops) slLoops.addEventListener('input', updatePump);
    if(slExch) slExch.addEventListener('input', updatePump);
    if(slArm) slArm.addEventListener('input', updatePump);

    // LOGIKA ZAWORU
    const slTemp = document.getElementById('sl-temp');
    const vTemp = document.getElementById('v-temp');
    const vStatus = document.getElementById('v-status');
    const targetTemp = 35;

    function updateValve() {
        let t = parseInt(slTemp.value);
        vTemp.innerText = t + '°C';

        if(t < targetTemp) {
            vStatus.innerHTML = '🔄 Siłownik: <strong>OTWIERA ZAWÓR</strong> (Zwiększenie dopływu ciepła z kotła)';
            vStatus.style.background = '#eff6ff';
            vStatus.style.color = '#1e3a8a';
            vStatus.style.borderColor = '#bfdbfe';
        } else if (t > targetTemp) {
            vStatus.innerHTML = '🛑 Siłownik: <strong>PRZYMYKA ZAWÓR</strong> (Ograniczenie ciepła - ochrona posadzki)';
            vStatus.style.background = '#fef2f2';
            vStatus.style.color = '#b91c1c';
            vStatus.style.borderColor = '#fecaca';
        } else {
            vStatus.innerHTML = '✅ Siłownik: <strong>STABILNY</strong> (Parametry idealne)';
            vStatus.style.background = '#f0fdf4';
            vStatus.style.color = '#166534';
            vStatus.style.borderColor = '#bbf7d0';
        }
    }

    if(slTemp) slTemp.addEventListener('input', updateValve);

    // Init
    updatePump();
    updateValve();
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --danger: #ef4444;
    --warning: #f59e0b;
    --success: #10b981;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --risk-bg: #fef2f2;
}

.premium-decision-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    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;
}

.decision-header {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
}

.decision-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.decision-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

.decision-header a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

.decision-header a:hover {
    color: var(--accent-hover);
    border-bottom-style: solid;
}

.decision-content {
    padding: 0;
}

/* SEKACJA TEKSTOWA */
.text-arguments {
    padding: 40px 45px;
}

.arg-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.arg-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 25px;
    border-radius: 16px;
    transition: 0.3s;
}

.arg-card:hover {
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
    transform: translateY(-3px);
}

.arg-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 8px;
}

.arg-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.arg-card a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.arg-card a:hover { text-decoration: underline; }

/* WIDŻET INTERAKTYWNY */
.interactive-decision-tool {
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    padding: 40px 45px;
}

.tool-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    text-align: center;
}

.source-selectors {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
    flex-wrap: wrap;
}

.source-btn {
    padding: 14px 24px;
    background: #ffffff;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 180px;
}

.source-btn span { font-size: 11px; font-weight: 600; text-transform: uppercase; color: #94a3b8; }

.source-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.15);
}
.source-btn.active span { color: var(--accent); }

.decision-result {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--border-color);
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.verdict-box {
    text-align: center;
    padding-right: 30px;
    border-right: 1px dashed #cbd5e1;
}

.verdict-box span {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    display: block;
    margin-bottom: 10px;
}

.verdict-status {
    font-size: 28px;
    font-weight: 900;
    display: block;
    margin-bottom: 10px;
    line-height: 1.1;
}

.risk-analysis {
    padding-left: 10px;
}

.risk-bar-group {
    margin-bottom: 15px;
}

.risk-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
    color: #475569;
}

.risk-track {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
}

.risk-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 0.5s ease-out, background 0.5s ease;
}

@media (max-width: 768px) {
    .decision-header { padding: 30px 25px; }
    .text-arguments { padding: 30px 25px; }
    .interactive-decision-tool { padding: 30px 25px; }
    .arg-grid { grid-template-columns: 1fr; }
    .source-selectors { flex-direction: column; }
    .decision-result { grid-template-columns: 1fr; gap: 20px; }
    .verdict-box { padding-right: 0; border-right: none; border-bottom: 1px dashed #cbd5e1; padding-bottom: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza opłacalności i ryzyka instalacji wymiennika płytowego",
    "description": "Zestawienie kosztów prewencyjnych (wymiennik) z potencjalnymi stratami (wymiana posadzki) w zależności od źródła ciepła pracującego z ogrzewaniem podłogowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Koszt ubezpieczenia (Wymiennik płytowy)",
        "value": "300 - 800 PLN",
        "description": "Stanowi mniej niż 1% wartości całej instalacji grzewczej."
      },
      {
        "@type": "PropertyValue",
        "name": "Potencjalne straty (Brak zabezpieczenia)",
        "value": "15 000 - 30 000 PLN",
        "description": "Koszty generalnego remontu w przypadku wpuszczenia wody >55°C z kotła stałopalnego wprost w posadzkę."
      },
      {
        "@type": "PropertyValue",
        "name": "Zysk energetyczny",
        "value": "5 - 10%",
        "description": "Redukcja strat energii dzięki eliminacji przegrzewania pomieszczeń przez zastosowanie układu mieszającego z wymiennikiem."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Decyzjomat Wymiennika Płytowego",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające użytkownikowi określić konieczność zastosowania wymiennika płytowego na podstawie wybranego źródła ciepła (kocioł węglowy, stary gazowy, pompa ciepła) oraz wizualizujące stosunek kosztów ubezpieczenia do ryzyka zniszczenia posadzki.",
    "featureList": [
      "Wybór źródła ciepła i weryfikacja wymogów technicznych",
      "Dynamiczna weryfikacja konieczności instalacji wymiennika (TAK/NIE)",
      "Wizualny wykres porównujący koszt prewencji z kosztem generalnego remontu"
    ],
    "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/"
      ]
    }
  }
]
</script>

<div class="premium-decision-module" id="decision-app-lock">
    
    <div class="decision-header">
        <h2>Dlaczego wymiennik płytowy jest rozwiązaniem optymalnym?</h2>
        <p>Główne pytanie inwestorów brzmi: <em>&#8222;Czy do ogrzewania podłogowego faktycznie potrzebuję wymiennika?&#8221;</em></p>
        <p style="margin-top: 10px;">Krótka odpowiedź: <strong>TAK</strong>, jest on niezbędny, jeśli Twoje źródło ciepła (np. kocioł stałopalny, stary kocioł gazowy) pracuje na temperaturze zasilania przekraczającej 55°C. Wymiennik obniża temperaturę wody do bezpiecznego poziomu 35–45°C, chroniąc system przed zniszczeniem. Sytuacja wygląda inaczej tylko przy <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">nowoczesnych pompach ciepła</a> pracujących na bardzo niskich parametrach.</p>
    </div>

    <div class="decision-content">
        
        <div class="interactive-decision-tool">
            <div class="tool-title">🎯 Interaktywny Doradca: Czy potrzebujesz wymiennika?</div>
            
            <div class="source-selectors">
                <button class="source-btn active" data-source="stalopalny">
                    <span>Temp. > 70°C</span>
                    Kocioł Węglowy / Drewno
                </button>
                <button class="source-btn" data-source="gaz">
                    <span>Temp. 55-65°C</span>
                    Stary Kocioł Gazowy
                </button>
                <button class="source-btn" data-source="pompa">
                    <span>Temp. < 45°C</span>
                    Pompa Ciepła / Kondensat
                </button>
            </div>

            <div class="decision-result">
                <div class="verdict-box">
                    <span>Status Wymiennika Płytowego</span>
                    <strong class="verdict-status" id="res-status" style="color: var(--danger);">NIEZBĘDNY</strong>
                    <div id="res-desc" style="font-size: 13px; color: #475569; line-height: 1.5;">Kocioł może zagotować wodę. Bez separacji hydraulicznej i temperaturowej zniszczysz posadzkę.</div>
                </div>
                
                <div class="risk-analysis">
                    <div style="font-size: 14px; font-weight: 800; margin-bottom: 15px; color: var(--primary);">Bilans Finansowy (ROI)</div>
                    
                    <div class="risk-bar-group">
                        <div class="risk-label">
                            Koszt Wymiennika (Ochrona) <span style="color: var(--success);">~ 500 zł</span>
                        </div>
                        <div class="risk-track">
                            <div class="risk-fill" id="bar-protect" style="width: 5%; background: var(--success);"></div>
                        </div>
                    </div>

                    <div class="risk-bar-group">
                        <div class="risk-label">
                            Ryzyko uszkodzenia (Wylewka) <span id="risk-val" style="color: var(--danger);">~ 25 000 zł</span>
                        </div>
                        <div class="risk-track">
                            <div class="risk-fill" id="bar-risk" style="width: 100%; background: var(--danger);"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="text-arguments">
            <h3 style="margin: 0 0 20px 0; font-size: 20px; font-weight: 800; color: var(--primary);">Naukowe i finansowe argumenty za instalacją</h3>
            
            <div class="arg-grid">
                <div class="arg-card">
                    <h4>📐 Zgodność z PN-EN 1264-3</h4>
                    <p>Norma bezwzględnie wymaga, aby temperatura zasilania nie przekraczała odporności materiałowej jastrychu. Wymiennik sprzęgnięty z 
                    <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">profesjonalnym rozdzielaczem</a> to inżynierska gwarancja tej zgodności.</p>
                </div>

                <div class="arg-card">
                    <h4>🛡️ Ochrona Inwestycji</h4>
                    <p>Instalacja jest praktycznie niewymienialna. Koszt wymiennika (300-800 zł) to <strong>mniej niż 1%</strong> wartości systemu, a zabezpiecza przed remontem wartym nawet 30 000 zł.</p>
                </div>

                <div class="arg-card">
                    <h4>⚡ Efektywność (Oszczędności)</h4>
                    <p>Kocioł pracuje stabilnie z wysoką sprawnością, a podłogówka otrzymuje idealnie dawkowe ciepło. Dodając <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">nowoczesne sterowanie</a>, eliminujesz przegrzewanie i oszczędzasz 5-10% energii.</p>
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Podsumowanie analizy techniczno-ekonomicznej</h3>
            <p><strong>Dla kotłów stałopalnych i wysokotemperaturowych (>55°C):</strong> Wymiennik płytowy jest absolutnie niezbędny do zabezpieczenia rur przed starzeniem, a wylewki przed pękaniem. Ryzykujesz zniszczenie posadzki wartej 25 000 zł, oszczędzając na elemencie za 500 zł.</p>
            <p><strong>Dla pomp ciepła (<45°C):</strong> Wymiennik płytowy może być pominięty, jeśli układ jest zamknięty, co pozwala na dodatkowe oszczędności.</p>
            <p style="font-size: 13px; line-height: 1.6; margin-top:15px;">Włącz obsługę skryptów JavaScript, aby uzyskać dostęp do interaktywnego Decyzjomatu i kalkulatora ryzyka finansowego.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('decision-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten interaktywny moduł jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA DECZYJOMATU
    const buttons = document.querySelectorAll('.source-btn');
    const statusEl = document.getElementById('res-status');
    const descEl = document.getElementById('res-desc');
    const barRisk = document.getElementById('bar-risk');
    const valRisk = document.getElementById('risk-val');

    const data = {
        'stalopalny': {
            status: 'NIEZBĘDNY', color: 'var(--danger)',
            desc: 'Kocioł może zagotować wodę. Bez separacji hydraulicznej i temperaturowej zniszczysz posadzkę i rury.',
            riskW: '100%', riskV: '~ 25 000 zł'
        },
        'gaz': {
            status: 'WYsoce ZALECANY', color: 'var(--warning)',
            desc: 'Stare kotły gazowe rzadko schodzą poniżej 50°C. Wymiennik stabilizuje parametry i chroni przed brudem z rur.',
            riskW: '50%', riskV: '~ 12 000 zł (Spadek żywotności)'
        },
        'pompa': {
            status: 'ZBĘDNY (Opcjonalny)', color: 'var(--success)',
            desc: 'Nowoczesna pompa ciepła podaje gotowe 35°C wprost na rozdzielacz. Brak wymiennika poprawia jej sprawność (COP).',
            riskW: '0%', riskV: '0 zł (Bezpiecznie)'
        }
    };

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset active
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Update UI
            const key = this.getAttribute('data-source');
            const d = data[key];

            statusEl.innerText = d.status;
            statusEl.style.color = d.color;
            descEl.innerText = d.desc;
            
            barRisk.style.width = d.riskW;
            if(key === 'pompa') {
                barRisk.style.background = 'var(--success)';
                valRisk.style.color = 'var(--success)';
            } else {
                barRisk.style.background = 'var(--danger)';
                valRisk.style.color = 'var(--danger)';
            }
            valRisk.innerText = d.riskV;
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-hover: #1e40af;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
    --success: #10b981;
}

.premium-faq-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    position: relative;
}

.faq-header {
    padding: 40px 45px 25px 45px;
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-light) 100%);
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.faq-header h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.faq-header p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--text-muted);
}

.faq-content {
    padding: 20px 45px 40px 45px;
}

.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

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

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 25px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: color 0.2s ease;
    font-family: inherit;
}

.faq-question-text {
    display: flex;
    align-items: center;
    gap: 12px;
}

.faq-question-text span.emoji {
    font-size: 22px;
    opacity: 0.8;
}

.faq-question:hover {
    color: var(--accent);
}

.faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #eff6ff;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: bold;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
}

.faq-item.active .faq-question {
    color: var(--accent);
}

.faq-item.active .faq-icon {
    transform: rotate(45deg);
    background: var(--accent);
    color: #ffffff;
}

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

.faq-answer-inner {
    padding-bottom: 25px;
    padding-left: 34px; /* Wcięcie żeby pasowało do tekstu pod emoji */
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

.faq-answer-inner a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.faq-answer-inner a:hover {
    color: var(--accent-hover);
}

.faq-answer-inner strong {
    color: var(--primary);
    font-weight: 700;
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 25px; }
    .faq-content { padding: 10px 25px 30px 25px; }
    .faq-question { font-size: 15px; padding: 20px 0; }
    .faq-question-text span.emoji { font-size: 18px; }
    .faq-answer-inner { padding-left: 0; }
    .faq-icon { width: 28px; height: 28px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy można zastąpić zaworem mieszającym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zawór trój- lub czterodrogowy z siłownikiem może zastąpić wymiennik płytowy tylko wtedy, gdy oba obiegi są tego samego typu i nie ma ryzyka zanieczyszczenia. Zawór mieszający nie zapewnia jednak separacji hydraulicznej. W przypadku kotłów stałopalnych z otwartym naczyniem zastosowanie wymiennika jest obowiązkowe."
        }
      },
      {
        "@type": "Question",
        "name": "Jak dobrać moc wymiennika płytowego do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Moc wymiennika powinna być równa lub nieznacznie wyższa od zapotrzebowania na ciepło. Należy zwracać uwagę na parametry katalogowe, gdyż przy niskich temperaturach zasilania wymiennik np. 30 kW może oddać jedynie 18–22 kW."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki spadek temperatury na wymienniku jest prawidłowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Po stronie wtórnej (podłogówka) typowy spadek to ΔT = 5–10 K (np. 35/30°C). Po stronie pierwotnej (kocioł) spadek powinien wynosić ok. ΔT = 20 K (np. 75/55°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy wymaga konserwacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wymienniki lutowane są praktycznie bezobsługowe. Zaleca się montaż separatora zanieczyszczeń na powrocie, a w przypadku spadku wydajności - płukanie chemiczne."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wymiennik płytowy może współpracować z pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ale jest niezbędny głównie w układach hybrydowych z kotłem gazowym lub podczas modernizacji starej instalacji grzejnikowej. W typowych, nowych układach z pompą ciepła jest on zbędny."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy Q&A: Wymienniki Płytowe",
    "description": "Zbiór technicznych odpowiedzi dotyczących doboru, eksploatacji i różnic systemowych wymienników ciepła w układach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Panel FAQ",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Dynamiczny komponent interfejsu (akordeon) pozwalający na szybkie odnalezienie odpowiedzi na najczęściej zadawane pytania inżynierskie.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-faq-module" id="faq-app-lock">
    <div class="faq-header">
        <h2>Sekcja FAQ – Najczęściej zadawane pytania</h2>
        <p>Błyskawiczne odpowiedzi na dylematy projektowe i montażowe.</p>
    </div>

    <div class="faq-content">
        
        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">🔀</span> Czy wymiennik płytowy można zastąpić zaworem mieszającym?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <a href="https://projekt-ogrzewania.pl/produkt/uklad-mieszajacy-kisan-z-pompa-elektroniczna-wilo/">Układ mieszający</a> z zaworem trój- lub czterodrogowym z siłownikiem może zastąpić wymiennik płytowy w funkcji obniżania temperatury zasilania podłogówki <strong>tylko wtedy, gdy oba obiegi (kocioł i podłogówka) są tego samego typu</strong> (np. oba zamknięte) i nie ma ryzyka zanieczyszczenia podłogówki szlamem z instalacji kotłowej. Zawór mieszający <strong>nie zapewnia separacji hydraulicznej</strong>, więc nie chroni przed skokami ciśnienia ani przedostaniem się tlenu do instalacji z otwartego naczynia wzbiorczego. W przypadku kotłów stałopalnych z otwartym naczyniem, zastosowanie wymiennika jest <strong>obowiązkowe</strong> dla zachowania gwarancji na rury podłogowe.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">⚙️</span> Jak dobrać moc wymiennika płytowego do podłogówki?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Moc wymiennika (w kW) powinna być <strong>równa lub nieznacznie wyższa</strong> od projektowanego zapotrzebowania na ciepło ogrzewanej powierzchni. Należy jednak zwrócić uwagę na <strong>temperatury katalogowe</strong>, przy których moc ta jest deklarowana. Wymiennik o mocy 30 kW przy parametrach 80/60°C po stronie pierwotnej i 40/30°C po stronie wtórnej, przy zasilaniu podłogówki 35/30°C może oddać jedynie <strong>18–22 kW</strong>. Zawsze należy posługiwać się programem doborowym producenta lub tabelami korekcyjnymi, planując wielkość <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafki instalacyjnej</a>, aby go pomieścić.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">📉</span> Jaki spadek temperatury na wymienniku jest prawidłowy?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Prawidłowy spadek temperatury zależy od strony wymiennika. Po stronie <strong>wtórnej (podłogówka)</strong> typowy spadek to <strong>ΔT = 5–10 K</strong> (np. 35/30°C). Po stronie <strong>pierwotnej (kocioł)</strong> spadek powinien być wyższy, zazwyczaj <strong>ΔT = 20 K</strong> (np. 75/55°C). Zbyt mały spadek po stronie pierwotnej (np. 75/70°C) świadczy o zbyt dużym przepływie i niedostatecznym wychłodzeniu medium, co obniża sprawność kotła. Odczyt ten zależy również od prawidłowej regulacji na <a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-mosiezny-do-ogrzewania-podlogowego-z-rotametrami/">rozdzielaczach z rotametrami</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">🛠️</span> Czy wymiennik płytowy wymaga konserwacji?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Wymienniki <strong>lutowane</strong> (nierozbieralne) są praktycznie <strong>bezobsługowe</strong>. Jedyną zalecaną czynnością jest okresowe płukanie chemiczne w przypadku znacznego spadku wydajności spowodowanego osadzaniem się kamienia kotłowego. Wymienniki <strong>skręcane</strong> (rozbieralne) umożliwiają mechaniczne czyszczenie płyt, co jest zalecane co 3–5 lat w instalacjach z twardą wodą.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">📏</span> Jakie przyłącza są standardem w wymiennikach do domów?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Dla instalacji o mocy do 30 kW standardem są przyłącza gwintowane o średnicy <strong>1&#8243;</strong> (cal) lub <strong>5/4&#8243;</strong>. Dla mniejszych instalacji (do 15 kW) spotyka się przyłącza <strong>3/4&#8243;</strong>. Należy bezwzględnie unikać przewężania średnic na podejściu do wymiennika, gdyż zwiększa to prędkość przepływu i hałas w instalacji, niezależnie od tego, jakiej <a href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">spinki montażowej</a> czy metody mocowania rur w podłodze użyto na pętlach.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-question-text">
                    <span class="emoji">⚡</span> Czy wymiennik może współpracować z pompą ciepła?
                </div>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Tak, ale w specyficznych przypadkach. W standardowej instalacji z pompą ciepła niskotemperaturową (zasilanie 35°C) wymiennik jest <strong>zbędny</strong> i stanowi niepotrzebne źródło strat egzergii (spadek temperatury o 2–5 K). Wymiennik jest natomiast <strong>niezbędny</strong>, gdy pompa ciepła pracuje w układzie hybrydowym z kotłem gazowym lub gdy dobudowujemy podłogówkę do istniejącej sieci wysokotemperaturowej.
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 45px 30px 45px; background: #fffbeb; color: #b45309; border-top: 1px solid #fde68a;">
            <p style="margin:0; font-size: 14px;"><strong>Uwaga:</strong> Twój system blokuje skrypty. Pełna lista pytań i odpowiedzi (akordeon) może nie działać prawidłowo bez włączonego języka JavaScript.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł FAQ jest własnością Projekt-Ogrzewania.pl</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 20px; display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a></div>';
        }
        return;
    }

    // LOGIKA AKORDEONU
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        const answer = item.querySelector('.faq-answer');

        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykamy wszystkie inne (opcjonalne, odkomentuj jeśli chcesz żeby otwierał się tylko 1 na raz)
            /*
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });
            */

            // Otwieramy/Zamykamy kliknięty
            if (isActive) {
                item.classList.remove('active');
                answer.style.maxHeight = null;
            } else {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(59,130,246,0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

.summary-text a {
    color: var(--sum-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.summary-text a:hover {
    color: #60a5fa;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

.risk-desc a {
    color: var(--sum-accent);
    text-decoration: none;
    font-weight: 600;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(59, 130, 246, 0.6);
    background: #2563eb;
}

.sum-btn-secondary {
    background: transparent;
    color: #ffffff !important;
    border: 2px solid #475569;
}

.sum-btn-secondary:hover {
    border-color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Dlaczego warto rozumieć zasadę działania wymiennika płytowego?",
    "abstract": "Zrozumienie zasady działania wymiennika płytowego w ogrzewaniu podłogowym to fundament świadomego projektowania. Prawidłowy dobór urządzenia gwarantuje ochronę instalacji i maksymalną efektywność energetyczną budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "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/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza wartości wymiennika płytowego w instalacji",
    "description": "Zestawienie porównawcze kosztu zakupu wymiennika płytowego do wartości całej instalacji ogrzewania podłogowego, którą zabezpiecza.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Koszt ubezpieczenia (Wymiennik)",
        "value": "300 - 800 PLN",
        "description": "Jednorazowy koszt urządzenia zapewniającego separację hydrauliczną i redukcję temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Wartość chroniona (Instalacja)",
        "value": "15 000 - 30 000 PLN",
        "description": "Szacunkowa wartość rur, wylewki i robocizny, która jest chroniona przed zniszczeniem termicznym."
      }
    ],
    "creator": {
      "@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/"
      ]
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏁</span>
            <h2>Podsumowanie: Strażnik Twojej Instalacji</h2>
        </div>

        <p class="summary-text">
            Zrozumienie <strong>zasady działania wymiennika płytowego w ogrzewaniu podłogowym</strong> wykracza poza czystą ciekawość techniczną. Jest to fundament świadomego projektowania i eksploatacji nowoczesnych, energooszczędnych systemów grzewczych. Wiedza o przepływie przeciwprądowym, średniej logarytmicznej różnicy temperatur i krytycznych parametrach doboru pozwala uniknąć kosztownych błędów wykonawczych, które w przypadku instalacji zatopionej w posadzce są praktycznie nieodwracalne.
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card good-choice">
                <span class="risk-label">Koszt polisy</span>
                <span class="risk-value">300–800 zł</span>
                <p class="risk-desc">Inwestycja w prawidłowo dobrany wymiennik to ułamek budżetu. To tania polisa chroniąca przed awarią serca układu hydraulicznego.</p>
            </div>
            <div class="risk-card bad-choice" style="border-bottom-color: #3b82f6;"> <span class="risk-label">Chroniony majątek</span>
                <span class="risk-value">Wysoki</span>
                <p class="risk-desc">Wymiennik zabezpiecza układ opisany w <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksowej wycenie instalacji</a>, warty nierzadko dziesiątki tysięcy złotych.</p>
            </div>
        </div>

        <p class="summary-text">
            W kontekście rosnących wymagań normy PN-EN 1264 oraz dążenia do maksymalnej efektywności energetycznej budynków, rola wymiennika jako <strong>strażnika temperatury i czystości hydraulicznej</strong> będzie wyłącznie rosła, nierzadko przewyższając funkcjonalnością tradycyjne <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a>.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-primary">
                📖 CZYTAJ NASZ BLOG
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ekonomiczna zastosowania wymiennika płytowego</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Element analizy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Wartość szacunkowa</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Znaczenie w systemie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Zakup wymiennika</td>
                        <td style="padding: 10px 0; color: #10b981;">300 &#8211; 800 PLN</td>
                        <td style="padding: 10px 0;">Niski koszt początkowy stanowiący polisę ochronną.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zabezpieczona instalacja</td>
                        <td style="padding: 10px 0; color: #3b82f6;">Dziesiątki tysięcy PLN</td>
                        <td style="padding: 10px 0;">Ochrona rur PEX/PERT oraz wylewki przed zniszczeniem termicznym.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Wiedza o przepływie przeciwprądowym i parametrach wymiennika zapobiega błędom wykonawczym, wspierając bezpieczną eksploatację zgodnie z normą PN-EN 1264.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">Zasada działania wymiennika płytowego w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</title>
		<link>https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[błędy wykonawcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[montaż samodzielny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[porady techniczne]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[zebra termiczna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4245</guid>

					<description><![CDATA[<p>Planujesz samodzielny montaż instalacji grzewczej, by zaoszczędzić na robociźnie? Wiele osób, wpisując w wyszukiwarkę frazę „jak samemu zrobić ogrzewanie podłogowe”, skupia się wyłącznie na prostocie rozkładania rur PEX, zapominając o bezlitosnych prawach fizyki budowli i mechaniki płynów. Ten techniczny przewodnik obala popularne mity i analizuje pięć najpoważniejszych „grzechów głównych” popełnianych przez inwestorów. Dowiesz się z niego, dlaczego brak profesjonalnego projektu, zignorowanie dylatacji czy zbyt długie pętle grzewcze mogą doprowadzić do nieodwracalnych uszkodzeń wylewki i kosztownego remontu. Zamiast uczyć się na własnych błędach pod warstwą betonu, poznaj inżynierskie standardy, które zagwarantują Ci komfort cieplny i niskie rachunki przez kolejne trzydzieści lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 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: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fef2f2;
    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 #fecaca;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce",
    "description": "Techniczny przewodnik po najczęstszych błędach podczas montażu podłogówki DIY. Dowiedz się, dlaczego fizyka budowli i mechanika płynów są ważniejsze niż samo układanie rur.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny błędów montażowych",
    "description": "Zestawienie kluczowych parametrów technicznych i zagrożeń wynikających z błędów przy samodzielnym montażu ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Projekt hydrauliczny",
        "value": "Równowaga oporów",
        "description": "Zagrożenie: Niedogrzane pomieszczenia"
      },
      {
        "@type": "PropertyValue",
        "name": "Test ciśnieniowy",
        "value": "6 bar (0.6 MPa)",
        "description": "Zagrożenie: Wyciek pod wylewką"
      },
      {
        "@type": "PropertyValue",
        "name": "Dylatacje",
        "value": "0.012 mm/(m·K)",
        "description": "Zagrożenie: Pękanie płytek i jastrychu"
      },
      {
        "@type": "PropertyValue",
        "name": "Długość obwodów",
        "value": "Max 100m (PEX 16)",
        "description": "Zagrożenie: Przeciążenie pompy obiegowej"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>⚠️</span> Punkt bez powrotu
        </div>
        
        <p class="hero-text">Kiedy wpisujesz w wyszukiwarkę frazę <strong>„jak samemu zrobić ogrzewanie podłogowe”</strong>, widzisz dziesiątki poradników pokazujących, jak łatwo rozwinąć rolkę czerwonej lub białej rury PEX i przyszpilić ją do styropianu. Rzeczywiście, sama czynność układania wężyków jest prosta i może dać ogromną satysfakcję oraz oszczędności na robociźnie rzędu kilku tysięcy złotych.</p>
        
        <p class="hero-text">Problem w tym, że prawdziwa wiedza potrzebna przy samodzielnym montażu ogrzewania podłogowego nie dotyczy wpinania rury w rozdzielacz, ale <strong>fizyki budowli i mechaniki płynów</strong>. Poniższy artykuł to techniczny przewodnik dla tych, którzy rozumieją, że po stwardnieniu betonowej wylewki jedyną metodą naprawy błędu jest młot udarowy i nowy remont.</p>

        <div class="hero-modules-title">Poznaj katalog głównych grzechów:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Brak projektu i obliczeń</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Zła próba szczelności</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🏗️</span>
                <span class="hero-card-title">Zignorowanie dylatacji</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚠️</span>
                <span class="hero-card-title">Błędy długości pętli</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Przegląd techniczny błędów montażowych</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Obszar kontroli</th>
                        <th style="padding: 10px 0; color: #475569;">Kluczowy parametr</th>
                        <th style="padding: 10px 0; color: #475569;">Zagrożenie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Projekt hydrauliczny</td>
                        <td style="padding: 10px 0; font-weight: bold;">Równowaga oporów</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane pomieszczenia</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Test ciśnieniowy</td>
                        <td style="padding: 10px 0; font-weight: bold;">6 bar (0.6 MPa)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek pod wylewką</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dylatacje</td>
                        <td style="padding: 10px 0; font-weight: bold;">0.012 mm/(m·K)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Pękanie płytek i jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Długość obwodów</td>
                        <td style="padding: 10px 0; font-weight: bold;">Max 100m (PEX 16)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Przeciążenie pompy obiegowej</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('hero-app-container');
        if (container) {
            container.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: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-physics-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.physics-header {
    background: var(--primary);
    color: #ffffff;
    padding: 30px 40px;
    position: relative;
    overflow: hidden;
}

.physics-header::after {
    content: '📐';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 80px;
    opacity: 0.1;
}

.physics-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
}

.physics-header p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    line-height: 1.5;
}

.physics-content {
    padding: 40px;
}

.physics-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 25px;
}

.physics-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 30px 0;
}

.sim-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--accent);
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: block;
    text-align: center;
}

.sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.loop-control {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.loop-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.loop-val {
    color: var(--accent);
    font-weight: 900;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.flow-bar-container {
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.flow-bar {
    height: 100%;
    width: 50%;
    background: var(--success);
    transition: width 0.4s ease, background-color 0.4s ease;
}

.flow-text {
    position: absolute;
    width: 100%;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

#sim-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

/* LINKI / CTA */
.physics-cta-box {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.physics-cta-text {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 5px;
}

.cta-link-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.3s ease;
}

.cta-primary {
    background: var(--accent);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2);
}

.cta-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.3);
}

.cta-secondary {
    background: var(--accent-light);
    color: var(--accent) !important;
    border: 1px solid #bfdbfe;
}

.cta-secondary:hover {
    background: #dbeafe;
}

@media (max-width: 768px) {
    .physics-header { padding: 25px 20px; }
    .physics-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .cta-link-btn { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Symulacja oporów hydraulicznych i prawa Hagena-Poiseuille’a",
    "description": "Zależność między długością pętli grzewczych a oporem hydraulicznym i przepływem w systemach ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Długość pętli krytyczna",
        "value": "100",
        "unitCode": "MTR",
        "description": "Maksymalna długość pętli dla rury 16mm"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna dopuszczalna różnica długości pętli",
        "value": "15",
        "unitText": "%",
        "description": "Powyżej 15% różnicy woda omija dłuższą pętlę i nie da się jej zbilansować na rotametrach"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące wpływ różnicy długości pętli grzewczych na równowagę oporów hydraulicznych i przepływ wody.",
    "featureList": [
      "Wizualizacja prawa Hagena-Poiseuille’a",
      "Obliczanie stosunku przepływu na podstawie różnicy długości",
      "Wykrywanie przekroczenia krytycznej granicy zbilansowania (15%)"
    ]
  }
]
</script>

<div class="premium-physics-box" id="physics-app-lock">
    <div class="physics-header">
        <h3>Projekt instalacji – fundament, a nie fanaberia</h3>
        <p>Dlaczego metoda &#8222;na oko&#8221; i brak obliczeń to przepis na zimną podłogę?</p>
    </div>

    <div class="physics-content">
        <p class="physics-text">
            Zanim przejdziemy do konkretnych błędów montażowych, musimy postawić sprawę jasno: <strong>brak projektu hydraulicznego i cieplnego jest matką wszystkich tych wpadek.</strong> Wpisując w Google <em>jak samemu zrobić ogrzewanie podłogowe</em>, większość majsterkowiczów szuka schematu rozstawu rur („ślimak czy meander?”), całkowicie ignorując obliczenia oporów hydraulicznych i strat ciepła.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce</span>
            <div class="sim-grid">
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla A (np. Łazienka)</span><span class="loop-val"><span id="val-loop1">45</span> m</span></div>
                    <input type="range" id="loop1" min="20" max="150" value="45">
                    <div class="flow-bar-container">
                        <div id="bar-loop1" class="flow-bar"></div>
                        <span id="text-loop1" class="flow-text">Przepływ: Wysoki (Gorąca)</span>
                    </div>
                </div>
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla B (np. Salon)</span><span class="loop-val"><span id="val-loop2">120</span> m</span></div>
                    <input type="range" id="loop2" min="20" max="150" value="120">
                    <div class="flow-bar-container">
                        <div id="bar-loop2" class="flow-bar" style="background:var(--danger)"></div>
                        <span id="text-loop2" class="flow-text">Przepływ: Niski (Zimna)</span>
                    </div>
                </div>
            </div>
            <div id="sim-warning">⚠️ Różnica oporów jest zbyt duża (>15%). Woda omija dłuższą pętlę. Tego układu nie da się zbilansować na rozdzielaczu!</div>
        </div>

        <p class="physics-text">
            Próba wykonania instalacji „na oko” prowadzi dokładnie do sytuacji z powyższego symulatora, w której <strong>jedna pętla ma 120 metrów, a druga 45 metrów.</strong> Zgodnie z prawami fizyki, woda przepływa tam, gdzie jest najmniejszy opór. W takim układzie krótsza pętla będzie gorąca, a długa – ledwo letnia. 
            <br><br>
            <strong>Nie da się tego skorygować zaworem na rozdzielaczu, jeśli różnica długości przekracza 10-15%.</strong> 
        </p>

        <div class="physics-cta-box">
            <div class="physics-cta-text">Chcesz uchronić się przed kosztownymi pomyłkami?</div>
            
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-link-btn cta-primary">
                <span>📐 Zleć profesjonalny projekt instalacji u specjalisty</span>
                <span>ZAMÓW PROJEKT →</span>
            </a>
            
            <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="cta-link-btn cta-secondary">
                <span>📖 Dowiedz się, ile możesz stracić na błędach bez wyliczeń</span>
                <span>PRZECZYTAJ ARTYKUŁ →</span>
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Parametry hydrauliczne pętli grzewczych (Prawo Hagena-Poiseuille’a)</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Długość pętli</th>
                        <th style="padding: 10px 0; color: #475569;">Zdolność przepływu w układzie mieszanym</th>
                        <th style="padding: 10px 0; color: #475569;">Ocena hydrauliczna</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">45 m (Krótka)</td>
                        <td style="padding: 10px 0;">Pętla o niskim oporze &#8211; przejmuje większość przepływu</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Gorąca (Przegrzewanie)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">120 m (Długa)</td>
                        <td style="padding: 10px 0;">Pętla o wysokim oporze &#8211; woda ją omija</td>
                        <td style="padding: 10px 0; color: #2563eb; font-weight: bold;">Zimna (Niedogrzanie)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Różnica &gt; 15%</td>
                        <td style="padding: 10px 0;">Brak możliwości kompensacji ciśnienia na rotametrach</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Błąd projektowy (Nie do zbilansowania)</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('physics-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div>' +
                '<p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var loop1 = document.getElementById('loop1');
    var loop2 = document.getElementById('loop2');
    var val1 = document.getElementById('val-loop1');
    var val2 = document.getElementById('val-loop2');
    var bar1 = document.getElementById('bar-loop1');
    var bar2 = document.getElementById('bar-loop2');
    var text1 = document.getElementById('text-loop1');
    var text2 = document.getElementById('text-loop2');
    var warning = document.getElementById('sim-warning');

    function calculateFlow() {
        var l1 = parseFloat(loop1.value);
        var l2 = parseFloat(loop2.value);
        
        val1.innerText = l1;
        val2.innerText = l2;

        // Odwrotna proporcjonalność: większa długość = mniejszy przepływ
        // Zakładamy stałe ciśnienie pompy, przepływ Q ~ 1/L
        var q1 = 1 / l1;
        var q2 = 1 / l2;
        var totalQ = q1 + q2;

        var perc1 = (q1 / totalQ) * 100;
        var perc2 = (q2 / totalQ) * 100;

        bar1.style.width = perc1 + '%';
        bar2.style.width = perc2 + '%';

        // Kolorowanie pętli w zależności od udziału w przepływie
        updateBarColor(bar1, text1, perc1);
        updateBarColor(bar2, text2, perc2);

        // Obliczanie różnicy w długości pętli
        var maxL = Math.max(l1, l2);
        var diff = Math.abs(l1 - l2);
        var diffPerc = (diff / maxL) * 100;

        if (diffPerc > 15 || l1 > 100 || l2 > 100) {
            warning.style.display = 'block';
            if (l1 > 100 || l2 > 100) {
                warning.innerHTML = '⚠️ <strong>Jedna z pętli przekracza 100 m!</strong> Opór jest tak duży, że dławienie zaworów nie pomoże. Pętla nie dogrzeje pomieszczenia.';
            } else {
                warning.innerHTML = '⚠️ <strong>Różnica długości wynosi ok. ' + Math.round(diffPerc) + '%!</strong> Woda wybiera najmniejszy opór. Układu nie da się zbilansować na rotametrach.';
            }
        } else {
            warning.style.display = 'none';
        }
    }

    function updateBarColor(bar, textEl, perc) {
        if (perc > 60) {
            bar.style.backgroundColor = '#dc2626'; // Red
            textEl.innerText = 'Gorąca (Główny obieg)';
        } else if (perc >= 40 && perc <= 60) {
            bar.style.backgroundColor = '#16a34a'; // Green
            textEl.innerText = 'Zbilansowana';
        } else {
            bar.style.backgroundColor = '#3b82f6'; // Blue
            textEl.innerText = 'Zimna (Brak przepływu)';
        }
    }

    loop1.addEventListener('input', calculateFlow);
    loop2.addEventListener('input', calculateFlow);

    // Initial run
    calculateFlow();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💦';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 25px;
}

.gauge-display {
    font-size: 42px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 10px;
    line-height: 1;
}

.gauge-label {
    font-size: 14px;
    color: #64748b;
    font-weight: 700;
    margin-bottom: 15px;
}

input[type=range] {
    width: 100%; max-width: 400px; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.sim-btn {
    padding: 12px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    border: none;
    transition: 0.3s;
}

.btn-concrete { background: #94a3b8; color: white; box-shadow: 0 4px 10px rgba(148, 163, 184, 0.3); }
.btn-concrete:hover { background: #64748b; }
.btn-strike { background: #fbbf24; color: #78350f; box-shadow: 0 4px 10px rgba(251, 191, 36, 0.3); }
.btn-strike:hover { background: #f59e0b; }

#sim-result {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    display: none;
    line-height: 1.5;
}

.result-danger { background: #fef2f2; color: var(--danger); border: 2px solid #fecaca; }
.result-success { background: #f0fdf4; color: var(--success); border: 2px solid #bbf7d0; }
.result-warning { background: #fffbeb; color: #b45309; border: 2px solid #fde68a; }

/* SEKCJE TEKSTOWE */
.golden-standard {
    background: #f0fdf4;
    border-left: 6px solid var(--success);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.golden-standard h4 { margin: 0 0 15px 0; color: #166534; font-size: 18px; font-weight: 800;}
.golden-standard ul { margin: 0; padding-left: 20px; color: #15803d; line-height: 1.7; }
.golden-standard li { margin-bottom: 10px; }
.golden-standard strong { color: #14532d; }

.life-example {
    background: #fff7ed;
    border: 1px solid #ffedd5;
    padding: 25px;
    border-radius: 16px;
    margin-top: 30px;
}

.life-example h4 { margin: 0 0 10px 0; color: var(--warning); font-size: 16px; font-weight: 800;}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-actions { flex-direction: column; width: 100%; }
    .sim-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Standardy próby szczelności instalacji ogrzewania podłogowego",
    "description": "Wymagania techniczne i fizyczne konsekwencje nieprawidłowo przeprowadzonej próby ciśnieniowej przed zalaniem wylewką.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wymagane ciśnienie próbne",
        "value": "0.6",
        "unitCode": "BAR",
        "description": "Minimum 6 barów w celu zapobiegania mikrorozszczelnieniom złączek pod masą betonu"
      },
      {
        "@type": "PropertyValue",
        "name": "Minimalny czas trwania testu",
        "value": "24",
        "unitText": "godziny"
      },
      {
        "@type": "PropertyValue",
        "name": "Masa jastrychu grzewczego na rurach",
        "value": "200-250",
        "unitText": "kg/m2",
        "description": "Siła wywierana na rury PEX wymagająca sztywności uzyskanej ciśnieniem > 5 bar"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator naprężeń: Sprawdź zachowanie rury",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "description": "Interaktywny symulator demonstrujący wpływ ciśnienia próbnego na zachowanie rur ogrzewania podłogowego podczas prac betoniarskich, takich jak wibrowanie wylewki oraz uderzenia mechaniczne.",
    "featureList": [
      "Wizualizacja wpływu wibratora do betonu na szczelność",
      "Symulacja spadku ciśnienia na manometrze przy uszkodzeniu mechanicznym",
      "Określanie bezpiecznych (>= 6 bar) i niebezpiecznych poziomów ciśnienia"
    ]
  }
]
</script>

<div class="premium-error-box" id="pressure-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #1</div>
        <h3>Brak lub źle przeprowadzona próba szczelności</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli przeciek ukryty w tonach betonu.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego standardowe "sprawdzenie na 2 bary" to za mało?</strong><br>
            To absolutnie najpoważniejszy błąd przy samodzielnym wykonaniu podłogówki. W domowych warunkach najczęściej robi się tak: podłącza się wąż ogrodowy do rozdzielacza, puszcza wodę z sieci (ok. 3-4 bary), widzi się, że z drugiego końca leci woda, zakręca zawór i uznaje instalację za szczelną.
        </p>
        <p class="error-text">
            <strong>Konsekwencja techniczna:</strong><br>
            Podczas zalewania wylewki na rury działa masa betonu (około 200-250 kg/m² przy grubości 6-8 cm). Ponadto ekipy betoniarskie używają wibratorów wgłębnych lub listew wibracyjnych. Drgania o wysokiej częstotliwości potrafią poluzować nawet prawidłowo zaciśnięte złączki zaciskowe. Jeśli w rurze panowało niskie ciśnienie statyczne, a złączka była "na styk", pod wpływem wibracji i ciężaru betonu dojdzie do mikrorozszczelnienia. Woda zacznie migrować w beton, a Ty zobaczysz to dopiero po 3 miesiącach, gdy na suficie piętra niżej pojawi się mokra plama.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator naprężeń: Sprawdź zachowanie rury</span>
            
            <div class="sim-controls">
                <div class="gauge-display"><span id="pressure-val">2.0</span> BAR</div>
                <span class="gauge-label">Ustaw ciśnienie w układzie (0 - 8 bar)</span>
                <input type="range" id="pressure-slider" min="0" max="8" step="0.5" value="2.0">
            </div>

            <div class="sim-actions">
                <button id="btn-pour" class="sim-btn btn-concrete">1. Wylej beton i włącz wibrator</button>
                <button id="btn-strike" class="sim-btn btn-strike">2. Symuluj uderzenie łopatą</button>
            </div>

            <div id="sim-result"></div>
        </div>

        <div class="golden-standard">
            <h4>Złoty standard próby szczelności (jak to zrobić dobrze):</h4>
            <ul>
                <li><strong>Ciśnienie próbne:</strong> Minimum 0,6 MPa (6 barów). Woda w instalacji CO rzadko przekracza 2 bary, ale próba ma symulować ekstremalne naprężenia mechaniczne.</li>
                <li><strong>Czas trwania:</strong> Minimum 24 godziny.</li>
                <li><strong>W trakcie wylewania betonu:</strong> Rury muszą być pod ciśnieniem! To kluczowa zasada pomijana przez 90% samouków.</li>
            </ul>
        </div>

        <p class="error-text">
            Dzięki utrzymaniu ciśnienia rura jest sztywna (naprężona). Jeśli ekipa od wylewek nadepnie na nią kaloszem lub uderzy łopatą, manometr na rozdzielaczu natychmiast spadnie. Wtedy możesz przerwać wylewanie, odkopać uszkodzone miejsce i naprawić złączką. Szczegółową instrukcję przeprowadzania tego kluczowego testu znajdziesz w naszym dedykowanym artykule: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">próba szczelności ogrzewania podłogowego – jak zrobić to prawidłowo?</a>.
        </p>

        <div class="life-example">
            <h4>👷‍♂️ Przykład z życia:</h4>
            <p style="margin:0; font-size:14px; color:#78350f; line-height:1.6;">
                Pan Adam z Wrocławia oszczędził na kompresorze. Zrobił próbę na 2 bary z wodociągu. Po wylaniu 10 cm betonu okazało się, że w jednej pętli nie ma przepływu. Po 3 latach płytki w przedpokoju zaczęły "pływać" – okazało się, że przy rozdzielaczu ekipa wylała beton bezpośrednio na złączkę, wyginając ją i powodując pęknięcie zmęczeniowe mosiądzu. <strong>Koszt naprawy: skucie 4 m² posadzki, wymiana złączki, nowa wylewka i nowe płytki (łącznie ok. 3500 zł).</strong>
            </p>
        </div>
    </div>
    
    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki ciśnienia w rurach ogrzewania podłogowego podczas prac betoniarskich</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Wartość ciśnienia próbnego</th>
                        <th style="padding: 10px 0; color: #475569;">Zachowanie rury pod wpływem wibratora do betonu</th>
                        <th style="padding: 10px 0; color: #475569;">Reakcja na uszkodzenie mechaniczne (np. łopatą)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">&lt; 5 bar (Zbyt niskie)</td>
                        <td style="padding: 10px 0;">Poluzowanie złączek, wyciek pod wylewką</td>
                        <td style="padding: 10px 0; color: #dc2626;">Brak widocznego spadku na manometrze</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">&ge; 6 bar (Zalecane)</td>
                        <td style="padding: 10px 0;">Rura sztywna, złączki zablokowane</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Natychmiastowy spadek ciśnienia = szybka naprawa</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pressure-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var slider = document.getElementById('pressure-slider');
    var valDisplay = document.getElementById('pressure-val');
    var btnPour = document.getElementById('btn-pour');
    var btnStrike = document.getElementById('btn-strike');
    var resultBox = document.getElementById('sim-result');

    slider.addEventListener('input', function() {
        valDisplay.innerText = parseFloat(slider.value).toFixed(1);
        resultBox.style.display = 'none'; // reset wyników przy zmianie
    });

    btnPour.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 
        
        if (pressure < 5.0) {
            resultBox.classList.add('result-danger');
            resultBox.innerHTML = '❌ <strong>KATASTROFA!</strong> Ciśnienie jest zbyt niskie. Rura jest wiotka. Wibrator poluzował złączki, a ciężar betonu wywołał mikrorozszczelnienie. Woda ucieka w wylewkę!';
        } else {
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '✅ <strong>BEZPIECZNIE!</strong> Rura pod ciśnieniem ' + pressure.toFixed(1) + ' bar jest sztywna jak kamień. Złączki są napięte i zablokowane. Wibracje betonu nie robią na niej żadnego wrażenia.';
        }
    });

    btnStrike.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 

        if (pressure < 3.0) {
            resultBox.classList.add('result-warning');
            resultBox.innerHTML = '⚠️ <strong>BRAK REAKCJI MANOMETRU!</strong> Rura została uszkodzona łopatą, ale ciśnienie było tak niskie, że wskaźnik ledwo drgnął. Ekipa nie zauważyła problemu i zalała dziurawą rurę betonem.';
        } else {
            // Animacja spadku ciśnienia
            slider.value = 0;
            valDisplay.innerText = "0.0";
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '🚨 <strong>ALARM! WZORCOWA REAKCJA!</strong> Uszkodzenie łopatą natychmiast wyrzuciło wodę z naprężonej rury. Manometr spadł do ZERA w sekundę. Zatrzymujesz wylewanie i naprawiasz uszkodzenie!';
        }
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💥';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.sim-control-group {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.sim-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.sim-val {
    color: var(--accent);
    font-weight: 900;
}

input[type=range] {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-result-box {
    text-align: center;
    margin-top: 30px;
    padding: 25px;
    background: #ffffff;
    border-radius: 12px;
    border: 2px dashed #cbd5e1;
}

.sim-result-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--danger);
    line-height: 1;
    margin-bottom: 10px;
    display: block;
}

#sim-warning {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    display: none;
}

/* LISTA DYLATACJI */
.rules-list {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.rules-list h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rules-list ul { margin: 0; padding-left: 20px; color: #1e40af; line-height: 1.7; }
.rules-list li { margin-bottom: 12px; }
.rules-list li strong { color: #1e3a8a; }

/* ZAMIAN TABELI NA KARTY */
.param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 30px;
}

.param-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.param-icon { font-size: 28px; margin-bottom: 10px; display: block; }
.param-title { font-size: 13px; font-weight: 800; color: var(--primary); text-transform: uppercase; margin-bottom: 10px; }
.param-value { font-size: 14px; font-weight: 700; color: var(--accent); margin-bottom: 10px; display: block;}
.param-danger { font-size: 12px; color: var(--danger); font-weight: 600; background: #fef2f2; padding: 6px; border-radius: 8px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Parametry rozszerzalności termicznej jastrychu i zasady dylatacji",
  "description": "Dane techniczne dotyczące pracy betonu w instalacjach ogrzewania podłogowego oraz normatywne wymagania dla szczelin dylatacyjnych.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Współczynnik rozszerzalności termicznej betonu",
      "value": "0.012",
      "unitText": "mm/(m·K)"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna powierzchnia pola bez dylatacji",
      "value": "40",
      "unitText": "m2"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna długość boku pola bez dylatacji",
      "value": "8",
      "unitCode": "MTR"
    },
    {
      "@type": "PropertyValue",
      "name": "Minimalna długość osłony peszel na dylatacji",
      "value": "30",
      "unitCode": "CMT"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-error-box" id="expansion-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #2</div>
        <h3>Zignorowanie dylatacji i pracy betonu</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli dlaczego piękna podłoga pęka z hukiem.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego podłoga pęka mimo pięknie ułożonych płytek?</strong><br>
            Beton (zarówno cementowy, jak i anhydrytowy) pod wpływem zmian temperatury pracuje objętościowo. Współczynnik rozszerzalności termicznej betonu wynosi około <strong>0,012 mm/(m·K)</strong>. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator rozszerzalności wylewki</span>
            <div class="sim-grid">
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Długość pomieszczenia (L)</span><span class="sim-val"><span id="val-length">10</span> m</span></div>
                    <input type="range" id="slider-length" min="2" max="20" step="1" value="10">
                </div>
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Różnica temperatur (ΔT)</span><span class="sim-val"><span id="val-temp">20</span> °C</span></div>
                    <input type="range" id="slider-temp" min="10" max="40" step="1" value="20">
                    <div style="font-size:11px; color:#94a3b8; margin-top:5px;">Różnica: stan zimny vs zasilanie grzewcze</div>
                </div>
            </div>

            <div class="sim-result-box">
                <span style="font-size:13px; font-weight:800; color:#64748b; text-transform:uppercase;">Wylewka wydłuży się o:</span>
                <span class="sim-result-value"><span id="result-expansion">2.4</span> mm</span>
                <p style="margin:0; font-size:14px; color:#334155; max-width: 600px; margin: 0 auto;">
                    Te milimetry to ogromna siła. Beton nie ściśnie się sam z siebie. Jeśli napotka opór (ścianę) bez dylatacji, energia rozładuje się w najsłabszym punkcie – powodując pęknięcie na środku salonu i przecinając płytki gresowe jak żyletka.
                </p>
                <div id="sim-warning">⚠️ Długość boku przekracza 8 metrów! Wymagane jest zastosowanie dylatacji pośredniej (przecięcie wylewki), w przeciwnym razie posadzka pęknie samoistnie.</div>
            </div>
        </div>

        <div style="position: absolute; left: -9999px; height: 1px; width: 1px; overflow: hidden;" aria-hidden="true">
            <table>
                <caption>Specyfikacja techniczna dylatacji i pracy betonu</caption>
                <thead>
                    <tr>
                        <th>Parametr fizyczny</th>
                        <th>Wartość normatywna</th>
                        <th>Skutek zignorowania</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Współczynnik rozszerzalności</td>
                        <td>0,012 mm/(m·K)</td>
                        <td>Praca objętościowa jastrychu (wydłużanie)</td>
                    </tr>
                    <tr>
                        <td>Maksymalna długość boku</td>
                        <td>8 metrów bieżących</td>
                        <td>Pęknięcia skurczowe wylewki</td>
                    </tr>
                    <tr>
                        <td>Maksymalna powierzchnia pola</td>
                        <td>40 m²</td>
                        <td>Pękanie płytek gresowych</td>
                    </tr>
                    <tr>
                        <td>Osłona rur (Peszel) na dylatacji</td>
                        <td>Min. 30 cm</td>
                        <td>Przecięcie rury przez pracujący beton</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rules-list">
            <h4>Gdzie bezwzględnie stosować dylatacje?</h4>
            <ul>
                <li><strong>Progi drzwiowe</strong> – każdy otwór drzwiowy musi mieć szczelinę w wylewce.</li>
                <li><strong>Pomieszczenia w kształcie litery L</strong> – narożniki wewnętrzne to miejsca największej koncentracji naprężeń.</li>
                <li><strong>Duże pola grzejne (> 40 m²)</strong> – w przestronnym salonie należy podzielić podłogę na mniejsze sekcje (zazwyczaj co 8 metrów bieżących).</li>
                <li><strong>Przejście rur przez dylatację (Pułapka!)</strong> – rura PEX przechodząca przez szczelinę dylatacyjną musi być osłonięta peszlem (rurą karbowaną) na długości min. 30 cm od osi szczeliny. Gołą rurę pracujący beton przetnie jak nożyce.</li>
            </ul>
        </div>

        <p class="error-text">
            Kompendium wiedzy na ten temat znajdziesz w artykule: <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a>.
        </p>

        <h4 style="text-align:center; font-size: 18px; margin-top: 40px; margin-bottom: 0;">Parametry Techniczne i Konsekwencje</h4>
        <div class="param-grid">
            <div class="param-card">
                <span class="param-icon">📏</span>
                <div class="param-title">Max powierzchnia pola</div>
                <span class="param-value">40 m² (lub 8 m boku)</span>
                <div class="param-danger">Brak: Pęknięcia skurczowe w wylewce</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🎗️</span>
                <div class="param-title">Taśma brzegowa</div>
                <span class="param-value">Min. 8 mm grubości</span>
                <div class="param-danger">Brak: Napór na ściany (pękające tynki)</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🛡️</span>
                <div class="param-title">Peszel na dylatacji</div>
                <span class="param-value">Odcinek min. 30 cm</span>
                <div class="param-danger">Brak: Przecięcie rury grzewczej</div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('expansion-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var sliderLength = document.getElementById('slider-length');
    var sliderTemp = document.getElementById('slider-temp');
    var valLength = document.getElementById('val-length');
    var valTemp = document.getElementById('val-temp');
    var resultExpansion = document.getElementById('result-expansion');
    var warning = document.getElementById('sim-warning');

    var alpha = 0.012; // Współczynnik dla betonu

    function updateExpansion() {
        var length = parseFloat(sliderLength.value);
        var tempDiff = parseFloat(sliderTemp.value);

        valLength.innerText = length;
        valTemp.innerText = tempDiff;

        // Wyliczenie ze wzoru: ΔL = α × L × ΔT
        var deltaL = alpha * length * tempDiff;
        resultExpansion.innerText = deltaL.toFixed(1);

        // Ostrzeżenie o dylatacji pośredniej
        if (length > 8) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

    sliderLength.addEventListener('input', updateExpansion);
    sliderTemp.addEventListener('input', updateExpansion);

    // Initial run
    updateExpansion();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Zmienne do symulatora zebry */
    --pipe-color: #ef4444;
    --cold-color: #3b82f6;
    --warm-color: #fca5a5;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🦓';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR ZEBRA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-zebra {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.zebra-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.zebra-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].zebra-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].zebra-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.zebra-visualizer {
    width: 100%;
    height: 120px;
    border-radius: 12px;
    border: 2px solid #cbd5e1;
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
    transition: background 0.4s ease;
}

.zebra-overlay-text {
    position: absolute;
    top: 10px;
    left: 15px;
    background: rgba(255,255,255,0.9);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    color: var(--primary);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* KARTY WYNIKÓW (ZAMIAST TABELI) */
.zebra-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.zebra-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 15px; font-weight: 800; color: var(--primary); }
.stat-cop-high { color: var(--success); }
.stat-cop-low { color: var(--danger); }

/* SEKCJA REKOMENDACJI */
.recommendation-box {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.recommendation-box h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rec-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.rec-item {
    display: flex;
    justify-content: space-between;
    background: #ffffff;
    padding: 12px 15px;
    border-radius: 8px;
    border: 1px solid #bfdbfe;
    align-items: center;
}
.rec-item span { font-size: 14px; font-weight: 600; color: #334155; }
.rec-item strong { font-size: 15px; color: var(--accent); font-weight: 900; background: #dbeafe; padding: 4px 10px; border-radius: 6px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .zebra-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .rec-item { flex-direction: column; text-align: center; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ rozstawu rur na moc i sprawność ogrzewania podłogowego",
    "description": "Zależność między odległością rur grzewczych PEX a emitowaną mocą, komfortem cieplnym i sprawnością pompy ciepła (COP).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 10 cm",
        "value": "85",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 15 cm",
        "value": "65",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 25 cm",
        "value": "35",
        "unitText": "W/m2",
        "description": "Zauważalny efekt zebry termicznej (różnica temp. > 5K)"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Efektu Zebry Termicznej",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny symulator wizualizujący rozkład temperatur na powierzchni podłogi w zależności od rozstawu rur PEX oraz wpływ tych parametrów na współczynnik COP pompy ciepła.",
    "featureList": [
      "Wizualizacja kamery termowizyjnej dla różnych rozstawów",
      "Kalkulacja spadku mocy grzewczej",
      "Analiza komfortu 'odczucia stopy'"
    ]
  }
]
</script>

<div class="premium-error-box" id="zebra-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #3</div>
        <h3>Nierównomierny rozstaw rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Oszczędność 100 metrów rury, która kosztuje komfort przez 30 lat.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            To błąd wynikający z chęci zaoszczędzenia na materiale przy układaniu ogrzewania samodzielnie. Inwestor myśli: <em>"Skoro standard to 15 cm, to ja dam co 25 cm, przecież i tak będzie ciepło"</em>. Fizyka jest tu bezlitosna.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator Efektu Zebry Termicznej</span>
            
            <div class="sim-controls-zebra">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Wybrany rozstaw rur:</span>
                <div class="zebra-val-display"><span id="z-spacing">15</span> cm</div>
                <div class="zebra-slider-wrap">
                    <input type="range" class="zebra-slider" id="zebra-slider" min="10" max="30" step="5" value="15">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>10 cm</span><span>15 cm</span><span>20 cm</span><span>25 cm</span><span>30 cm</span>
                    </div>
                </div>
            </div>

            <div class="zebra-visualizer" id="z-visualizer">
                <div class="zebra-overlay-text">Kamera termowizyjna (widok z góry)</div>
            </div>

            <div class="zebra-stats-grid">
                <div class="zebra-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Moc Grzewcza</span>
                    <span class="stat-value" id="z-power">~65 W/m²</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">👣</span>
                    <span class="stat-label">Odczucie stopy</span>
                    <span class="stat-value" id="z-feel">Ciepła, komfortowa</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">⚙️</span>
                    <span class="stat-label">Sprawność (COP)</span>
                    <span class="stat-value stat-cop-high" id="z-cop">Optymalna</span>
                </div>
            </div>
            
            <div id="z-warning" style="margin-top: 15px; padding: 12px; border-radius: 8px; font-size: 13px; font-weight: 700; text-align: center; background: #fef2f2; color: var(--danger); display: none;">
                ⚠️ <strong>Uwaga!</strong> Aby ogrzać pokój przy tak rzadkim rozstawie, musisz drastycznie podnieść temperaturę zasilania kotła. Rachunki za prąd/gaz znacząco wzrosną!
            </div>
        </div>

        <p class="error-text">
            <strong>Przykład techniczny:</strong><br>
            Załóżmy, że rura PEX 16x2,0 mm ułożona jest w jastrychu o grubości 6,5 cm nad rurą. Przy rozstawie <strong>co 15 cm</strong>, temperatura powierzchni podłogi będzie niemal jednolita (różnica między punktem nad rurą a między rurami wynosi ok. 1,5-2°C – nieodczuwalna dla stopy).
            <br><br>
            Przy rozstawie <strong>co 25-30 cm</strong>, różnica temperatur na powierzchni płytek wzrasta do 5-7°C. To jest właśnie <strong>"zebra termiczna"</strong>. Człowiek wyraźnie czuje stopą naprzemienne pasy ciepła i chłodu. Im rzadszy rozstaw, tym bardziej stromo spada krzywa mocy (nawet o 45%!).
        </p>

        <div class="recommendation-box">
            <h4>Zalecane rozstawy rur:</h4>
            <div class="rec-grid">
                <div class="rec-item">
                    <span>Strefa mieszkalna (środek pokoju)</span>
                    <strong>15 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Strefa brzegowa (okna, ściany zew.)</span>
                    <strong>10 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Łazienka (ciepła posadzka)</span>
                    <strong>10 cm</strong>
                </div>
            </div>
        </div>

        <p class="error-text">
            Wybór odpowiedniego rozstawu to decyzja, która wpłynie na rachunki za ogrzewanie przez kolejne dekady. Szczegółową analizę tego zagadnienia przedstawiamy w tekście: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color:var(--accent); font-weight:700; text-decoration:none;">rozstaw rur ogrzewania podłogowego przy pompie ciepła – co 10 czy 15 cm?</a>
        </p>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zależność mocy i komfortu od rozstawu rur grzewczych</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowana moc (przy zasilaniu 35°C)</th>
                        <th style="padding: 10px 0; color: #475569;">Komfort i odczucie stopy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~85 W/m²</td>
                        <td style="padding: 10px 0;">Równomierne ciepło (Idealne pod pompę ciepła)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~65 W/m²</td>
                        <td style="padding: 10px 0;">Komfortowe, optymalne rozwiązanie</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~35 W/m²</td>
                        <td style="padding: 10px 0;">Zebra termiczna (wyczuwalne zimne pasy podłogi)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">30 cm</td>
                        <td style="padding: 10px 0;">~25 W/m²</td>
                        <td style="padding: 10px 0;">Brak komfortu, drastyczny spadek sprawności</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('zebra-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA ZEBRA
    var slider = document.getElementById('zebra-slider');
    var spacingVal = document.getElementById('z-spacing');
    var visualizer = document.getElementById('z-visualizer');
    var power = document.getElementById('z-power');
    var feel = document.getElementById('z-feel');
    var cop = document.getElementById('z-cop');
    var warning = document.getElementById('z-warning');

    var dataMap = {
        '10': { pwr: '~85 W/m²', feel: 'Gorąca, równomierna', copTxt: 'Wysoka (niska temp.)', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 30px, #fca5a5 40px, #ef4444 50px)' },
        '15': { pwr: '~65 W/m²', feel: 'Ciepła, komfortowa', copTxt: 'Optymalna', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 20px, #fecaca 45px, #ef4444 70px)' },
        '20': { pwr: '~50 W/m²', feel: 'Letnia, wyczuwalne przerwy', copTxt: 'Obniżona', copClass: 'stat-cop-low', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 15px, #bfdbfe 55px, #ef4444 95px)' },
        '25': { pwr: '~35 W/m²', feel: 'Wyraźna "zebra termiczna"', copTxt: 'Niska (wyższa temp.)', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 10px, #60a5fa 65px, #ef4444 120px)' },
        '30': { pwr: '~25 W/m²', feel: 'Agresywna zebra (Zimna)', copTxt: 'Bardzo niska!', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 8px, #2563eb 80px, #ef4444 150px)' }
    };

    function updateZebra() {
        var val = slider.value;
        var data = dataMap[val];

        spacingVal.innerText = val;
        power.innerText = data.pwr;
        feel.innerText = data.feel;
        
        cop.innerText = data.copTxt;
        cop.className = 'stat-value ' + data.copClass;

        visualizer.style.background = data.grad;

        if (data.warn) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

    slider.addEventListener('input', updateZebra);
    updateZebra(); // init
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💸';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR STRAT CIEPŁA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-insulation {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.insulation-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.insulation-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].insulation-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].insulation-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

/* KARTY WYNIKÓW */
.insulation-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.insulation-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    position: relative;
    overflow: hidden;
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 20px; font-weight: 900; color: var(--primary); }
.stat-loss-high { color: var(--danger); }
.stat-loss-low { color: var(--success); }

#ins-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

#ins-success {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #f0fdf4;
    color: var(--success);
    border: 1px solid #bbf7d0;
    display: none;
}

/* SEKCJA TAŚMY BRZEGOWEJ */
.edge-tape-box {
    background: #fff7ed;
    border-left: 6px solid var(--warning);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.edge-tape-box h4 { margin: 0 0 10px 0; color: #9a3412; font-size: 18px; font-weight: 800;}
.edge-tape-box p { margin: 0; color: #78350f; font-size: 15px; line-height: 1.6; }

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon {
    font-size: 24px;
}
.article-link-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--accent);
}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .insulation-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .sim-controls-insulation { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność grubości izolacji podłogi od strat ciepła do gruntu",
    "description": "Kalkulator strat finansowych i energetycznych wynikających z zastosowania niewystarczającej grubości styropianu EPS pod ogrzewaniem podłogowym na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Współczynnik przenikania ciepła (U max dla podłogi)",
        "value": "0.18",
        "unitText": "W/(m2K)",
        "description": "Wymaganie zgodnie z WT 2021"
      },
      {
        "@type": "PropertyValue",
        "name": "Wymagana grubość styropianu (WT 2021)",
        "value": "12-15",
        "unitCode": "CMT"
      },
      {
        "@type": "PropertyValue",
        "name": "Ucieczka ciepła przy izolacji 5cm",
        "value": "25-30",
        "unitText": "%"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Strat Finansowych Izolacji Podłogi",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie symulujące roczne i wieloletnie straty finansowe wynikające z grubości zastosowanej izolacji termicznej pod ogrzewaniem podłogowym na gruncie.",
    "featureList": [
      "Obliczanie procentowej ucieczki ciepła w grunt",
      "Estymacja kosztów w perspektywie 30 lat",
      "Weryfikacja zgodności z normą WT 2021"
    ]
  }
]
</script>

<div class="premium-error-box" id="insulation-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #4</div>
        <h3>Niewłaściwa izolacja termiczna i brzegowa</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli grzanie fundamentów sąsiada.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Fizyka ucieczki ciepła w dół</strong><br>
            Samodzielny montaż ogrzewania podłogowego często skupia się na tym, co widać (rury), a nie na tym, co jest pod spodem (styropian). Tymczasem ciepło, zgodnie z II zasadą termodynamiki, płynie w kierunku niższej temperatury. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator Strat Finansowych (Dla domu 100 m²)</span>
            
            <div class="sim-controls-insulation">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Grubość styropianu na gruncie:</span>
                <div class="insulation-val-display"><span id="i-thickness">5</span> cm</div>
                <div class="insulation-slider-wrap">
                    <input type="range" class="insulation-slider" id="ins-slider" min="2" max="25" step="1" value="5">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>2 cm</span><span>WT2021</span><span>25 cm</span>
                    </div>
                </div>
                <span style="font-size:11px; color:#64748b; margin-top:10px;">Założenia: Zapotrzebowanie 10000 kWh/rok, Cena energii: 0,30 zł/kWh</span>
            </div>

            <div class="insulation-stats-grid">
                <div class="insulation-stat-card">
                    <span class="stat-icon">📉</span>
                    <span class="stat-label">Ciepło uciekające w ziemię</span>
                    <span class="stat-value stat-loss-high" id="i-percent">25%</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">💸</span>
                    <span class="stat-label">Roczna strata finansowa</span>
                    <span class="stat-value stat-loss-high" id="i-cost-year">750 zł</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Strata w ciągu 30 lat</span>
                    <span class="stat-value stat-loss-high" id="i-cost-30">22 500 zł</span>
                </div>
            </div>
            
            <div id="ins-warning">
                ⚠️ <strong>Fatalna izolacja!</strong> Nie spełniasz norm budowlanych WT 2021. Znaczna część wyprodukowanego ciepła trafia do ziemi, a Ty wyrzucasz pieniądze w błoto!
            </div>
            <div id="ins-success">
                ✅ <strong>Zgodność z normą WT 2021.</strong> Przy warstwie 15 cm różnica w koszcie zakupu styropianu zwraca się zaledwie w kilka lat dzięki zaoszczędzonej energii.
            </div>
        </div>

        <p class="error-text">
            Przykład z symulatora wyraźnie pokazuje, że przy 5 cm izolacji wyrzucasz przez podłogę tysiące złotych. Różnica w cenie materiału między 5 cm a 15 cm styropianu EPS 100 to zazwyczaj około 1500 zł na 100 m². Zwraca się to błyskawicznie.
        </p>
        <p class="error-text">
            <strong>Wymagania techniczne WT 2021</strong> – wartość współczynnika przenikania ciepła $U_{max}$ dla podłogi na gruncie wynosi 0,18 $W/(m^2K)$. Aby to osiągnąć, potrzebujesz <strong>minimum 12-15 cm styropianu</strong> (lub styroduru XPS o lepszym współczynniku $\lambda$). Na stropie między piętrami wewnątrz ogrzewanej bryły budynku wystarczy 3-5 cm (głównie jako izolacja akustyczna i wyrównanie dla instalacji).
        </p>

        <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/" class="article-link-box">
            <span class="article-link-icon">📖</span>
            <span class="article-link-text">Jakie są najlepsze sposoby izolacji pod ogrzewanie podłogowe? Zobacz pełny poradnik →</span>
        </a>

        <div class="edge-tape-box">
            <h4>Taśma brzegowa – nie tylko dla dylatacji!</h4>
            <p>
                Zapomnienie o taśmie brzegowej przy ścianach to nie tylko problem pękania betonu (Błąd #2). To również <strong>gigantyczny mostek termiczny</strong>. Jeśli wylewka dotyka zimnej ściany fundamentowej, ciepło z Twojej podłogi ucieka wprost w górę ściany i na zewnątrz budynku. Taśma brzegowa z pianki polietylenowej pełni krytyczną funkcję izolatora termicznego na całym obwodzie pomieszczenia.
            </p>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki błędów w izolacji termicznej podłogi na gruncie</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Grubość styropianu (EPS 100)</th>
                        <th style="padding: 10px 0; color: #475569;">Status i ucieczka ciepła w grunt</th>
                        <th style="padding: 10px 0; color: #475569;">Przewidywana strata po 30 latach (dom 100 m2)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">5 cm</td>
                        <td style="padding: 10px 0;">Krytyczny błąd (strata ok. 25-30%)</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">~ 22 500 PLN</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">Poniżej aktualnych norm WT</td>
                        <td style="padding: 10px 0;">Znaczna ucieczka ciepła</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">12-15 cm</td>
                        <td style="padding: 10px 0;">Normatywna (zgodna z WT 2021)</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne koszty eksploatacji</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('insulation-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA STRAT CIEPŁA
    var slider = document.getElementById('ins-slider');
    var valThick = document.getElementById('i-thickness');
    var valPercent = document.getElementById('i-percent');
    var valCostYear = document.getElementById('i-cost-year');
    var valCost30 = document.getElementById('i-cost-30');
    var warning = document.getElementById('ins-warning');
    var success = document.getElementById('ins-success');

    // Stałe z tekstu
    var baseEnergyKwh = 10000;
    var pricePerKwh = 0.30;

    function updateInsulation() {
        var eps = parseFloat(slider.value);
        valThick.innerText = eps;

        // Uproszczony model spadku strat zgodny z tekstem użytkownika (5cm = 25%)
        // Wzór hiperboliczny: loss = 125 / eps_thickness
        var lossPercent = 125 / eps;
        
        // Zabezpieczenie przed nierealnymi ekstremami na wykresie
        if (lossPercent > 62.5) lossPercent = 62.5; 

        var lostKwh = baseEnergyKwh * (lossPercent / 100);
        var costYear = lostKwh * pricePerKwh;
        var cost30y = costYear * 30;

        valPercent.innerText = Math.round(lossPercent) + '%';
        
        // Formatowanie waluty z separatorem spacji
        valCostYear.innerText = Math.round(costYear).toLocaleString('pl-PL') + ' zł';
        valCost30.innerText = Math.round(cost30y).toLocaleString('pl-PL') + ' zł';

        // Stylowanie wyników
        var valueElements = [valPercent, valCostYear, valCost30];
        if (eps < 12) {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-low');
                el.classList.add('stat-loss-high');
            });
            warning.style.display = 'block';
            success.style.display = 'none';
        } else {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-high');
                el.classList.add('stat-loss-low');
            });
            warning.style.display = 'none';
            success.style.display = 'block';
        }
    }

    slider.addEventListener('input', updateInsulation);
    updateInsulation(); // Inicjalizacja
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🛑';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR OPORÓW */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-loop {
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    margin-bottom: 25px;
}

.loop-val-display {
    font-size: 36px;
    font-weight: 900;
    color: var(--accent);
    text-align: center;
    margin: 10px 0;
}

input[type=range].loop-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].loop-slider::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.loop-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 20px;
}

.loop-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 5px; display: block; }
.stat-value { font-size: 18px; font-weight: 900; color: var(--primary); }

.pump-load-container {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    margin-top: 15px;
}

.pump-load-bar {
    height: 100%;
    width: 20%;
    background: var(--success);
    transition: 0.3s ease;
}

.sim-msg {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.msg-success { background: #f0fdf4; color: var(--success); border: 1px solid #bbf7d0; }
.msg-warning { background: #fffbeb; color: var(--warning); border: 1px solid #fde68a; }
.msg-danger { background: #fef2f2; color: var(--danger); border: 1px solid #fecaca; }

/* ALERT ZAŁAMANIA RURY */
.kink-alert-box {
    background: #fef2f2;
    border-left: 6px solid var(--danger);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 35px 0;
    display: flex;
    gap: 20px;
    align-items: center;
}

.kink-icon {
    font-size: 40px;
    flex-shrink: 0;
}

.kink-content h4 { margin: 0 0 8px 0; color: #991b1b; font-size: 18px; font-weight: 800;}
.kink-content p { margin: 0; color: #7f1d1d; font-size: 15px; line-height: 1.6; }
.kink-content strong { color: #7f1d1d; background: #fee2e2; padding: 2px 6px; border-radius: 4px;}

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon { font-size: 24px; }
.article-link-text { font-size: 14px; font-weight: 700; color: var(--accent); }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .loop-stats-grid { grid-template-columns: 1fr; }
    .kink-alert-box { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator oporów hydraulicznych i limitów długości pętli ogrzewania podłogowego",
    "description": "Limity projektowe i hydrauliczne dla długości pętli rur PEX 16mm w instalacjach ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (PEX 16x2.0)",
        "value": "100",
        "unitCode": "MTR",
        "description": "Twarda granica długości w celu uniknięcia przeciążenia pompy obiegowej"
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna długość pętli",
        "value": "80-90",
        "unitCode": "MTR"
      },
      {
        "@type": "PropertyValue",
        "name": "Szacunkowy opór liniowy rury 16mm (przy przepływie 1.5 l/min)",
        "value": "1.2",
        "unitText": "mbar/m"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator oporów hydraulicznych pętli PEX",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające obliczyć opory liniowe i całkowite pętli ogrzewania podłogowego oraz zweryfikować obciążenie pompy obiegowej.",
    "featureList": [
      "Obliczanie oporu jednostkowego rury",
      "Kalkulacja całkowitego oporu z uwzględnieniem armatury",
      "Wizualizacja obciążenia granicznego pompy"
    ]
  }
]
</script>

<div class="premium-error-box" id="loop-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #5</div>
        <h3>Zbyt długie pętle i załamania rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli moment, w którym pompa obiegowa mówi "dość".</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Hydraulika dla opornych: Dlaczego 120 metrów rury to katastrofa?</strong><br>
            Woda płynąca w rurze PEX 16x2,0 mm napotyka <strong>opory liniowe i miejscowe</strong>. Każdy metr rury, każde kolanko i każda spinka to przeszkoda dla przepływu. Jeśli pętla jest za długa, opór hydrauliczny przewyższa wysokość podnoszenia pompy obiegowej (zazwyczaj jest to 4-6 metrów słupa wody dla całego układu).
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator oporów hydraulicznych (Uproszczony)</span>
            <div style="font-size:11px; text-align:center; color:#64748b; margin-bottom:15px;">Dla rury PEX 16x2,0 przy przepływie ~1,5 l/min</div>
            
            <div class="sim-controls-loop">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase; text-align:center; display:block;">Długość pojedynczej pętli:</span>
                <div class="loop-val-display"><span id="l-length">120</span> m</div>
                <input type="range" class="loop-slider" id="loop-slider" min="30" max="150" step="1" value="120">
                <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                    <span>30 m</span><span>90 m (Max)</span><span>150 m</span>
                </div>
            </div>

            <div class="loop-stats-grid">
                <div class="loop-stat-card">
                    <span class="stat-label">Opór jednostkowy rury (Liniowy)</span>
                    <span class="stat-value" id="l-linear">144.0 mbar</span>
                </div>
                <div class="loop-stat-card">
                    <span class="stat-label">Opór całkowity (+ zawory/kolana ~40%)</span>
                    <span class="stat-value" id="l-total">1.47 m H₂O</span>
                </div>
            </div>

            <div style="font-size:11px; font-weight:700; color:#64748b; text-transform:uppercase;">Obciążenie graniczne dla pętli 16mm:</div>
            <div class="pump-load-container">
                <div class="pump-load-bar" id="l-bar"></div>
            </div>
            
            <div id="l-msg" class="sim-msg msg-danger">
                ❌ Katastrofa! Opór przekracza możliwości standardowej pompy dla jednego obwodu.
            </div>
        </div>

        <p class="error-text">
            Do oporu samej rury dochodzą opory na rozdzielaczu, zaworach i kolanach (z reguły to 30-50% więcej). 
            Jeśli różnica długości między pętlami jest duża, musisz zdławić krótsze pętle zaworami, aby zmusić wodę do płynięcia w te dłuższe. To generuje hałas (szum wody w rotametrach) i niepotrzebne obciążenie pompy.
        </p>

        <p class="error-text">
            <strong>Maksymalna długość pętli (rura 16 mm):</strong> Nie przekraczaj 100 metrów! Idealnie trzymać się wartości 80-90 m, aby mieć margines na nierówności i strefy brzegowe.
        </p>

        <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="article-link-box">
            <span class="article-link-icon">📏</span>
            <span class="article-link-text">Dlaczego 100 metrów to twarda granica? Przeczytaj pełną analizę długości obwodów grzewczych →</span>
        </a>

        <div class="kink-alert-box">
            <div class="kink-icon">⚠️</div>
            <div class="kink-content">
                <h4>Błąd montażu: Załamanie (złamanie) rury</h4>
                <p>
                    Rury PERT i PEX są elastyczne, ale mają swoją granicę. Jeśli przy układaniu rury zginasz ją pod kątem ostrym (bez użycia sprężyny zewnętrznej lub wewnętrznej do gięcia), na zewnętrznym łuku tworzy się <strong>białe przełamanie</strong>. 
                    <br><br>
                    To znak, że struktura polimeru oraz wkładka aluminiowa (w PEX) zostały naruszone. W tym miejscu rura traci wytrzymałość mechaniczną i pod wpływem ciągłych skoków ciśnienia oraz temperatury <strong>pęknie w ciągu 5-10 lat</strong>. Jeśli zobaczysz takie miejsce na budowie – bezwzględnie wytnij je i połącz rurę <strong>systemową złączką zaprasowywaną</strong> (złączki zaciskowe/prasowane można bezpiecznie zatapiać w wylewce, w przeciwieństwie do starych mitów).
                </p>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Limity długości pętli grzewczych i opory hydrauliczne</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Długość pętli (Rura 16x2.0)</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowany opór całkowity</th>
                        <th style="padding: 10px 0; color: #475569;">Status i obciążenie pompy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Do 90 m</td>
                        <td style="padding: 10px 0;">&lt; 1.1 m H₂O</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne (Bezpieczne)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">90 m - 100 m</td>
                        <td style="padding: 10px 0;">~ 1.2 m H₂O</td>
                        <td style="padding: 10px 0; color: #ea580c; font-weight: bold;">Graniczne (Dopuszczalne)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Powyżej 100 m (np. 120 m)</td>
                        <td style="padding: 10px 0;">&gt; 1.45 m H₂O</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Krytyczne (Przeciążenie pompy)</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('loop-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA OPORÓW
    var slider = document.getElementById('loop-slider');
    var valLength = document.getElementById('l-length');
    var valLinear = document.getElementById('l-linear');
    var valTotal = document.getElementById('l-total');
    var bar = document.getElementById('l-bar');
    var msg = document.getElementById('l-msg');

    function updateLoop() {
        var L = parseFloat(slider.value);
        valLength.innerText = L;

        // Wartości z tekstu użytkownika:
        // Opór jedn. = 1.2 mbar/m
        // Opór całkowity (dla 120m) = 144 mbar = 1.47 m H2O
        // Dodatki miejscowe = +40% (uśrednione 30-50%)

        var linearMbar = L * 1.2;
        var totalMbar = linearMbar * 1.4; // dodajemy opory miejscowe i rozdzielacza
        
        // Przelicznik mbar na metry słupa wody (100 mbar to ok. 1.02 m H2O)
        var totalH2O = totalMbar * 0.0102;

        valLinear.innerText = linearMbar.toFixed(1) + ' mbar';
        valTotal.innerText = totalH2O.toFixed(2) + ' m H₂O';

        // Obliczanie paska (skala do 150m)
        var percent = (L / 150) * 100;
        bar.style.width = percent + '%';

        if (L <= 90) {
            bar.style.backgroundColor = 'var(--success)';
            msg.innerText = "✅ Optymalna długość pętli. Woda przepłynie bez obciążania pompy.";
            msg.className = "sim-msg msg-success";
        } else if (L <= 100) {
            bar.style.backgroundColor = 'var(--warning)';
            msg.innerText = "⚠️ Długość graniczna! Zbliżasz się do maksymalnych akceptowalnych oporów dla rury 16mm.";
            msg.className = "sim-msg msg-warning";
        } else {
            bar.style.backgroundColor = 'var(--danger)';
            msg.innerText = "❌ Katastrofa hydrauliczna! Opór drastycznie przewyższa normę. Pętla nie dogrzeje pomieszczenia.";
            msg.className = "sim-msg msg-danger";
        }
    }

    slider.addEventListener('input', updateLoop);
    updateLoop(); // Inicjalizacja
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

/* Dodano lekki margines górny dla całego kontenera w związku z H2 */
.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

/* Nowy styl dla H2 */
.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container {
        flex-direction: column;
        text-align: center;
        padding: 25px;
    }
    .expert-tip-photo-wrap {
        margin-bottom: 10px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe zalecenia inżynierskie przed wylewką betonu",
    "description": "Zestawienie procedur weryfikacyjnych dla inwestora przed przyjazdem betoniarki, mających na celu zapewnienie zgodności montażu z projektem hydraulicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Dokumentacja fotograficzna",
        "description": "Rzetelna inwentaryzacja powykonawcza przed ukryciem rur."
      },
      {
        "@type": "PropertyValue",
        "name": "Weryfikacja układu pętli",
        "description": "Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym."
      },
      {
        "@type": "PropertyValue",
        "name": "Zgodność z obliczeniami",
        "description": "Gwarancja osiągnięcia zakładanej mocy grzewczej oraz optymalizacji kosztów eksploatacji."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">🛡️</span>Robert Kucharski: Moja rekomendacja dla inwestorów</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Twoja polisa bezpieczeństwa</span>
            <p class="expert-tip-text">
                "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant. Tylko pełna zgodność z obliczeniami hydraulicznymi gwarantuje, że Twoje ogrzewanie osiągnie zakładaną moc i niskie koszty eksploatacji."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zalecenia inżynierskie przed wylewką betonu</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Działanie inwestora</th>
                        <th style="padding: 10px 0; color: #475569;">Cel i rekomendacja inżynierska</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Dokumentacja fotograficzna</td>
                        <td style="padding: 10px 0;">Rzetelna inwentaryzacja powykonawcza przed ukryciem rur.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Weryfikacja układu pętli</td>
                        <td style="padding: 10px 0;">Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zgodność z obliczeniami</td>
                        <td style="padding: 10px 0;">Gwarancja osiągnięcia zakładanej mocy grzewczej i niskich kosztów.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; font-family: sans-serif; border-radius: 20px; width: 100%;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="margin-top:0; font-size: 20px; font-weight: bold; margin-bottom: 10px;">Wskazówka ekspercka chroniona prawem autorskim</div>
                    <p style="font-size: 14px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

.premium-params {
    max-width: 1150px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.params-title {
    text-align: center;
    margin-bottom: 40px;
}

.params-title h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: var(--primary);
}

.params-title p {
    color: #64748b;
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
}

.param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.param-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #f1f5f9;
    padding: 25px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.param-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.12);
    border-color: #bfdbfe;
}

.card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #e2e8f0;
}

.icon-box {
    width: 42px;
    height: 42px;
    background: #eff6ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.header-text h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.header-text span {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.result-box {
    background: var(--bg-light);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    margin-bottom: 15px;
    border-top: 3px solid var(--accent);
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.r-thick {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.r-value {
    display: inline-block;
    background: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--accent);
    margin-top: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.justification {
    font-size: 12px;
    line-height: 1.5;
    color: #475569;
    margin: 0;
    background: #f8fafc;
    padding: 12px;
    border-radius: 10px;
    border-left: 3px solid #cbd5e1;
}

.justification strong {
    color: var(--danger);
}

@media (max-width: 950px) {
    .param-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Ściąga parametrów technicznych do montażu ogrzewania podłogowego",
  "description": "Zestawienie najważniejszych wartości technicznych i normatywnych wymaganych podczas budowy instalacji HVAC (podłogówki).",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    { "@type": "PropertyValue", "name": "Grubość styropianu na gruncie", "value": "15-20", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Folia PE pod styropian (grubość)", "value": "0.2", "unitText": "mm" },
    { "@type": "PropertyValue", "name": "Wysokość taśmy brzegowej ponad wylewkę", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (środek pomieszczenia)", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (strefa brzegowa)", "value": "10", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Maksymalna długość pętli PEX 16x2", "value": "90", "unitCode": "MTR" },
    { "@type": "PropertyValue", "name": "Ciśnienie próby szczelności", "value": "6", "unitCode": "BAR" },
    { "@type": "PropertyValue", "name": "Czas dojrzewania jastrychu cementowego", "value": "28", "unitText": "dni" },
    { "@type": "PropertyValue", "name": "Wygrzewanie wstępne (Start)", "value": "20", "unitText": "°C" }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-params" id="params-app">
    <div class="params-title">
        <h2>Tabela parametrów technicznych</h2>
        <p>Ściąga dla samodzielnego montażu – najważniejsze wartości w pigułce.</p>
    </div>

    <div class="param-grid">
        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🧱</div>
                <div class="header-text">
                    <span>Podstawa</span>
                    <h4>Grubość styropianu na gruncie</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 - 20 cm</span>
                <span class="r-value">EPS 100 lub EPS 200</span>
            </div>
            <p class="justification"><strong>Wymóg WT2021:</strong> Zapobiega ucieczce ciepła do gruntu.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🛡️</div>
                <div class="header-text">
                    <span>Izolacja</span>
                    <h4>Folia PE pod styropian</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Min. 0,2 mm</span>
                <span class="r-value">Zakład 15 cm</span>
            </div>
            <p class="justification"><strong>Paroizolacja!</strong> Chroni styropian przed wilgocią z chudziaka.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🎗️</div>
                <div class="header-text">
                    <span>Dylatacja</span>
                    <h4>Taśma brzegowa</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Wysokość min. 15 cm</span>
                <span class="r-value">Powyżej poziomu wylewki</span>
            </div>
            <p class="justification"><strong>Uwaga:</strong> Odciąć nadmiar dopiero po ułożeniu docelowych paneli/płytek!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🦶</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa komfortu)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 cm</span>
                <span class="r-value">Środek pomieszczenia</span>
            </div>
            <p class="justification"><strong>Optimum dla pompy ciepła.</strong> Gwarantuje brak "zebry termicznej".</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🪟</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa brzegowa)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">10 cm</span>
                <span class="r-value">Gęstsze ułożenie</span>
            </div>
            <p class="justification"><strong>Zastosowanie:</strong> Przy dużych oknach i drzwiach balkonowych, gdzie straty są największe.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🔄</div>
                <div class="header-text">
                    <span>Ograniczenia</span>
                    <h4>Maksymalna długość pętli</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">90 m</span>
                <span class="r-value">Absolutne max: 100 m</span>
            </div>
            <p class="justification">Dla rury PEX 16x2. <strong>Zasada:</strong> Różnica długości pętli na jednym rozdzielaczu max 10%.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🗜️</div>
                <div class="header-text">
                    <span>Bezpieczeństwo</span>
                    <h4>Ciśnienie próby szczelności</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">6 barów</span>
                <span class="r-value">0,6 MPa</span>
            </div>
            <p class="justification"><strong>Kluczowe:</strong> Utrzymywać rury pod takim ciśnieniem podczas betonowania!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">⏳</div>
                <div class="header-text">
                    <span>Wylewka</span>
                    <h4>Czas dojrzewania jastrychu</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">28 dni</span>
                <span class="r-value">Dla jastrychu cementowego</span>
            </div>
            <p class="justification">Przed pierwszym uruchomieniem pompy. <strong>Bezwzględnie bez grzania!</strong></p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🌡️</div>
                <div class="header-text">
                    <span>Eksploatacja</span>
                    <h4>Wygrzewanie wstępne</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Start od 20°C</span>
                <span class="r-value">Codziennie +5°C</span>
            </div>
            <p class="justification">Stopniowe podnoszenie temperatury <strong>zapobiega szokowi termicznemu</strong> i pękaniu betonu.</p>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 20px; margin-top: 40px; font-family: sans-serif;">
            <h3 style="margin-top: 0;">Parametry techniczne: Ogrzewanie podłogowe</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px;">Obszar instalacji</th>
                        <th style="padding: 10px;">Parametr techniczny</th>
                        <th style="padding: 10px;">Zalecana wartość</th>
                        <th style="padding: 10px;">Uzasadnienie inżynieryjne</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Podstawa (grunt)</td>
                        <td style="padding: 10px; font-weight: bold;">Grubość styropianu</td>
                        <td style="padding: 10px;">15 - 20 cm (EPS 100/200)</td>
                        <td style="padding: 10px;">Zgodność z WT2021, izolacja od gruntu.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Izolacja</td>
                        <td style="padding: 10px; font-weight: bold;">Folia PE</td>
                        <td style="padding: 10px;">Min. 0.2 mm (15 cm zakład)</td>
                        <td style="padding: 10px;">Paroizolacja, ochrona przed wilgocią.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Dylatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Taśma brzegowa</td>
                        <td style="padding: 10px;">Min. 15 cm ponad wylewkę</td>
                        <td style="padding: 10px;">Odcinać dopiero po ułożeniu posadzki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (środek)</td>
                        <td style="padding: 10px;">15 cm</td>
                        <td style="padding: 10px;">Optymalne dla pomp ciepła, brak zebry.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (brzeg)</td>
                        <td style="padding: 10px;">10 cm</td>
                        <td style="padding: 10px;">Kompensacja dużych strat przy oknach.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Ograniczenia</td>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość pętli</td>
                        <td style="padding: 10px;">90 m (Max 100 m)</td>
                        <td style="padding: 10px;">Dla rury 16x2. Max różnica dł. to 10%.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Bezpieczeństwo</td>
                        <td style="padding: 10px; font-weight: bold;">Próba szczelności</td>
                        <td style="padding: 10px;">6 barów (0.6 MPa)</td>
                        <td style="padding: 10px;">Ciśnienie musi być stałe podczas betonowania.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Wylewka</td>
                        <td style="padding: 10px; font-weight: bold;">Czas dojrzewania</td>
                        <td style="padding: 10px;">28 dni</td>
                        <td style="padding: 10px;">Dla cementu. Brak grzania w tym czasie!</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px;">Eksploatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Wygrzewanie wstępne</td>
                        <td style="padding: 10px;">Start od 20°C (+5°C / doba)</td>
                        <td style="padding: 10px;">Zapobiega szokowi termicznemu betonu.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock)
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appElement = document.getElementById('params-app');
        if (appElement) {
            appElement.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: 20px;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ta tabela techniczna jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i została wklejona na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.calc-intro p {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator ilości rury do ogrzewania podłogowego",
    "description": "Narzędzie inżynierskie pozwalające oszacować wymaganą długość rury grzewczej i liczbę pętli na podstawie powierzchni, długości ścian zewnętrznych i rozstawu rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę główną",
        "value": "Powierzchnia / Rozstaw rur w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę brzegową",
        "value": "2 * Długość ścian zewnętrznych w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na całkowitą długość",
        "value": "Strefa główna + Strefa brzegowa"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna bezpieczna długość pętli (Dzielnik obwodów)",
        "value": "90",
        "unitCode": "MTR"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator ilości rury PEX (Ogrzewanie Podłogowe)",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Profesjonalny kalkulator do obliczania zapotrzebowania na rurę grzewczą z uwzględnieniem zagęszczenia w strefach brzegowych oraz limitów hydraulicznych pętli.",
    "featureList": [
      "Obliczanie całkowitej długości rury",
      "Podział na strefę główną i brzegową",
      "Sugestia wymaganej liczby pętli na rozdzielaczu"
    ]
  }
]
</script>

<div class="calc-intro">
    <h2>Prosty kalkulator ilości rury dla majsterkowicza</h2>
    <p>Oszacuj, ile metrów rury potrzebujesz do swojego pomieszczenia i sprawdź, czy woda da radę ją przepchnąć! Narzędzie oparte o wytyczne inżynierów z <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wynik wyraźnie wskaże Ci, czy podłogę musisz podzielić na kilka pętli grzewczych na rozdzielaczu.</p>
</div>

<div class="screed-calc" id="pipe-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Wymiary pomieszczenia</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="v-area">30</span> m²</span></div>
                <input type="range" id="area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Łączna dł. ścian zewnętrznych</label><span class="val-badge"><span id="v-walls">10</span> m</span></div>
                <input type="range" id="walls" min="0" max="30" step="1" value="10">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Ściany, przez które ucieka ciepło (tu zagęszczamy rurę).</div>
            </div>

            <span class="section-title">2. Planowany rozstaw rur</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="btn-roz-10">10 cm<span style="font-size:10px; font-weight:400">Gęsty (Łazienki / Pompa Ciepła)</span></div>
                <div class="type-btn active" id="btn-roz-15">15 cm<span style="font-size:10px; font-weight:400">Standard / Optymalny</span></div>
                <div class="type-btn" id="btn-roz-20">20 cm<span style="font-size:10px; font-weight:400">Rzadszy</span></div>
                <div class="type-btn" id="btn-roz-25">25 cm<span style="font-size:10px; font-weight:400">Tylko jako tło cieplne</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana całkowita długość rury</span>
                <span class="score-num" id="resTotal">--</span>
                <span class="score-label">metrów</span>
                <div id="risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Rura w części głównej:</span><strong id="resMain">--</strong></div>
                <div class="tech-item"><span>Rura w strefie brzegowej (okna):</span><strong id="resEdge">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Wymagana liczba pętli (obwodów):</span><strong id="resLoops">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; font-weight:700">PROPORCJA ZUŻYCIA RURY:</div>
            <div style="height:12px; display:flex; border-radius:6px; overflow:hidden; margin-top:10px; background:#e2e8f0">
                <div id="bar-main" style="background:var(--accent); width:80%; transition: 0.3s;"></div>
                <div id="bar-edge" style="background:#94a3b8; width:20%; transition: 0.3s;"></div>
            </div>
            <div style="display: flex; justify-content: space-between; font-size: 10px; color: #64748b; margin-top: 5px;">
                <span>Powierzchnia główna</span>
                <span>Zagęszczenie pod ścianami</span>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Chcesz obliczyć cały dom?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten uproszczony wzór świetnie sprawdza się do szybkiej estymacji jednego pokoju. Jeśli chcesz zaprojektować rozdzielacz dla całego domu, skorzystaj z naszego zaawansowanego narzędzia.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                KOMPLEKSOWY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT INŻYNIERSKI
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Metodyka obliczeń zapotrzebowania na rurę</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Zużycie na 1 m²</th>
                        <th style="padding: 10px 0; color: #475569;">Komentarz</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~10.0 m</td>
                        <td style="padding: 10px 0;">Łazienki i pompy ciepła.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~6.6 m</td>
                        <td style="padding: 10px 0;">Standard rynkowy.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~4.0 m</td>
                        <td style="padding: 10px 0;">Wyłącznie jako tło cieplne.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                <strong>Wzór:</strong> Całkowita długość = (Powierzchnia / Rozstaw) + (2 * Długość ścian zewnętrznych).<br>
                Zgodnie z prawami fizyki, pojedyncza pętla z rury 16x2.0 nie powinna przekraczać 100 metrów ze względu na opory hydrauliczne.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pipe-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    var spacingMeters = 0.15; // Domyślny rozstaw to 15 cm
    var SAFE_LOOP_LIMIT = 90; // Oczekiwany dzielnik długości pętli
    var MAX_LOOP_LIMIT = 100; // Bezwzględny limit pętli
    
    function updateCalc() {
        var areaEl = document.getElementById('area');
        var wallsEl = document.getElementById('walls');
        
        if(!areaEl || !wallsEl) return;

        var area = parseFloat(areaEl.value);
        var walls = parseFloat(wallsEl.value);
        
        // Aktualizacja widoków wartości na suwakach
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-walls').innerText = walls;

        // MATEMATYKA ZGODNA ZE WZOREM: (Powierzchnia / Rozstaw) + (2 * Ściany)
        var mainLength = area / spacingMeters;
        var edgeLength = 2 * walls;
        var totalLength = mainLength + edgeLength;
        
        // Obliczanie ilości pętli (zaokrąglanie w górę, docelowa pętla to 90m)
        var requiredLoops = Math.ceil(totalLength / SAFE_LOOP_LIMIT);
        
        // Aktualizacja wartości w widoku
        document.getElementById('resTotal').innerText = Math.round(totalLength);
        document.getElementById('resMain').innerText = Math.round(mainLength) + ' m';
        document.getElementById('resEdge').innerText = Math.round(edgeLength) + ' m';
        document.getElementById('resLoops').innerText = requiredLoops + (requiredLoops === 1 ? ' pętla' : (requiredLoops > 4 ? ' pętli' : ' pętle'));

        // Logika ostrzeżeń i kolorów
        var mBox = document.getElementById('mainBox');
        var rMsg = document.getElementById('risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (totalLength > MAX_LOOP_LIMIT) { 
            warnings.push('❌ <strong>Stanowczo za dużo!</strong> Długość przekracza bezpieczny limit (100 m). Zgodnie z fizyką przepływu, pompa nie podoła oporom hydraulicznym.<br><br>Pomieszczenie musi zostać podzielone na co najmniej <strong>' + requiredLoops + ' osobne pętle</strong> na rozdzielaczu!'); 
            boxColor = 'var(--danger)'; 
        } else if (totalLength > SAFE_LOOP_LIMIT) { 
            warnings.push('⚠️ <strong>Zwróć uwagę:</strong> Zbliżasz się do granicy wydajności pompy obiegowej (90-100m). Rozważ podzielenie na 2 pętle.'); 
            boxColor = 'var(--warning)'; 
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
        } else {
            rMsg.style.display = 'none';
        }
        mBox.style.borderColor = boxColor;

        // Pasek postępu (proporcje)
        var barTotal = totalLength > 0 ? totalLength : 1; // zapobieganie dzieleniu przez zero
        document.getElementById('bar-main').style.width = ((mainLength / barTotal) * 100) + '%';
        document.getElementById('bar-edge').style.width = ((edgeLength / barTotal) * 100) + '%';
    }

    // Obsługa przycisków rozstawu
    var spacingOptions = {
        'btn-roz-10': 0.10,
        'btn-roz-15': 0.15,
        'btn-roz-20': 0.20,
        'btn-roz-25': 0.25
    };

    var btnKeys = Object.keys(spacingOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    spacingMeters = spacingOptions[btnId];
                    // Reset klas active
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    // Obsługa suwaków
    var areaInput = document.getElementById('area');
    var wallsInput = document.getElementById('walls');
    
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(wallsInput) wallsInput.addEventListener('input', updateCalc);

    // Inicjalizacja
    updateCalc();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-myth-box {
    max-width: 1050px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.myth-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.myth-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

.myth-header p {
    margin: 0 auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.myth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px;
    background: #ffffff;
}

/* FLIP CARD STYLES */
.flip-card {
    background-color: transparent;
    width: 100%;
    min-height: 350px;
    perspective: 1000px;
    cursor: pointer;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
}

.flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
}

.flip-card-front {
    background-color: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}

.flip-card-back {
    background-color: #f0fdf4;
    border-color: #bbf7d0;
    color: var(--success);
    transform: rotateY(180deg);
}

.card-icon {
    font-size: 42px;
    margin-bottom: 15px;
    line-height: 1;
}

.card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    opacity: 0.8;
}

.card-text {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.flip-card-back .card-title {
    color: var(--success);
}

.flip-card-back .card-text {
    font-size: 14px;
    font-weight: 500;
    color: #166534;
    line-height: 1.6;
}

.flip-hint {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.8);
    padding: 6px 16px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.myth-summary {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
}

.myth-summary h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.myth-summary p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
}

@media (max-width: 900px) {
    .myth-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .flip-card { min-height: 280px; }
    .myth-summary { margin: 0 20px 25px 20px; padding: 25px 20px; }
    .myth-header { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Fakty i mity o samodzielnym montażu ogrzewania podłogowego",
  "description": "Zestawienie najczęstszych błędnych przekonań inwestorów dotyczących testów szczelności, rozstawu rur i limitów hydraulicznych w systemach podłogowych.",
  "license": "https://projekt-ogrzewania.pl/",
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-myth-box" id="diy-myth-app">
    <div class="myth-header">
        <h3>Fakty i Mity Samodzielnego Montażu</h3>
        <p>Wpisując w sieć "jak samemu zrobić podłogówkę", łatwo trafić na porady, które po wylaniu betonu zamienią się w koszmar. <strong>Kliknij kartę, aby obalić najgroźniejsze mity.</strong></p>
    </div>

    <div class="myth-grid">
        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">💧</div>
                    <div class="card-title">MIT #1</div>
                    <p class="card-text">"Szybkie sprawdzenie z węża ogrodowego na 2 bary wystarczy, żeby upewnić się, że nie ma przecieków."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">🏗️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To punkt bez powrotu!</strong> Próba musi wynosić min. 6 barów przez 24 godziny. Co więcej, rury bezwzględnie <strong>muszą być pod ciśnieniem podczas wylewania betonu</strong>. Inaczej wibracje i masa wylewki mogą rozszczelnić zluzowane złączki, a awarię zauważysz po roku.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🦓</div>
                    <div class="card-title">MIT #2</div>
                    <p class="card-text">"Standard to 15 cm, ale jak rozłożę rury co 25 cm, to i tak będzie ciepło, a oszczędzę na materiale."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">📉</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Stworzysz "zebrę termiczna".</strong> Fizyka jest bezlitosna – poczujesz stopą naprzemienne pasy chłodu i ciepła (różnica 5-7°C). Co gorsza, aby dogrzać dom, będziesz musiał podnieść temperaturę na kotle, drastycznie obniżając sprawność układu (COP).</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🔄</div>
                    <div class="card-title">MIT #3</div>
                    <p class="card-text">"Zrobię jedną długą pętlę na cały salon (np. 140 metrów), to będzie mniej rur i szybciej pójdzie."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">⚠️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Zabijesz pompę obiegową.</strong> Absolutny limit dla rury PEX 16mm to 90-100 metrów. Przy zbyt długiej pętli opór hydrauliczny przewyższy możliwości tłoczenia pompy. W efekcie woda nie popłynie w ogóle, a połowa salonu pozostanie zimna.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="myth-summary">
        <h4>Podsumowanie: Beton nie wybacza</h4>
        <p>Montaż ogrzewania podłogowego to praca inżynierska z zakresu mechaniki płynów, a nie tylko zabawa w układanie wężyków na styropianie. Brak odpowiednich dylatacji, złe opory hydrauliczne i zaoszczędzenie kilku złotych na projekcie niemal zawsze kończy się remontem i skuwaniem płytek przy użyciu młota udarowego. <strong>Projekt i obliczenia to fundament sukcesu.</strong></p>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a;">Najczęstsze mity przy montażu ogrzewania podłogowego</h2>
            <ul style="font-size: 14px; color: #334155; line-height: 1.6;">
                <li><strong>MIT 1: Szybkie sprawdzenie szczelności na 2 bary wystarczy.</strong><br>
                FAKT: Próba musi wynosić min. 6 barów przez 24h. Rury muszą być pod ciśnieniem podczas wylewania betonu, aby uniknąć mikrorozszczelnień na złączkach.</li>
                <li><strong>MIT 2: Rozstaw rur co 25 cm pozwala na oszczędności bez utraty komfortu.</strong><br>
                FAKT: Powstaje "zebra termiczna" (odczuwalne zimne pasy). Wymusza to podniesienie temperatury wody, co drastycznie obniża sprawność pompy ciepła (COP).</li>
                <li><strong>MIT 3: Można robić pętle o długości 140 metrów.</strong><br>
                FAKT: Granica dla rury 16mm to 100m. Powyżej tej długości opór hydrauliczny blokuje przepływ wody, a pompa obiegowa ulega przeciążeniu.</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock - Czysty JS)
document.addEventListener('DOMContentLoaded', function() {
    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('diy-myth-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>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To zestawienie mitów budowlanych jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało wklejone na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

.premium-faq-box {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.faq-header {
    padding: 40px 40px 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
    position: relative;
}

.faq-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--accent);
}

.faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent-light);
    color: var(--accent);
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.faq-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

.faq-header p {
    margin: 0;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.6;
}

.faq-content {
    padding: 20px 40px 40px 40px;
}

/* INTERAKTYWNY AKORDEON Z MIKRO-INTERAKCJAMI */
.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
    border-left: 4px solid transparent;
    padding-left: 15px;
    margin-bottom: 10px;
    border-radius: 8px;
}

.faq-item:hover {
    background: #f8fafc;
    border-left-color: #cbd5e1;
}

.faq-item.active {
    background: #ffffff;
    border-left-color: var(--accent);
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    padding-bottom: 10px;
    border-bottom: 1px solid transparent;
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 20px 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-family: inherit;
    transition: color 0.2s ease;
}

.faq-question:hover {
    color: var(--accent);
}

.faq-q-icon {
    font-size: 22px;
    flex-shrink: 0;
    filter: grayscale(0.2);
    transition: 0.3s;
}

.faq-item.active .faq-q-icon {
    filter: grayscale(0);
    transform: scale(1.1);
}

.faq-q-text {
    flex-grow: 1;
    padding-right: 20px;
}

.faq-toggle-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    font-size: 18px;
    font-weight: 300;
    transition: transform 0.4s ease, background 0.3s ease, color 0.3s ease;
    border: 1px solid #e2e8f0;
}

.faq-item.active .faq-toggle-icon {
    transform: rotate(45deg);
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent);
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
}

.faq-item.active .faq-question {
    color: var(--accent);
}

/* Animacja otwierania CSS Grid Trick */
.faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.active .faq-answer-wrapper {
    grid-template-rows: 1fr;
}

.faq-answer-inner {
    overflow: hidden;
}

.faq-answer-text {
    padding: 0 0 15px 37px; /* Wcięcie wyrównujące tekst z nagłówkiem */
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

.faq-answer-text strong {
    color: var(--primary);
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 20px 25px 20px; }
    .faq-content { padding: 10px 20px 30px 20px; }
    .faq-question { font-size: 15px; padding: 15px 0; }
    .faq-toggle-icon { width: 28px; height: 28px; font-size: 16px; }
    .faq-answer-text { padding-left: 0; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "license": "https://projekt-ogrzewania.pl/",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Jakie ciśnienie powinna mieć próba szczelności podłogówki i jak długo trwać?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Złoty standard to minimum 6 barów (0,6 MPa) utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie pozostać pod ciśnieniem podczas wylewania jastrychu, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć ewentualne uszkodzenie łopatą.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Gdzie koniecznie trzeba zastosować dylatacje w wylewce?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dylatacje są bezwzględnie wymagane w progach drzwiowych, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy osłonić peszlem na odcinku min. 30 cm.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaki jest optymal rozstaw rur ogrzewania podłogowego dla pompy ciepła?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dla pomp ciepła zaleca się rozstaw 15 cm w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do 10 cm w łazienkach i tzw. strefach brzegowych (przy dużych oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie odczuwalnej dla stóp 'zebry termicznej' i obniża sprawność (COP) układu.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaka grubość styropianu na gruncie jest wymagana pod podłogówkę?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Aby spełnić normy Warunków Technicznych (WT 2021), wymagane jest minimum 12-15 cm styropianu EPS 100 lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Ile wynosi maksymalna długość pętli z rury PEX 16 mm?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Absolutne maksimum dla rury 16x2.0 mm to 100 metrów, jednak w profesjonalnych projektach zaleca się nie przekraczać 80-90 metrów. Zbyt długa pętla stawia opór hydrauliczny przekraczający możliwości standardowej pompy obiegowej, co skutkuje brakiem przepływu i niedogrzaniem pomieszczenia.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    }
  ]
}
</script>

<div class="premium-faq-box" id="faq-app-lock">
    <div class="faq-header">
        <div class="faq-badge">Baza Wiedzy</div>
        <h3>O to najczęściej pytają inwestorzy</h3>
        <p>Krótkie i konkretne odpowiedzi na najważniejsze pytania dotyczące prawidłowego wykonania instalacji ogrzewania podłogowego.</p>
    </div>

    <div class="faq-content">
        
        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💦</span>
                <span class="faq-q-text">1. Jakie ciśnienie powinna mieć próba szczelności i jak długo trwać?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Złoty standard to <strong>minimum 6 barów (0,6 MPa)</strong> utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie <strong>pozostać pod ciśnieniem podczas wylewania jastrychu</strong>, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć na manometrze ewentualne uszkodzenie mechaniczne (np. łopatą).
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💥</span>
                <span class="faq-q-text">2. Gdzie koniecznie trzeba zastosować dylatacje w wylewce?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dylatacje są bezwzględnie wymagane w <strong>progach drzwiowych</strong>, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość jednego boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy <strong>osłonić peszlem</strong> na odcinku min. 30 cm, aby pracujący beton jej nie przeciął.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🦓</span>
                <span class="faq-q-text">3. Jaki jest optymalny rozstaw rur podłogówki dla pompy ciepła?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dla pomp ciepła zaleca się <strong>rozstaw 15 cm</strong> w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do <strong>10 cm</strong> w łazienkach i tzw. strefach brzegowych (przy oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie "zebry termicznej" i wymusza podniesienie temperatury zasilania, co drastycznie obniża sprawność układu.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🧱</span>
                <span class="faq-q-text">4. Jaka grubość styropianu na gruncie jest wymagana pod rury?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Aby spełnić aktualne normy (WT 2021), wymagane jest <strong>minimum 12-15 cm styropianu EPS 100</strong> lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe przez cały okres życia budynku.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🔄</span>
                <span class="faq-q-text">5. Ile wynosi maksymalna bezpieczna długość pętli z rury 16 mm?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Absolutne maksimum dla rury 16x2.0 mm to <strong>100 metrów</strong>, jednak w profesjonalnych projektach inżynierskich zaleca się nie przekraczać <strong>80-90 metrów</strong>. Zbyt długa pętla stwarza opór hydrauliczny przekraczający możliwości tłoczenia standardowej pompy obiegowej, co ostatecznie skutkuje brakiem przepływu.
                    </p>
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 20px;">Najczęściej zadawane pytania (Baza Wiedzy)</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px; color: #475569;">Pytanie</th>
                        <th style="padding: 10px; color: #475569;">Odpowiedź eksperta</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jakie ciśnienie próby szczelności?</td>
                        <td style="padding: 10px;">Minimum 6 barów przez 24h. Zostawić ciśnienie na czas wylewki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Gdzie stosować dylatacje?</td>
                        <td style="padding: 10px;">Progi, narożniki, pola > 40 m2. Przejścia osłonić peszlem (30 cm).</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jaki rozstaw dla pompy ciepła?</td>
                        <td style="padding: 10px;">Środek: 15 cm. Przy oknach: 10 cm. Zapobiega to zebrom termicznym.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Grubość izolacji EPS na gruncie?</td>
                        <td style="padding: 10px;">Min. 12-15 cm EPS 100 zgodnie z WT 2021. Zapobiega stratom ciepła.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość rury w pętli?</td>
                        <td style="padding: 10px;">Zalecane 80-90m, bezwzględne max 100m. Zapobiega przeciążeniu pompy.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA AKORDEONU
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const questionBtn = item.querySelector('.faq-question');
        
        questionBtn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamyka pozostałe
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
            });

            // Otwiera/Zamyka kliknięty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(59,130,246,0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(59, 130, 246, 0.6);
    background: #2563eb;
}

.sum-btn-secondary {
    background: transparent;
    color: #ffffff !important;
    border: 2px solid #475569;
}

.sum-btn-secondary:hover {
    border-color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Beton nie wybacza - błędy przy montażu ogrzewania podłogowego",
    "abstract": "Samodzielny montaż ogrzewania podłogowego to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to kluczowa inwestycja zapewniająca bezpieczeństwo na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza ryzyka samodzielnego montażu podłogówki",
    "description": "Zestawienie porównawcze oszczędności na projekcie versus koszty naprawy błędów montażowych po wylaniu betonu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏁</span>
            <h2>Podsumowanie: Beton nie wybacza</h2>
        </div>

        <p class="summary-text">
            Decydując się na samodzielne wykonanie instalacji ogrzewania podłogowego, stajesz przed <strong>zadaniem inżynierskim</strong>, a nie tylko pracą fizyczną. Pięć wymienionych błędów – od braku ciśnienia podczas wylewki, przez ignorowanie dylatacji, po zbyt długie pętle – to problemy, które w przeciwieństwie do krzywo przyklejonej tapety, <strong>zostaną z Tobą na zawsze pod warstwą płytek i wylewki.</strong>
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card bad-choice">
                <span class="risk-label">Fałszywa Oszczędność</span>
                <span class="risk-value">1 000 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz rezygnując z projektu lub zagęszczenia rur. Może to jednak skutkować koniecznością <strong>skucia całej podłogi za 10 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Prawdziwa Inwestycja</span>
                <span class="risk-value">30 Lat</span>
                <p class="risk-desc">Projekt i precyzyjne wyliczenia to jedyna inwestycja w tej układance, która nie wymaga wylewki, a daje <strong>zwrot w postaci cichej i taniej pracy instalacji przez dekady.</strong></p>
            </div>
        </div>

        <p class="summary-text">
            Traktuj ten artykuł jako kompendium wiedzy i <strong>listę kontrolną, którą musisz odhaczyć przed przyjazdem betoniarki</strong>. A jeśli poczujesz, że wyliczenia hydrauliczne lub cieplne Cię przerastają – skonsultuj się z profesjonalistą.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="sum-btn sum-btn-primary">
                📐 SKONSULTUJ SIĘ Z PROJEKTANTEM
            </a>
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-secondary">
                📖 CZYTAJ NASZ BLOG
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ryzyka samodzielnego montażu podłogówki</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Podejście do inwestycji</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Szacowany koszt początkowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Konsekwencje</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Oszczędność na projekcie</td>
                        <td style="padding: 10px 0; color: #ef4444;">-1000 PLN (pozornie)</td>
                        <td style="padding: 10px 0;">Ryzyko skucia posadzki i wysokich rachunków.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Profesjonalny projekt</td>
                        <td style="padding: 10px 0; color: #10b981;">Koszt rynkowy</td>
                        <td style="padding: 10px 0;">Gwarancja cichej i taniej pracy przez min. 30 lat.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielny montaż to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to jedyna pewna polisa bezpieczeństwa.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe wodne bez wylewki.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 18 Apr 2026 10:24:49 +0000</pubDate>
				<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Domy drewniane]]></category>
		<category><![CDATA[Domy szkieletowe]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Nowoczesne systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady dla domu]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady remontowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Remont i modernizacja]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[koszty systemu suchego]]></category>
		<category><![CDATA[lamele aluminiowe]]></category>
		<category><![CDATA[lekka podłogówka]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne bez wylewki]]></category>
		<category><![CDATA[ogrzewanie w domu szkieletowym]]></category>
		<category><![CDATA[ogrzewanie w kamienicy]]></category>
		<category><![CDATA[płyty eps z wypustkami]]></category>
		<category><![CDATA[podłogówka na sucho]]></category>
		<category><![CDATA[projektowanie podłogówki]]></category>
		<category><![CDATA[remont starego domu]]></category>
		<category><![CDATA[suchy jastrych]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[test szczelności instalacji]]></category>
		<category><![CDATA[układanie podłogówki]]></category>
		<category><![CDATA[wady ogrzewania bez wylewki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4218</guid>

					<description><![CDATA[<p>Zastanawiasz się nad montażem popularnej podłogówki, ale Twój drewniany strop w starej kamienicy po prostu nie wytrzyma ciężaru kilkutonowej warstwy betonu? A może budujesz nowoczesny dom szkieletowy i zależy Ci na błyskawicznym czasie realizacji bez wprowadzania do wnętrza wilgoci technologicznej? Odpowiedzią na te problemy jest ogrzewanie podłogowe wodne bez wylewki, znane powszechnie jako system suchy. To zaawansowane rozwiązanie inżynieryjne, które zamiast ciężkiego jastrychu wykorzystuje lekkie płyty izolacyjne oraz precyzyjne lamele aluminiowe. W naszym kompletnym przewodniku rozkładamy tę technologię na czynniki pierwsze. Obalamy szkodliwe mity, tłumaczymy jak prawidłowo zaplanować moc grzewczą, by uniknąć niedogrzania, oraz wskazujemy krytyczne pułapki montażowe. Dowiedz się, kiedy rezygnacja z betonu to jedyna słuszna decyzja i o co zapytać instalatora przed rozpoczęciem prac.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">Ogrzewanie podłogowe wodne bez wylewki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(37,99,235,0.05) 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: 45px 50px;
    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-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>📚</span> Kompletny Przewodnik
        </div>
        
        <p class="hero-text"><strong>Ogrzewanie podłogowe wodne bez wylewki</strong> to rozwiązanie, które w ostatnich latach zyskuje ogromną popularność wśród inwestorów indywidualnych, właścicieli starych kamienic oraz wszystkich tych, którzy chcą cieszyć się komfortem ciepłej podłogi bez konieczności wylewania ton betonu.</p>
        
        <p class="hero-text">W przeciwieństwie do tradycyjnej podłogówki, gdzie rury są zalewane grubą warstwą jastrychu, system suchy opiera się na prefabrykowanych płytach izolacyjnych i aluminiowych elementach przewodzących ciepło. W tym obszernym, technicznym opracowaniu przeprowadzę Cię krok po kroku przez wszystkie aspekty tej technologii.</p>

        <div class="hero-modules-title">Czego dowiesz się z tego opracowania?</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">🔍</span>
                <span class="hero-card-title">Zasada działania i anatomia</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🧮</span>
                <span class="hero-card-title">Wyliczenia mocy grzewczej</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🛠️</span>
                <span class="hero-card-title">Praktyczne porady montażowe</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">📈</span>
                <span class="hero-card-title">Analiza opłacalności (ROI)</span>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('hero-app-container').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: 300px;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Treść chroniona prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-anatomy-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.anatomy-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.anatomy-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.anatomy-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.anatomy-header p:last-child {
    margin-bottom: 0;
}

.anatomy-header a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #bfdbfe;
    text-underline-offset: 3px;
}

.anatomy-workspace {
    display: flex;
    min-height: 500px;
}

/* LEWA STRONA - STOS WARSTW (PRZEKRÓJ) */
.anatomy-layers {
    width: 40%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px;
    gap: 12px;
}

.layer-btn {
    position: relative;
    width: 100%;
    padding: 18px 20px;
    border-radius: 12px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    overflow: hidden;
}

.layer-btn::before {
    content: '';
    position: absolute;
    left: 0; top: 0; height: 100%; width: 6px;
    background: #cbd5e1;
    transition: all 0.3s;
}

/* Kolory poszczególnych warstw */
.layer-btn[data-layer="finish"]::before { background: #b45309; } /* Drewno/Płytka */
.layer-btn[data-layer="pipe"]::before { background: var(--danger); } /* Rura PEX */
.layer-btn[data-layer="lamella"]::before { background: #94a3b8; } /* Aluminium */
.layer-btn[data-layer="eps"]::before { background: #38bdf8; } /* Styropian EPS */

.layer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
}

.layer-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.15);
}

.layer-btn.active::before {
    background: var(--accent);
    width: 8px;
}

.layer-icon {
    font-size: 24px;
    filter: grayscale(0.2);
    transition: transform 0.3s;
}

.layer-btn.active .layer-icon {
    transform: scale(1.2);
    filter: grayscale(0);
}

.layer-title {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.3;
}

.layer-subtitle {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
}

/* PRAWA STRONA - SZCZEGÓŁY WARSTWY */
.anatomy-details {
    width: 60%;
    background: var(--bg-light);
    padding: 40px;
    position: relative;
}

.detail-pane {
    display: none;
    animation: fadeInSlide 0.4s ease-out forwards;
}

.detail-pane.active {
    display: block;
}

.detail-pane h4 {
    margin: 0 0 20px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.detail-pane ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
}

.detail-pane li {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 10px;
}

.detail-pane strong {
    color: var(--primary);
}

.detail-pane a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.2s;
}

.detail-pane a:hover {
    background: #eff6ff;
    border-bottom-color: var(--accent);
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--warning);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    margin-top: 20px;
    line-height: 1.6;
}

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

@media (max-width: 768px) {
    .anatomy-header { padding: 30px 20px; }
    /* Zmiana flex-direction: column-reverse na column */
    .anatomy-workspace { flex-direction: column; min-height: auto; }
    
    .anatomy-layers {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color); /* Zmiana border-top na border-bottom */
        padding: 20px;
    }
    
    .anatomy-details {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<div class="premium-anatomy-box" id="anatomy-app-container">
    
    <div class="anatomy-header">
        <h2>Czym dokładnie jest ogrzewanie bez wylewki?</h2>
        <p>W klasycznym ujęciu ogrzewanie płaszczyznowe kojarzy się z betonem. Rury układane są na izolacji, a następnie zalewane jastrychem o grubości od 6 do 10 cm. Ta masa betonu pełni trzy funkcje: akumuluje ciepło, rozprowadza je równomiernie po powierzchni oraz stabilizuje mechanicznie instalację. Problem pojawia się, gdy strop nie jest w stanie udźwignąć dodatkowych 150–200 kg/m² lub gdy nie mamy czasu na 28 dni schnięcia.</p>
        <p>System ogrzewania wodnego bez wylewki (nazywany fachowo <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemem suchym</a>) eliminuje mokre procesy budowlane. Zamiast betonu wykorzystuje precyzyjne warstwy, które możesz zbadać poniżej.</p>
    </div>

    <div class="anatomy-workspace">
        
        <div class="anatomy-layers">
            <span style="font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; text-align: center; margin-bottom: 5px;">Przekrój podłogi (kliknij)</span>
            
            <button class="layer-btn active" data-target="pane-finish" data-layer="finish">
                <span class="layer-icon">🪵</span>
                <div>
                    <div class="layer-title">Warstwa wykończeniowa</div>
                    <span class="layer-subtitle">Panele / Płytki + Podkład</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-pipe" data-layer="pipe">
                <span class="layer-icon">🔴</span>
                <div>
                    <div class="layer-title">Rury grzewcze</div>
                    <span class="layer-subtitle">PEX / PE-RT 14-16 mm</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-lamella" data-layer="lamella">
                <span class="layer-icon">🛡️</span>
                <div>
                    <div class="layer-title">Lamele aluminiowe</div>
                    <span class="layer-subtitle">Serce systemu suchego</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-eps" data-layer="eps">
                <span class="layer-icon">🧊</span>
                <div>
                    <div class="layer-title">Płyty systemowe</div>
                    <span class="layer-subtitle">EPS 200 / Gipsowo-włóknowe</span>
                </div>
            </button>
        </div>

        <div class="anatomy-details">
            
            <div class="detail-pane active" id="pane-finish">
                <h4>Warstwa wykończeniowa</h4>
                <p>W odróżnieniu od wylewki, gdzie płytki kleimy bezpośrednio do betonu, w systemie suchym konieczne jest stworzenie sztywnej, pływającej posadzki:</p>
                <ul>
                    <li><strong>Pod panele laminowane lub winylowe LVT:</strong> Kładzie się bezpośrednio na płyty systemowe z rurami specjalną perforowaną matę podkładową o bardzo niskim <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%25c2%25b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporze cieplnym</a> (R ≤ 0,05 m²K/W). Użycie zwykłej pianki zablokuje ciepło!</li>
                    <li><strong>Pod płytki ceramiczne i kamień:</strong> Wymagane jest zastosowanie płyt suchego jastrychu (np. gipsowo-włóknowych) o grubości min. 10–12,5 mm, układanych dwuwarstwowo. Dopiero na to nakłada się elastyczny klej i płytki.</li>
                </ul>
            </div>

            <div class="detail-pane" id="pane-pipe">
                <h4>Rury grzewcze</h4>
                <p>W systemach suchych dominują rury o mniejszej średnicy niż w klasycznej wylewce betonowej.</p>
                <p><strong>Standard:</strong> PEX lub PE-RT o średnicy 14 mm lub 16 mm.</p>
                <div class="highlight-box" style="border-left-color: var(--accent);">
                    <strong>Dlaczego mniejsze?</strong> Mniejsza średnica rury pozwala na zmniejszenie grubości całej płyty systemowej i łatwiejsze formowanie łuków w wyfrezowanych kanałach. Ponadto, mniejsza ilość wody w instalacji znacznie przyspiesza reakcję układu na zmiany ustawień termostatu.
                </div>
            </div>

            <div class="detail-pane" id="pane-lamella">
                <h4>Lamele aluminiowe</h4>
                <p>To najważniejszy element odróżniający profesjonalny system suchy od amatorskiej próby włożenia rury w zwykły styropian. <strong>Bez <a href="https://projekt-ogrzewania.pl/produkt/lamel-grzejny-metalowy/">lameli</a> system nie działa!</strong></p>
                <ul>
                    <li><strong>Funkcja:</strong> Aluminium (λ ≈ 200 W/mK) przejmuje ciepło punktowe z rurki i rozprowadza je na boki na szerokość kilkunastu centymetrów.</li>
                    <li><strong>Budowa:</strong> Są to cienkie (0,4–0,6 mm) blachy w kształcie litery omega (Ω), w które na ścisk zatrzaskuje się rurę grzewczą.</li>
                </ul>
                <div class="highlight-box">
                    <strong>Efekt:</strong> Eliminujemy tzw. efekt zebry termicznej. Gdyby rura leżała pod panelami bez aluminium, stopa czułaby naprzemiennie gorące i zimne paski. Lamele wyrównują temperaturę do różnicy mniejszej niż 2°C na całej płycie.
                </div>
            </div>

            <div class="detail-pane" id="pane-eps">
                <h4>Płyty systemowe (Szkielet)</h4>
                <p>Podstawą całego układu, na której opiera się ciężar, są płyty systemowe. Wykonuje się je z dwóch materiałów:</p>
                <ul>
                    <li><strong>Twardy styropian EPS:</strong> Najczęściej o podwyższonej gęstości, np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-200-z-wypustkami/">EPS 200</a> lub EPS T. Mają grubość od 25 do 50 mm, z fabrycznie wyfrezowanymi kanałami na rury (rozstaw 15 cm lub 30 cm).</li>
                    <li><strong>Płyty gipsowo-włóknowe:</strong> Rozwiązanie droższe, ale oferujące wyższą wytrzymałość punktową i izolacyjność akustyczną.</li>
                </ul>
                <div class="highlight-box" style="border-left-color: var(--danger);">
                    <strong>Uwaga:</strong> Zastosowanie zwykłego styropianu o zbyt niskiej gęstości grozi jego ugięciem pod ciężarem mebli i trwałym „klawiszowaniem” (zapadaniem się) podłogi.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('anatomy-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten wizualizator jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // LOGIKA ZAKŁADEK (WARSTW)
    const layerBtns = document.querySelectorAll('.layer-btn');
    const panes = document.querySelectorAll('.detail-pane');

    layerBtns.forEach(button => {
        button.addEventListener('click', () => {
            // Reset active states
            layerBtns.forEach(btn => btn.classList.remove('active'));
            panes.forEach(pane => pane.classList.remove('active'));
            
            // Set active state on clicked element
            button.classList.add('active');
            
            // Show corresponding pane
            const targetId = button.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --wet-color: #64748b;
}

.premium-advantages-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.adv-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.adv-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.adv-header p {
    margin: 0 auto 30px auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

/* PRZEŁĄCZNIK TECHNOLOGII */
.toggle-wrapper {
    display: inline-flex;
    align-items: center;
    background: #ffffff;
    padding: 10px 20px;
    border-radius: 100px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    gap: 15px;
}

.toggle-label {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #94a3b8;
    transition: color 0.3s;
    cursor: pointer;
}

.toggle-label.active-wet { color: var(--wet-color); }
.toggle-label.active-dry { color: var(--accent); }

.switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
}

.switch input { 
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--wet-color);
    transition: .4s;
    border-radius: 34px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

input:checked + .slider { background-color: var(--accent); }
input:checked + .slider:before { transform: translateX(26px); }

/* KARTY KORZYŚCI */
.adv-grid {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    background: #ffffff;
}

.adv-card {
    padding: 30px;
    border-radius: 20px;
    border: 2px solid var(--border-color);
    transition: all 0.4s ease;
    position: relative;
    overflow: hidden;
}

.adv-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: var(--wet-color);
    transition: background 0.4s;
}

.adv-card.is-dry {
    border-color: #bfdbfe;
    background: #f8fafc;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.05);
}

.adv-card.is-dry::before { background: var(--accent); }

.card-icon {
    font-size: 28px;
    margin-bottom: 15px;
    display: inline-block;
}

.card-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
    margin-bottom: 10px;
}

.card-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
    line-height: 1.1;
    transition: color 0.4s;
}

.adv-card.is-dry .card-value { color: var(--accent); }

.card-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
    min-height: 80px;
}

.card-desc strong { color: var(--primary); }

.example-box {
    margin-top: 15px;
    padding: 12px 15px;
    background: #ffffff;
    border-radius: 12px;
    font-size: 13px;
    border: 1px solid #e2e8f0;
    display: none;
}

.adv-card.is-dry .example-box {
    display: block;
    animation: fadeIn 0.5s;
}

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

@media (max-width: 768px) {
    .adv-header { padding: 30px 20px; }
    .adv-header h3 { font-size: 24px; }
    .adv-grid { grid-template-columns: 1fr; padding: 25px 20px; gap: 20px; }
    .toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 20px; padding: 15px; }
    .card-desc { min-height: auto; }
}
</style>

<div class="premium-advantages-box" id="advantages-app-container">
    
    <div class="adv-header">
        <h3>Kluczowe zalety systemu suchego</h3>
        <p>Decyzja o wyborze podłogówki bez wylewki rzadko wynika z kaprysu. Najczęściej podyktowana jest konkretnymi ograniczeniami budowlanymi. Przełącz technologię poniżej, aby zobaczyć kolosalną różnicę w parametrach.</p>
        
        <div class="toggle-wrapper">
            <span class="toggle-label" id="lbl-wet" onclick="document.getElementById('sys-toggle').click()">System Mokry</span>
            <label class="switch">
                <input type="checkbox" id="sys-toggle" checked>
                <span class="slider"></span>
            </label>
            <span class="toggle-label active-dry" id="lbl-dry" onclick="document.getElementById('sys-toggle').click()">System Suchy</span>
        </div>
    </div>

    <div class="adv-grid">
        
        <div class="adv-card is-dry" id="card-weight">
            <div class="card-icon">⚖️</div>
            <div class="card-title">Obciążenie stropu</div>
            <div class="card-value" id="val-weight">22–35 kg/m²</div>
            <p class="card-desc" id="desc-weight">Absolutny priorytet w starym budownictwie. Konstrukcja oparta na styropianie, lamelach i suchym jastrychu waży zaledwie ułamek tego, co beton.</p>
            <div class="example-box" id="ex-weight">
                <strong>Przykład:</strong> Mieszkanie 50m² (strop drewniany). System suchy to ok. 1,2 tony. Tradycyjna wylewka dodałaby aż <strong>7,5 tony</strong> – to ryzyko katastrofy budowlanej!
            </div>
        </div>

        <div class="adv-card is-dry" id="card-height">
            <div class="card-icon">📏</div>
            <div class="card-title">Całkowita wysokość zabudowy</div>
            <div class="card-value" id="val-height">od 30 mm</div>
            <p class="card-desc" id="desc-height">Idealne rozwiązanie do domów z niskim sufitem lub przy modernizacji, gdzie podłoga np. w przedpokoju jest już na stałym poziomie.</p>
            <div class="example-box" id="ex-height">
                <strong>Bez schodków:</strong> (płyta 20 mm + mata 2 mm + panel 8 mm). Pozwala uniknąć budowy nieestetycznych podestów i docinania drzwi.
            </div>
        </div>

        <div class="adv-card is-dry" id="card-time">
            <div class="card-icon">⏳</div>
            <div class="card-title">Procesy mokre i schnięcie</div>
            <div class="card-value" id="val-time">0 dni</div>
            <p class="card-desc" id="desc-time">Ogromna przewaga logistyczna. Układamy rury, zamykamy suchym jastrychem i <strong>od razu</strong> możemy układać płytki lub panele.</p>
            <div class="example-box" id="ex-time">
                <strong>Szybki efekt:</strong> Wieczorem tego samego dnia można wnieść meble. Brak wilgoci technologicznej opóźniającej prace malarskie.
            </div>
        </div>

        <div class="adv-card is-dry" id="card-response">
            <div class="card-icon">🚀</div>
            <div class="card-title">Czas nagrzewania układu</div>
            <div class="card-value" id="val-response">20–40 min</div>
            <p class="card-desc" id="desc-response">Dzięki niskiej akumulacyjności, system natychmiast reaguje na zmiany ustawień termostatu lub zyski ciepła od słońca przez okna.</p>
            <div class="example-box" id="ex-response">
                <strong>Oszczędność:</strong> Szybka reakcja przekłada się na niższe zużycie energii w okresach przejściowych (wiosna/jesień) i brak przegrzewania pokoi.
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('advantages-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny widget jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // LOGIKA PRZEŁĄCZNIKA
    const toggle = document.getElementById('sys-toggle');
    const lblWet = document.getElementById('lbl-wet');
    const lblDry = document.getElementById('lbl-dry');
    
    const cards = [
        document.getElementById('card-weight'),
        document.getElementById('card-height'),
        document.getElementById('card-time'),
        document.getElementById('card-response')
    ];

    // Dane do podmiany
    const data = {
        dry: {
            weight: "22–35 kg/m²", descWeight: "Absolutny priorytet w starym budownictwie. Konstrukcja oparta na styropianie, lamelach i suchym jastrychu waży zaledwie ułamek tego, co beton.",
            height: "od 30 mm", descHeight: "Idealne rozwiązanie do domów z niskim sufitem lub przy modernizacji, gdzie podłoga np. w przedpokoju jest już na stałym poziomie.",
            time: "0 dni", descTime: "Ogromna przewaga logistyczna. Układamy rury, zamykamy suchym jastrychem i <strong>od razu</strong> możemy układać płytki lub panele.",
            response: "20–40 min", descResponse: "Dzięki niskiej akumulacyjności, system natychmiast reaguje na zmiany ustawień termostatu lub zyski ciepła od słońca przez okna."
        },
        wet: {
            weight: "120–180 kg/m²", descWeight: "Ogromna masa wylewki cementowej (ok. 6 cm) i płytek. Wymaga solidnych stropów żelbetowych projektowanych na duże obciążenia.",
            height: "ok. 80 mm", descHeight: "Klasyczna wysokość zabudowy (izolacja + wylewka). Często wymusza podnoszenie drzwi, tworzenie podestów lub schodków do innych pomieszczeń.",
            time: "8 tygodni", descTime: "Wymaga długiego sezonowania. Zgodnie z normą: 1 tydzień na każdy z pierwszych 4 cm, a 2 tygodnie na każdy kolejny. Hamuje to dalsze prace wykończeniowe.",
            response: "4–6 godzin", descResponse: "Beton ma ogromną bezwładność cieplną. System nagrzewa się godzinami, a po wyłączeniu dalej długo oddaje ciepło (ryzyko przegrzewania)."
        }
    };

    function updateCards(isDry) {
        if(isDry) {
            lblDry.classList.add('active-dry');
            lblWet.classList.remove('active-wet');
            
            cards.forEach(c => c.classList.add('is-dry'));
            
            document.getElementById('val-weight').innerText = data.dry.weight;
            document.getElementById('desc-weight').innerHTML = data.dry.descWeight;
            
            document.getElementById('val-height').innerText = data.dry.height;
            document.getElementById('desc-height').innerHTML = data.dry.descHeight;
            
            document.getElementById('val-time').innerText = data.dry.time;
            document.getElementById('desc-time').innerHTML = data.dry.descTime;
            
            document.getElementById('val-response').innerText = data.dry.response;
            document.getElementById('desc-response').innerHTML = data.dry.descResponse;
            
        } else {
            lblDry.classList.remove('active-dry');
            lblWet.classList.add('active-wet');
            
            cards.forEach(c => c.classList.remove('is-dry'));
            
            document.getElementById('val-weight').innerText = data.wet.weight;
            document.getElementById('desc-weight').innerHTML = data.wet.descWeight;
            
            document.getElementById('val-height').innerText = data.wet.height;
            document.getElementById('desc-height').innerHTML = data.wet.descHeight;
            
            document.getElementById('val-time').innerText = data.wet.time;
            document.getElementById('desc-time').innerHTML = data.wet.descTime;
            
            document.getElementById('val-response').innerText = data.wet.response;
            document.getElementById('desc-response').innerHTML = data.wet.descResponse;
        }
    }

    toggle.addEventListener('change', function() {
        updateCards(this.checked);
    });

});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-limitations-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.limits-header {
    padding: 35px 40px;
    background: linear-gradient(to bottom, #ffffff, #fef2f2);
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.limits-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--danger);
}

.limits-header p {
    margin: 0 auto;
    max-width: 750px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.limits-workspace {
    display: flex;
    min-height: 400px;
}

/* LEWA STRONA - MENU ZAGROŻEŃ */
.limits-menu {
    width: 38%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    padding: 20px 0;
}

.limit-btn {
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    text-align: left;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.limit-btn:hover {
    background: #f8fafc;
    color: var(--primary);
}

.limit-btn.active {
    background: #fef2f2;
    border-left-color: var(--danger);
    color: var(--danger);
}

.limit-icon {
    font-size: 20px;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    border-radius: 8px;
    transition: all 0.3s;
}

.limit-btn.active .limit-icon {
    background: #fecaca;
    color: #991b1b;
}

/* PRAWA STRONA - TREŚĆ */
.limits-content-area {
    width: 62%;
    background: var(--bg-light);
    position: relative;
    padding: 35px 40px;
}

.limit-pane {
    display: none;
    animation: fadeSlideUp 0.3s ease-out forwards;
}

.limit-pane.active { display: block; }

.limit-pane h4 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.limit-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 20px;
}

/* Wizualizacja kosztów (Bar chart CSS) */
.cost-compare {
    margin: 25px 0;
}

.cost-row { margin-bottom: 15px; }
.cost-label { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--primary); margin-bottom: 6px; }
.cost-label span.price { color: #64748b; }
.cost-bar-bg { width: 100%; background: #e2e8f0; border-radius: 6px; height: 18px; overflow: hidden; }
.cost-bar-fill { height: 100%; background: var(--accent); border-radius: 6px; }
.fill-wet { width: 45%; background: #94a3b8; }
.fill-dry { width: 100%; background: var(--warning); }

/* Boks informacyjny */
.info-box {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin-top: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.info-box.critical {
    border-left-color: var(--danger);
    background: #fef2f2;
}

.info-box.critical strong { color: var(--danger); }

/* Lista konsekwencji */
.consequences-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

.consequences-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 600;
    color: #334155;
    line-height: 1.5;
}

.consequences-list li::before {
    content: "❌";
    position: absolute;
    left: 0;
    top: 0;
    font-size: 14px;
}

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

/* MOBILE */
@media (max-width: 768px) {
    .limits-header { padding: 25px 20px; }
    .limits-workspace { flex-direction: column; min-height: auto; }
    
    .limits-menu {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding: 10px;
    }
    
    .limit-btn {
        padding: 15px;
        border-left: none;
        border-bottom: 3px solid transparent;
        background: #f8fafc;
        margin-bottom: 8px;
        border-radius: 12px;
    }
    
    .limit-btn.active {
        border-left: none;
        border-bottom-color: var(--danger);
    }
    
    .limits-content-area {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<div class="premium-limitations-box" id="limitations-app-container">
    
    <div class="limits-header">
        <h2>Wady i ograniczenia – na co musisz być przygotowany</h2>
        <p>Jak każde rozwiązanie techniczne, podłogówka bez wylewki nie jest pozbawiona wad. Ignorowanie tych ograniczeń może prowadzić do rozczarowania efektem grzewczym lub zniszczenia podłogi.</p>
    </div>

    <div class="limits-workspace">
        
        <div class="limits-menu">
            <button class="limit-btn active" data-target="pane-cost">
                <span class="limit-icon">💰</span> Wyższy koszt materiałów
            </button>
            <button class="limit-btn" data-target="pane-cooling">
                <span class="limit-icon">❄️</span> Szybsze wychładzanie
            </button>
            <button class="limit-btn" data-target="pane-leveling">
                <span class="limit-icon">📐</span> Ryzyko nierównego podłoża
            </button>
        </div>

        <div class="limits-content-area">
            
            <div class="limit-pane active" id="pane-cost">
                <h4>Wyższy koszt zakupu materiałów</h4>
                <p>W przeliczeniu na metr kwadratowy, sam materiał do systemu suchego jest droższy o <strong>40–70%</strong> w porównaniu do tradycyjnego systemu z betonem.</p>
                
                <div class="cost-compare">
                    <div class="cost-row">
                        <div class="cost-label">
                            <span>Wylewka mokra (rura, beton, izolacja)</span>
                            <span class="price">ok. 80–120 zł/m²</span>
                        </div>
                        <div class="cost-bar-bg"><div class="cost-bar-fill fill-wet"></div></div>
                    </div>
                    <div class="cost-row">
                        <div class="cost-label">
                            <span>System suchy (płyty, lamele, suchy jastrych)</span>
                            <span class="price">ok. 180–250 zł/m²</span>
                        </div>
                        <div class="cost-bar-bg"><div class="cost-bar-fill fill-dry"></div></div>
                    </div>
                </div>

                <div class="info-box">
                    <strong>Ważna uwaga:</strong> Należy jednak pamiętać, że wyższy koszt początkowy materiałów często częściowo rekompensowany jest niższym kosztem robocizny oraz brakiem konieczności wynajmu mieszkań zastępczych na czas 8 tygodni schnięcia wylewki.
                </div>
            </div>

            <div class="limit-pane" id="pane-cooling">
                <h4>Szybsze wychładzanie pomieszczeń</h4>
                <p>Brak potężnego, betonowego &#8222;akumulatora ciepła&#8221; ma swoją ciemną stronę. Gdy kocioł gazowy lub pompa ciepła przestanie pracować, <strong>podłoga stygnie błyskawicznie</strong> – często w kilkadziesiąt minut.</p>
                <p>Problem ten ujawnia się m.in. w tanich taryfach nocnych (gdy w dzień piec nie grzeje) lub podczas korzystania z opcji oszczędzania energii w bloku.</p>

                <div class="info-box critical" style="border-left-color: var(--warning); background: #fffbeb;">
                    <strong>Zależność od izolacji budynku:</strong> W nowym, dobrze izolowanym domu nie jest to duży problem, ponieważ ściany trzymają ciepło. Jednak w starym, nieszczelnym budownictwie może to powodować bardzo nieprzyjemne uczucie „ciągnięcia chłodem” od stóp niemal od razu po wyłączeniu pompy.
                </div>
            </div>

            <div class="limit-pane" id="pane-leveling">
                <h4>Bezwzględny wymóg równego podłoża</h4>
                <p>To absolutnie największa pułapka montażowa. Wylewka mokra jest ciężka i samopoziomująca – idealnie ukryje nierówności stropu do 2-3 cm. <strong>System suchy nie ma tej zdolności.</strong></p>
                
                <p>Konsekwencje nierówności (np. dołek na 5 mm pod płytą):</p>
                <ul class="consequences-list">
                    <li>Nieprzyjemne wrażenie akustyczne (stukanie, klawiszowanie).</li>
                    <li>Pękanie fug na płytkach ceramicznych (nawet przy użyciu maty zbrojącej).</li>
                    <li>Ryzyko wyślizgnięcia się rury z kanału aluminiowego (tworzy tzw. &#8222;gorący punkt&#8221;).</li>
                </ul>

                <div class="info-box critical">
                    <strong>Rozwiązanie i ironia losu:</strong> Przed montażem konieczne jest precyzyjne wyrównanie podłoża masą samopoziomującą. Aby uniknąć grubej wylewki&#8230; i tak musisz zrobić wylewkę (cienką, korekcyjną na 2-5 mm).
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock) Base64 Encoded HTML
    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('limitations-app-container').innerHTML = decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));
        return; 
    }

    // LOGIKA ZAKŁADEK (TABS)
    const buttons = document.querySelectorAll('.limit-btn');
    const panes = document.querySelectorAll('.limit-pane');

    buttons.forEach(button => {
        button.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich
            buttons.forEach(btn => btn.classList.remove('active'));
            panes.forEach(pane => pane.classList.remove('active'));
            
            // Dodaj do klikniętego
            button.classList.add('active');
            
            // Pokaż treść
            const targetId = button.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --wet-color: #64748b;
}

.premium-compare {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.compare-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.compare-header p {
    margin: 0 auto;
    max-width: 700px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

/* INTERAKTYWNY KALKULATOR - STYLE */
.interactive-calc-section {
    padding: 30px 40px;
    background: #ffffff;
    border-bottom: 3px solid var(--border-color);
}

.input-wrap { margin-bottom: 25px; background: var(--bg-light); padding: 20px; border-radius: 16px; border: 1px solid #e2e8f0; }
.input-label-row { display: flex; justify-content: space-between; margin-bottom: 12px; align-items: center; }
.input-label-row label { font-weight: 800; font-size: 15px; color: var(--primary); text-transform: uppercase; letter-spacing: 0.5px;}
.input-label-row .val-badge { background: #ffffff; padding: 6px 16px; border-radius: 10px; font-weight: 900; color: var(--accent); font-size: 18px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }

input[type=range] { width: 100%; height: 8px; background: #cbd5e1; border-radius: 10px; appearance: none; outline: none; margin-top: 5px; }
input[type=range]::-webkit-slider-thumb { appearance: none; width: 24px; height: 24px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer; }

.charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.chart-title { font-size: 13px; font-weight: 700; color: #64748b; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px;}
.bar-row { margin-bottom: 12px; }
.bar-label { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--primary); margin-bottom: 6px; }
.bar-bg { width: 100%; background: #f1f5f9; border-radius: 8px; height: 32px; overflow: hidden; position: relative; border: 1px solid #e2e8f0;}
.bar-fill { height: 100%; transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: flex-end; padding-right: 12px; color: white; font-weight: 800; font-size: 13px; white-space: nowrap; }
.fill-dry { background: var(--accent); }
.fill-wet { background: var(--wet-color); }

/* TABELA - STYLE */
.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param { text-align: left; color: #64748b; width: 30%; }
.compare-table th.col-noguide { color: var(--accent); width: 35%; border-bottom-color: var(--accent); }
.compare-table th.col-project { color: var(--wet-color); width: 35%; }

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.compare-table tr:hover td { background: #f8fafc; }

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}
.val-pill.accent { background: #eff6ff; color: var(--accent); }
.val-pill.danger { background: #fee2e2; color: var(--danger); }
.val-pill.success { background: #dcfce7; color: var(--success); }

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

.summary-card p {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

.card-project { border-color: #bfdbfe; background: #eff6ff; }
.card-project h4 { color: var(--accent); }

/* ROZWIĄZANIE DLA MOBILE */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .interactive-calc-section { padding: 25px 20px; }
    .charts-grid { grid-template-columns: 1fr; gap: 20px; }
    .table-wrapper { padding: 0 15px; margin-top: 30px;}
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block; width: 100%; box-sizing: border-box;
    }
    .compare-table thead { display: none; }
    
    .compare-table tr {
        margin-bottom: 20px; border: 1px solid var(--border-color); border-radius: 16px; overflow: hidden; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td { text-align: left; padding: 15px 20px; border-bottom: 1px solid #f1f5f9; }
    .compare-table td:last-child { border-bottom: none; }
    
    .compare-table td.param-name {
        background: var(--bg-light); font-size: 16px; border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "System Suchy (bez wylewki):"; display: block; font-weight: 800; margin-bottom: 6px; color: var(--accent); font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "System Mokry (z wylewką):"; display: block; font-weight: 800; margin-bottom: 6px; color: var(--wet-color); font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td { background: inherit; }
    .compare-table td.param-name:hover { background: var(--bg-light); }
}
</style>

<div class="premium-compare" id="compare-app-container">
    <div class="compare-header">
        <h2>Porównanie techniczne: System Suchy vs. System Mokry</h2>
        <p>Sprawdź, jak wybór technologii wpływa na obciążenie Twojego stropu oraz koszty materiałów. Zmieniając powierzchnię, na żywo zobaczysz skalę przedsięwzięcia. Poniżej znajdziesz szczegółowe zestawienie parametrów. <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Więcej przeczytasz w naszym artykule.</a></p>
    </div>

    <div class="interactive-calc-section">
        <div class="input-wrap">
            <div class="input-label-row">
                <label>Suwak powierzchni ogrzewanej</label>
                <span class="val-badge"><span id="v-area">50</span> m²</span>
            </div>
            <input type="range" id="area-slider" min="10" max="250" step="5" value="50">
        </div>

        <div class="charts-grid">
            <div class="chart-block">
                <div class="chart-title">📦 Łączna waga na stropie</div>
                <div class="bar-row">
                    <div class="bar-label"><span>System Suchy</span></div>
                    <div class="bar-bg"><div class="bar-fill fill-dry" id="bar-weight-dry" style="width: 10%;">&#8212;</div></div>
                </div>
                <div class="bar-row">
                    <div class="bar-label"><span>System Mokry</span></div>
                    <div class="bar-bg"><div class="bar-fill fill-wet" id="bar-weight-wet" style="width: 80%;">&#8212;</div></div>
                </div>
            </div>

            <div class="chart-block">
                <div class="chart-title">💰 Szacunkowy koszt materiałów</div>
                <div class="bar-row">
                    <div class="bar-label"><span>System Suchy</span></div>
                    <div class="bar-bg"><div class="bar-fill fill-dry" id="bar-cost-dry" style="width: 60%;">&#8212;</div></div>
                </div>
                <div class="bar-row">
                    <div class="bar-label"><span>System Mokry</span></div>
                    <div class="bar-bg"><div class="bar-fill fill-wet" id="bar-cost-wet" style="width: 30%;">&#8212;</div></div>
                </div>
            </div>
        </div>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Parametr techniczny</th>
                    <th class="col-noguide">System Suchy (bez wylewki)</th>
                    <th class="col-project">System Mokry (z wylewką)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">⚖️</span> Masa własna (kg/m²)</td>
                    <td><strong>20 – 35 kg</strong></td>
                    <td>100 – 180 kg</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📏</span> Minimalna wysokość</td>
                    <td><span class="val-pill accent">30 mm</span> (bez płytek)</td>
                    <td>80 mm</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⏱️</span> Czas realizacji</td>
                    <td><span class="val-pill accent">1 – 3 dni</span></td>
                    <td>28 – 60 dni</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Maks. temp. zasilania</td>
                    <td>35 – 40°C</td>
                    <td>40 – 50°C</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🚀</span> Czas nagrzewania</td>
                    <td><span class="val-pill accent">20 – 40 minut</span></td>
                    <td>4 – 6 godzin</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔋</span> Akumulacyjność cieplna</td>
                    <td>Bardzo niska</td>
                    <td><strong>Bardzo wysoka</strong></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔊</span> Przewodność akustyczna</td>
                    <td><span class="val-pill danger">Gorsza</span> (płyty pływające)</td>
                    <td><span class="val-pill success">Lepsza</span> (masa tłumi dźwięki)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">💳</span> Koszt materiałów (zł/m²)</td>
                    <td>180 – 280 zł</td>
                    <td><span class="val-pill success">90 – 150 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Ryzyko przegrzania</td>
                    <td><span class="val-pill danger">Wysokie</span> (wymagany RTL)</td>
                    <td><span class="val-pill success">Niskie</span></td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card card-project">
            <h4>Kiedy wybrać system suchy?</h4>
            <p>Idealny do remontów starych domów, kamienic (stropy drewniane) oraz domów szkieletowych. Sprawdza się wszędzie tam, gdzie kluczowa jest waga konstrukcji, brakuje wysokości na grubą wylewkę lub zależy Ci na błyskawicznym czasie realizacji bez wprowadzania wilgoci.</p>
        </div>
        
        <div class="summary-card">
            <h4>Kiedy wybrać system mokry?</h4>
            <p>Standardowe, ekonomiczne rozwiązanie dla nowego budownictwa, gdzie nośność stropu nie jest problemem. Oferuje niższą cenę materiałów, doskonałą izolację akustyczną i wysoką bezwładność cieplną, która wybacza błędy w sterowaniu temperaturą.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('compare-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To interaktywne zestawienie jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // 2. LOGIKA INTERAKTYWNEGO KALKULATORA
    const slider = document.getElementById("area-slider");
    if(!slider) return;

    function updateCalc() {
        const area = parseFloat(slider.value);
        document.getElementById("v-area").innerText = area;
        
        // Średnie wartości na bazie tabeli
        const weightDryPerM2 = 27.5; // średnia 20-35
        const weightWetPerM2 = 140; // średnia 100-180
        const costDryPerM2 = 230; // średnia 180-280
        const costWetPerM2 = 120; // średnia 90-150
        
        const totalWeightDry = area * weightDryPerM2;
        const totalWeightWet = area * weightWetPerM2;
        const totalCostDry = area * costDryPerM2;
        const totalCostWet = area * costWetPerM2;
        
        // Formatowanie tekstu
        const textWeightDry = totalWeightDry >= 1000 ? (totalWeightDry / 1000).toFixed(1) + " ton" : Math.round(totalWeightDry) + " kg";
        const textWeightWet = totalWeightWet >= 1000 ? (totalWeightWet / 1000).toFixed(1) + " ton" : Math.round(totalWeightWet) + " kg";
        const textCostDry = (totalCostDry / 1000).toFixed(1) + " tys. zł";
        const textCostWet = (totalCostWet / 1000).toFixed(1) + " tys. zł";
        
        // Obliczanie szerokości pasków (wizualizacja względem maks. wartości dla 250m2)
        const maxWeight = 250 * weightWetPerM2;
        const maxCost = 250 * costDryPerM2;
        
        const pctWeightDry = Math.max(8, Math.min(100, (totalWeightDry / maxWeight) * 100));
        const pctWeightWet = Math.max(8, Math.min(100, (totalWeightWet / maxWeight) * 100));
        const pctCostDry = Math.max(8, Math.min(100, (totalCostDry / maxCost) * 100));
        const pctCostWet = Math.max(8, Math.min(100, (totalCostWet / maxCost) * 100));
        
        // Aktualizacja DOM
        document.getElementById("bar-weight-dry").style.width = pctWeightDry + "%";
        document.getElementById("bar-weight-dry").innerText = textWeightDry;
        
        document.getElementById("bar-weight-wet").style.width = pctWeightWet + "%";
        document.getElementById("bar-weight-wet").innerText = textWeightWet;
        
        document.getElementById("bar-cost-dry").style.width = pctCostDry + "%";
        document.getElementById("bar-cost-dry").innerText = textCostDry;
        
        document.getElementById("bar-cost-wet").style.width = pctCostWet + "%";
        document.getElementById("bar-cost-wet").innerText = textCostWet;
    }

    slider.addEventListener("input", updateCalc);
    updateCalc(); // Inicjalizacja przy załadowaniu
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-scenario-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.scenario-header {
    padding: 35px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.scenario-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.scenario-header p {
    margin: 0 auto;
    max-width: 750px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.scenario-workspace {
    display: flex;
    min-height: 420px;
}

/* LEWA STRONA - MENU */
.scenario-menu {
    width: 35%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    padding: 20px 0;
}

.scenario-btn {
    padding: 20px 30px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    text-align: left;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.scenario-btn:hover {
    background: #f8fafc;
    color: var(--primary);
}

.scenario-btn.active {
    background: #eff6ff;
    border-left-color: var(--accent);
    color: var(--accent);
}

.scenario-icon {
    font-size: 22px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.scenario-btn.active .scenario-icon {
    transform: scale(1.15);
}

/* PRAWA STRONA - TREŚĆ */
.scenario-content-area {
    width: 65%;
    background: var(--bg-light);
    position: relative;
    padding: 40px;
}

.scenario-pane {
    display: none;
    animation: fadeSlideUp 0.4s ease-out forwards;
}

.scenario-pane.active {
    display: block;
}

.pane-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.badge-weight { background: #fee2e2; color: #991b1b; }
.badge-height { background: #e0e7ff; color: #3730a3; }
.badge-moisture { background: #ffedd5; color: #9a3412; }

.scenario-pane h4 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.scenario-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 20px;
}

.scenario-pane p:last-child {
    margin-bottom: 0;
}

.scenario-pane a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.2s;
}

.scenario-pane a:hover {
    background: #eff6ff;
    border-bottom-color: var(--accent);
}

.highlight-box {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--accent);
    padding: 20px;
    border-radius: 12px;
    margin-top: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

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

/* MOBILE */
@media (max-width: 768px) {
    .scenario-header { padding: 25px 20px; }
    .scenario-header h3 { font-size: 22px; }
    
    .scenario-workspace { flex-direction: column; min-height: auto; }
    
    .scenario-menu {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding: 10px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    
    .scenario-btn {
        padding: 12px 15px;
        border-left: none;
        border-bottom: 3px solid transparent;
        border-radius: 8px;
        background: #f8fafc;
        font-size: 13px;
        flex-direction: column;
        text-align: center;
        gap: 8px;
        justify-content: center;
    }
    
    .scenario-btn.active {
        border-left: none;
        border-bottom-color: var(--accent);
    }
    
    .scenario-content-area {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<div class="premium-scenario-box" id="scenario-app-container">
    
    <div class="scenario-header">
        <h2>Gdzie system suchy sprawdza się najlepiej?</h2>
        <p>Wbrew pozorom, ogrzewanie bez wylewki nie jest rozwiązaniem uniwersalnym do każdego nowego domu. Jego zastosowanie jest optymalne w ściśle określonych scenariuszach remontowych i konstrukcyjnych.</p>
    </div>

    <div class="scenario-workspace">
        
        <div class="scenario-menu">
            <button class="scenario-btn active" data-target="pane-kamienice">
                <span class="scenario-icon">🏚️</span> Stare domy i kamienice
            </button>
            <button class="scenario-btn" data-target="pane-szkieletowe">
                <span class="scenario-icon">🌲</span> Domy szkieletowe
            </button>
            <button class="scenario-btn" data-target="pane-poddasza">
                <span class="scenario-icon">🪜</span> Adaptacje strychów
            </button>
            <button class="scenario-btn" data-target="pane-bloki">
                <span class="scenario-icon">🏢</span> Mieszkania w bloku
            </button>
        </div>

        <div class="scenario-content-area">
            
            <div class="scenario-pane active" id="pane-kamienice">
                <div class="pane-badge badge-weight">Priorytet: Krytyczna nośność stropu</div>
                <h4>Remonty starych domów i kamienic</h4>
                <p>Stropy drewniane (belkowe), stropy Kleina (stalowo-ceramiczne) czy stropy żelbetowe o nieznanej nośności to idealne pole do popisu dla lekkiego ogrzewania.</p>
                
                <div class="highlight-box" style="border-left-color: var(--danger);">
                    <strong>Ryzyko katastrofy budowlanej</strong>
                    <span style="font-size: 14px; color: #475569;">Próba wylania tam tradycyjnego jastrychu (nawet 150-180 kg/m²) grozi w skrajnych przypadkach zarwaniem stropu u sąsiada poniżej. System suchy waży zaledwie ułamek tej masy.</span>
                </div>
            </div>

            <div class="scenario-pane" id="pane-szkieletowe">
                <div class="pane-badge badge-moisture">Priorytet: Eliminacja wilgoci i wagi</div>
                <h4>Domy szkieletowe i drewniane</h4>
                <p>W domach o konstrukcji drewnianej (tzw. kanadyjskiej) każdy kilogram ma znaczenie dla wymiarowania belek stropowych.</p>
                <p>Co więcej, wilgoć technologiczna uwalniająca się z tradycyjnej wylewki mogłaby doprowadzić do zagrzybienia drewnianej konstrukcji ścian. Technologia sucha eliminuje to ryzyko całkowicie.</p>
                
                <div class="highlight-box">
                    <strong>Baza wiedzy projektanta</strong>
                    <span style="font-size: 14px; color: #475569;">Zachęcam do lektury szczegółowego opracowania: <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>.</span>
                </div>
            </div>

            <div class="scenario-pane" id="pane-poddasza">
                <div class="pane-badge badge-height">Priorytet: Oszczędność kubatury</div>
                <h4>Poddasza użytkowe i stychy</h4>
                <p>Podczas adaptacji starych strychów często mamy do dyspozycji bardzo małą wysokość przez wszechobecne skosy dachowe. Dodatkowo belki stropowe często były projektowane wyłącznie na przenoszenie ciężaru lekkiej zabudowy z płyt g-k.</p>
                
                <div class="highlight-box">
                    <strong>Odzyskaj cenne centymetry</strong>
                    <span style="font-size: 14px; color: #475569;">System suchy o grubości zaledwie 3-4 cm pozwala na wykonanie ogrzewania płaszczyznowego z jednoczesnym zachowaniem maksymalnej kubatury i wysokości pomieszczenia.</span>
                </div>
            </div>

            <div class="scenario-pane" id="pane-bloki">
                <div class="pane-badge badge-height">Priorytet: Brak uskoków i schodów</div>
                <h4>Mieszkania w bloku (z grzejników)</h4>
                <p>Jeśli zmieniasz system ogrzewania z tradycyjnego (grzejnikowego) na podłogowe w istniejącym mieszkaniu, wylanie wylewki to ogromny problem.</p>
                <p>Podniesienie poziomu podłogi o 8-10 cm w całym lokalu jest często fizycznie niemożliwe ze względu na zabetonowane progi, drzwi wejściowe czy balkonowe.</p>
                
                <div class="highlight-box" style="border-left-color: var(--success);">
                    <strong>Uniknij przecinania futryn</strong>
                    <span style="font-size: 14px; color: #475569;">System suchy pozwala zmieścić się w granicach 4-5 cm całkowitej grubości, co skutecznie zapobiega tworzeniu &#8222;schodków&#8221; do łazienki czy konieczności modyfikacji okien balkonowych.</span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('scenario-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To interaktywne zestawienie jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // LOGIKA ZAKŁADEK (TABS)
    const buttons = document.querySelectorAll('.scenario-btn');
    const panes = document.querySelectorAll('.scenario-pane');

    buttons.forEach(button => {
        button.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich przycisków i paneli
            buttons.forEach(btn => btn.classList.remove('active'));
            panes.forEach(pane => pane.classList.remove('active'));
            
            // Nadaj klasę active klikniętemu przyciskowi
            button.classList.add('active');
            
            // Pokaż odpowiedni panel
            const targetId = button.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --kisan-blue: #1e3a8a;
}

.premium-promo-banner {
    max-width: 1050px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    color: var(--primary);
    display: flex;
    background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
    border: 2px solid #e2e8f0;
    position: relative;
}

/* LEWA STRONA - INFO */
.promo-content {
    width: 60%;
    padding: 45px 50px;
    position: relative;
    z-index: 2;
}

.promo-badge {
    background: var(--kisan-blue);
    color: white;
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: inline-block;
    margin-bottom: 20px;
    box-shadow: 0 4px 10px rgba(30, 58, 138, 0.3);
}

.promo-content h3 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.2;
    color: var(--primary);
}

.promo-content p {
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 25px;
}

.promo-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 30px;
}

.promo-feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--kisan-blue);
}

.promo-feature-item span {
    background: #dbeafe;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.promo-action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--accent);
    color: white;
    padding: 16px 28px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.promo-action:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
    background: #1d4ed8;
}

/* PRAWA STRONA - INTERAKCJA / GRAFIKA */
.promo-visual {
    width: 40%;
    background: var(--kisan-blue);
    padding: 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: white;
}

.promo-visual::before {
    content: '';
    position: absolute;
    top: 0; left: -30px;
    width: 60px; height: 100%;
    background: var(--kisan-blue);
    transform: skewX(-10deg);
    z-index: 1;
}

.interactive-mini-calc {
    position: relative;
    z-index: 2;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    padding: 25px;
    border-radius: 16px;
    backdrop-filter: blur(10px);
}

.calc-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    color: #93c5fd;
    display: flex;
    align-items: center;
    gap: 8px;
}

.calc-row {
    margin-bottom: 15px;
}

.calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 8px;
}

.calc-val { font-weight: 800; color: white; }

input[type=range].promo-slider { width: 100%; height: 6px; background: rgba(255,255,255,0.2); border-radius: 10px; appearance: none; outline: none; }
input[type=range].promo-slider::-webkit-slider-thumb { appearance: none; width: 20px; height: 20px; background: #ffffff; border-radius: 50%; cursor: pointer; box-shadow: 0 2px 5px rgba(0,0,0,0.2); }

.calc-result {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px dashed rgba(255,255,255,0.2);
}

.calc-result span {
    display: block;
    font-size: 11px;
    color: #93c5fd;
    text-transform: uppercase;
    font-weight: 700;
}

.calc-result strong {
    font-size: 28px;
    font-weight: 900;
    color: white;
    line-height: 1.2;
}

@media (max-width: 900px) {
    .premium-promo-banner { flex-direction: column; }
    .promo-content { width: 100%; padding: 35px 25px; }
    .promo-visual { width: 100%; padding: 35px 25px; }
    .promo-visual::before { display: none; }
    .promo-features { grid-template-columns: 1fr; }
}
</style>

<div class="premium-promo-banner" id="promo-banner-app">
    
    <div class="promo-content">
        <div class="promo-badge">Rozwiązanie od Ekspertów</div>
        <h3>Poznaj system Comfort Floor Dry</h3>
        <p>Teoria to jedno, ale jak wdrożyć ją w życie? Poznaj innowacyjny system ogrzewania podłogowego o konstrukcji lekkiej, bazujący na specjalnych płytach EPS i tłoczonych aluminiowych lamelach grzewczych.</p>
        
        <div class="promo-features">
            <div class="promo-feature-item">
                <span>📏</span> Wysokość zaledwie 61 mm!
            </div>
            <div class="promo-feature-item">
                <span>⚖️</span> Kompletny system od 1 producenta
            </div>
            <div class="promo-feature-item">
                <span>⚙️</span> Opracowany dla domów drewnianych
            </div>
            <div class="promo-feature-item">
                <span>🛒</span> Spersonalizowana wycena online
            </div>
        </div>

        <a href="https://projekt-ogrzewania.pl/comfort-floor-dry/" target="_blank" class="promo-action">
            Zobacz pełny system i wyceń online →
        </a>
    </div>

    <div class="promo-visual">
        <div class="interactive-mini-calc">
            <div class="calc-title">💡 Przekonaj się sam</div>
            
            <div class="calc-row">
                <div class="calc-label">
                    <span>Powierzchnia do ogrzania:</span>
                    <span class="calc-val"><span id="p-area">50</span> m²</span>
                </div>
                <input type="range" class="promo-slider" id="p-slider" min="20" max="200" step="5" value="50">
            </div>

            <div class="calc-result">
                <span>Tyle wagi zaoszczędzisz na stropie:</span>
                <strong><span id="p-saved">5 375</span> kg!</strong>
            </div>
            <p style="font-size: 12px; color: #bfdbfe; margin-top: 10px; line-height: 1.4;">*Oszczędność wagi względem standardowej wylewki mokrej (140 kg/m² vs 32 kg/m²).</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('promo-banner-app').innerHTML = `
            <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; width: 100%;">
                <h3 style="margin-top:0;">Baner chroniony prawem autorskim</h3>
                <p>Własność Projekt-Ogrzewania.pl</p>
            </div>
        `;
        return; 
    }

    // LOGIKA MINI KALKULATORA
    const slider = document.getElementById('p-slider');
    const valArea = document.getElementById('p-area');
    const valSaved = document.getElementById('p-saved');

    function updatePromoCalc() {
        const area = parseInt(slider.value);
        valArea.innerText = area;
        
        // Obliczenia: Mokra (~140kg) - Sucha (~32.5kg średnio) = różnica 107.5 kg na m2
        const differencePerM2 = 107.5;
        const totalSaved = Math.round(area * differencePerM2);
        
        valSaved.innerText = totalSaved.toLocaleString('pl-PL');
    }

    slider.addEventListener('input', updatePromoCalc);
    updatePromoCalc(); // init
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-auditor-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* SEKCJA TEKSTOWA */
.auditor-text-section {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.auditor-text-section h3 {
    margin: 0 0 20px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.auditor-text-section > p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 30px;
}

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

.rule-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 25px;
    border-radius: 16px;
    display: flex;
    gap: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.rule-number {
    width: 32px;
    height: 32px;
    background: #eff6ff;
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    flex-shrink: 0;
}

.rule-content h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.rule-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rule-content strong { color: var(--primary); }

/* SEKCJA INTERAKTYWNA */
.auditor-interactive-section {
    padding: 40px;
    background: #ffffff;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.interactive-title {
    grid-column: 1 / -1;
    text-align: center;
    margin-bottom: 10px;
}

.interactive-title h4 {
    margin: 0 0 5px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.interactive-title p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
}

/* Formularz */
.config-panel {
    background: var(--bg-light);
    padding: 25px;
    border-radius: 20px;
    border: 1px solid var(--border-color);
}

.input-group { margin-bottom: 20px; }
.input-group:last-child { margin-bottom: 0; }
.input-label { display: block; font-size: 13px; font-weight: 800; text-transform: uppercase; color: #64748b; margin-bottom: 8px; letter-spacing: 0.5px;}

select.form-control {
    width: 100%;
    padding: 12px 15px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    cursor: pointer;
    outline: none;
}

select.form-control:focus { border-color: var(--accent); }

.temp-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;}
.temp-row span { font-weight: 900; color: var(--accent); font-size: 16px; }

input[type=range] { width: 100%; height: 8px; background: #cbd5e1; border-radius: 10px; appearance: none; outline: none; }
input[type=range]::-webkit-slider-thumb { appearance: none; width: 24px; height: 24px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer; }

/* Wyniki */
.results-panel {
    display: flex;
    flex-direction: column;
}

.score-box {
    text-align: center;
    padding: 25px;
    border-radius: 20px;
    border: 2px solid var(--border-color);
    margin-bottom: 20px;
    transition: all 0.3s;
}

.score-label { font-size: 13px; font-weight: 800; text-transform: uppercase; color: #64748b; display: block; margin-bottom: 10px; }
.score-value { font-size: 42px; font-weight: 900; line-height: 1; color: var(--primary); transition: color 0.3s;}

.alerts-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.alert-item {
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    display: none; /* Ukryte domyślnie */
    animation: fadeIn 0.3s ease-in-out;
}

.alert-danger { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.alert-warning { background: #ffedd5; color: #9a3412; border: 1px solid #fed7aa; }
.alert-success { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; display: block; }

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

@media (max-width: 768px) {
    .auditor-text-section, .auditor-interactive-section { padding: 25px 20px; }
    .rule-card { padding: 15px; gap: 15px; }
    .auditor-interactive-section { grid-template-columns: 1fr; gap: 25px; }
}
</style>

<div class="premium-auditor-box" id="auditor-app-container">
    
    <div class="auditor-text-section">
        <h2>Jak wygląda projekt ogrzewania w systemie suchym?</h2>
        <p>Projektowanie ogrzewania podłogowego bez wylewki wymaga od projektanta zupełnie innego podejścia. Nie można po prostu skopiować projektu &#8222;z betonu&#8221;. Oto 5 kluczowych aspektów <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" style="color: var(--accent); font-weight: 700; text-decoration: none;">profesjonalnego projektu</a>:</p>
        
        <div class="rules-grid">
            <div class="rule-card">
                <div class="rule-number">1</div>
                <div class="rule-content">
                    <h4>Gęstość strumienia ciepła i rozstaw rur</h4>
                    <p>Ze względu na niższą akumulacyjność, stosuje się gęstszy rozstaw rur. Rekomendacja w systemie suchym to <strong>co 10 cm lub co 15 cm</strong>. Nigdy co 20 cm (chyba że w pom. gospodarczym).</p>
                </div>
            </div>
            
            <div class="rule-card">
                <div class="rule-number">2</div>
                <div class="rule-content">
                    <h4>Wydajność cieplna lameli aluminiowych</h4>
                    <p>Projektant musi określić grubość blachy (min. 0,4 mm) oraz jej kształt. Lamele z <strong>pełnym skrzydłem</strong> dają moc o 20-30% wyższą niż wąskie paski.</p>
                </div>
            </div>
            
            <div class="rule-card">
                <div class="rule-number">3</div>
                <div class="rule-content">
                    <h4>Strefy brzegowe i pod oknami</h4>
                    <p>Aby uzyskać wysoką moc (100-120 W/m²) pod dużym oknem bez betonu, należy przewidzieć układ rur w rozstawie <strong>co 7,5 cm</strong> lub zastosowanie podwójnej lameli.</p>
                </div>
            </div>
            
            <div class="rule-card">
                <div class="rule-number">4</div>
                <div class="rule-content">
                    <h4>Projekt warstwy wykończeniowej (opór cieplny)</h4>
                    <p>Panele laminowane: moc spada o 10-15%. Deska lita: moc spada o 20%. <strong>Dywany z długim włosiem (R > 0,25): moc spada o 50% – instalacja przestaje grzać!</strong></p>
                </div>
            </div>
            
            <div class="rule-card">
                <div class="rule-number">5</div>
                <div class="rule-content">
                    <h4>Automatyka i ograniczenie temperatury (RTL)</h4>
                    <p>Wymagany jest zawór RTL lub termostat. Maksymalna temperatura zasilania to <strong>40-45°C</strong>. Przekroczenie tej wartości gwarantuje powstanie szpar w parkiecie i zniszczenie podłogi.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="auditor-interactive-section">
        <div class="interactive-title">
            <h4>Audytor Błędów Projektowych</h4>
            <p>Sprawdź w praktyce! Zmieniaj parametry i zobacz, jak algorytm ocenia poprawność projektu.</p>
        </div>

        <div class="config-panel">
            <div class="input-group">
                <span class="input-label">Rozstaw rur (Ad. 1)</span>
                <select id="sim-spacing" class="form-control">
                    <option value="10">Co 10 cm (Wysoka moc)</option>
                    <option value="15" selected>Co 15 cm (Standard)</option>
                    <option value="20">Co 20 cm (Błąd projektowy)</option>
                </select>
            </div>

            <div class="input-group">
                <span class="input-label">Rodzaj lameli (Ad. 2)</span>
                <select id="sim-lamella" class="form-control">
                    <option value="full" selected>Pełne skrzydło (Optymalne)</option>
                    <option value="narrow">Wąskie paski (Tanie)</option>
                </select>
            </div>

            <div class="input-group">
                <span class="input-label">Wykończenie podłogi (Ad. 4)</span>
                <select id="sim-floor" class="form-control">
                    <option value="tiles" selected>Płytki ceramiczne (R ≈ 0.02)</option>
                    <option value="panels">Panele laminowane (R ≈ 0.10)</option>
                    <option value="wood">Deska lita/warstwowa (R ≈ 0.12)</option>
                    <option value="carpet">Gruby dywan (R > 0.25)</option>
                </select>
            </div>

            <div class="input-group" style="margin-bottom:0;">
                <div class="temp-row">
                    <span class="input-label" style="margin:0;">Temp. zasilania (Ad. 5)</span>
                    <span id="sim-temp-val">35°C</span>
                </div>
                <input type="range" id="sim-temp" min="30" max="50" step="1" value="35">
            </div>
        </div>

        <div class="results-panel">
            <div class="score-box" id="score-container">
                <span class="score-label">Szacowana wydajność instalacji</span>
                <div class="score-value" id="sim-efficiency">100%</div>
            </div>

            <div class="alerts-container">
                <div class="alert-item alert-success" id="alert-ok">✅ Projekt poprawny. Dobra wydajność i bezpieczne parametry.</div>
                
                <div class="alert-item alert-danger" id="alert-spacing">❌ <strong>BŁĄD (Pkt 1):</strong> Rozstaw co 20 cm w systemie suchym spowoduje niedogrzanie pomieszczenia i odczuwalną &#8222;zebrę termiczną&#8221; na podłodze.</div>
                
                <div class="alert-item alert-warning" id="alert-lamella">⚠️ <strong>OSTRZEŻENIE (Pkt 2):</strong> Zastosowanie wąskich lameli obniża realną moc grzewczą o 20-30%. Zwiększ zagęszczenie rur.</div>
                
                <div class="alert-item alert-danger" id="alert-carpet">❌ <strong>KRYTYCZNY BŁĄD (Pkt 4):</strong> Gruby dywan działa jak izolator (R > 0.25). Ogrzewanie podłogowe zostało zablokowane i nie ogrzeje pokoju!</div>
                
                <div class="alert-item alert-danger" id="alert-temp">❌ <strong>KRYTYCZNY BŁĄD (Pkt 5):</strong> Temperatura przekracza 40°C przy podłodze drewnianej/laminowanej! Gwarantowane wypaczenie podłogi i szpary. Brak zaworu RTL!</div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('auditor-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten Audytor Projektu jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // LOGIKA AUDYTORA
    const elSpacing = document.getElementById('sim-spacing');
    const elLamella = document.getElementById('sim-lamella');
    const elFloor = document.getElementById('sim-floor');
    const elTemp = document.getElementById('sim-temp');
    const valTemp = document.getElementById('sim-temp-val');
    const elEfficiency = document.getElementById('sim-efficiency');
    const boxScore = document.getElementById('score-container');

    // Alerty
    const alertOk = document.getElementById('alert-ok');
    const alertSpacing = document.getElementById('alert-spacing');
    const alertLamella = document.getElementById('alert-lamella');
    const alertCarpet = document.getElementById('alert-carpet');
    const alertTemp = document.getElementById('alert-temp');

    function calculateAudit() {
        const spacing = parseInt(elSpacing.value);
        const lamella = elLamella.value;
        const floor = elFloor.value;
        const temp = parseInt(elTemp.value);
        
        valTemp.innerText = temp + "°C";

        let efficiency = 100; // Baza: 10cm, pełna lamela, płytki
        let hasErrors = false;

        // Reset alertów
        alertOk.style.display = 'none';
        alertSpacing.style.display = 'none';
        alertLamella.style.display = 'none';
        alertCarpet.style.display = 'none';
        alertTemp.style.display = 'none';

        // 1. Spacing Logic
        if(spacing === 15) efficiency -= 15;
        if(spacing === 20) {
            efficiency -= 35;
            alertSpacing.style.display = 'block';
            hasErrors = true;
        }

        // 2. Lamella Logic
        if(lamella === 'narrow') {
            efficiency -= 25;
            alertLamella.style.display = 'block';
            hasErrors = true;
        }

        // 3. Floor Logic
        if(floor === 'panels') efficiency -= 15;
        if(floor === 'wood') efficiency -= 20;
        if(floor === 'carpet') {
            efficiency -= 60;
            alertCarpet.style.display = 'block';
            hasErrors = true;
        }

        // 4. Temp & Floor Safety Logic
        if(temp > 40 && (floor === 'panels' || floor === 'wood')) {
            alertTemp.style.display = 'block';
            hasErrors = true;
        }
        
        // Zwiększenie wydajności od temperatury (uproszczone dla UI)
        if(temp > 35) {
            efficiency += (temp - 35) * 3; 
        }

        // Ograniczenia wizualne
        if(efficiency < 0) efficiency = 0;
        if(efficiency > 120) efficiency = 120;

        elEfficiency.innerText = Math.round(efficiency) + "%";

        // Style i podsumowanie
        if(hasErrors) {
            boxScore.style.borderColor = "var(--danger)";
            elEfficiency.style.color = "var(--danger)";
        } else {
            boxScore.style.borderColor = "var(--success)";
            elEfficiency.style.color = "var(--success)";
            alertOk.style.display = 'block';
        }
        
        // Wyjątek - niska wydajność bez "twardych" błędów (np standardowy spadek)
        if(!hasErrors && efficiency < 75) {
            boxScore.style.borderColor = "var(--warning)";
            elEfficiency.style.color = "var(--warning)";
            alertOk.style.display = 'none';
            alertLamella.style.display = 'block'; // Pokaż jako ogólne ostrzeżenie by coś poprawić
            alertLamella.innerHTML = "⚠️ <strong>OSTRZEŻENIE:</strong> Układ jest bezpieczny, ale jego wydajność jest niska. Rozważ wyższą temperaturę lub gęstszy rozstaw rur.";
        }
    }

    [elSpacing, elLamella, elFloor, elTemp].forEach(el => {
        el.addEventListener('input', calculateAudit);
    });

    calculateAudit(); // init
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --bg-light: #f8fafc;
}

.premium-intro-block {
    max-width: 900px;
    margin: 40px auto;
    padding: 35px 45px;
    background: linear-gradient(145deg, #ffffff, var(--bg-light));
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    font-family: 'Inter', -apple-system, sans-serif;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-top: 1px solid #f1f5f9;
    border-right: 1px solid #f1f5f9;
    border-bottom: 1px solid #f1f5f9;
}

.premium-intro-block:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
}

.intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #eff6ff;
    color: var(--accent);
    padding: 6px 14px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 16px;
}

.premium-intro-block h2 {
    color: var(--primary);
    font-size: 26px;
    font-weight: 900;
    margin-top: 0;
    margin-bottom: 16px;
    line-height: 1.3;
}

.premium-intro-block p {
    color: #475569;
    font-size: 16px;
    line-height: 1.7;
    margin: 0;
    font-weight: 400;
}

@media (max-width: 600px) {
    .premium-intro-block {
        padding: 25px 20px;
        margin: 20px 15px;
    }
    .premium-intro-block h2 {
        font-size: 22px;
    }
}
</style>

<div class="premium-intro-block">
    <div class="intro-badge">
        <span>⚙️</span> Analiza Inżynierska
    </div>
    <h2>Dobór mocy i wydajności – obliczenia, kalkulator i praktyczne przykłady.</h2>
    <p>Przejdźmy do twardych danych. Aby system grzał efektywnie, musimy dostarczyć odpowiednią ilość energii. Poniżej przedstawiam sposób obliczeń i konkretne liczby dla systemu suchego.</p>
</div>



<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

.premium-chart-box {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid #f1f5f9;
    overflow: hidden;
    color: var(--primary);
}

.chart-header {
    padding: 30px 40px 20px 40px;
    border-bottom: 1px solid #f1f5f9;
}

.chart-header h3 {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
}

.chart-header p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
}

.chart-canvas-wrapper {
    padding: 30px 40px;
    position: relative;
    height: 400px;
    width: 100%;
}

.chart-footer {
    padding: 25px 40px;
    background: var(--bg-light);
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.chart-icon {
    font-size: 24px;
    line-height: 1;
}

.chart-conclusion {
    margin: 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
}

.chart-conclusion strong {
    color: var(--danger);
}

@media (max-width: 600px) {
    .chart-header, .chart-canvas-wrapper, .chart-footer {
        padding: 20px;
    }
    .chart-canvas-wrapper {
        height: 300px;
    }
}
</style>

<div class="premium-chart-box" id="chart-app-container">
    <div class="chart-header">
        <h3>Wykres zależności mocy od temperatury zasilania i pokrycia podłogi</h3>
        <p>System suchy: rura PEX 14mm, rozstaw 15cm, lamele aluminiowe pełne <br><a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Analiza przygotowana przez Projekt-Ogrzewania.pl</a></p>
    </div>
    
    <div class="chart-canvas-wrapper">
        <canvas id="powerFloorChart"></canvas>
    </div>
    
    <div class="chart-footer">
        <div class="chart-icon">💡</div>
        <p class="chart-conclusion">
            <strong>Wniosek z wykresu:</strong> Przy zasilaniu 35°C (idealnym dla pomp ciepła) moc jest wystarczająca dla <strong>nowych, ciepłych domów</strong> (~40-50 W/m²). Dla budynków po termomodernizacji (zapotrzebowanie ~70-80 W/m²) konieczne jest podniesienie temperatury zasilania lub wybór płytek ceramicznych, aby uniknąć niedogrzania.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('chart-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Wykres chroniony prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny wykres jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany na tę stronę nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; // Blokuje ładowanie reszty kodu, wykres się nie narysuje
    }

    // JEŚLI DOMENA SIĘ ZGADZA - RYSUJEMY WYKRES
    const canvasEl = document.getElementById('powerFloorChart');
    if(!canvasEl) return;
    
    const ctx = canvasEl.getContext('2d');
    
    const labels = ['35°C', '40°C', '45°C', '50°C (ryzyko)'];
    const dataTiles = [62, 82, 102, 122];
    const dataPanels = [52, 68, 85, 102];
    const dataWood = [45, 59, 73, 88];

    new Chart(ctx, {
        type: 'line',
        data: {
            labels: labels,
            datasets: [
                {
                    label: 'Płytki Ceramiczne',
                    data: dataTiles,
                    borderColor: '#ea580c', 
                    backgroundColor: '#ea580c',
                    borderWidth: 3,
                    tension: 0.3,
                    pointBackgroundColor: '#ffffff',
                    pointBorderColor: '#ea580c',
                    pointBorderWidth: 3,
                    pointRadius: 6,
                    pointHoverRadius: 9
                },
                {
                    label: 'Panele Laminowane',
                    data: dataPanels,
                    borderColor: '#2563eb', 
                    backgroundColor: '#2563eb',
                    borderWidth: 3,
                    tension: 0.3,
                    pointBackgroundColor: '#ffffff',
                    pointBorderColor: '#2563eb',
                    pointBorderWidth: 3,
                    pointRadius: 6,
                    pointHoverRadius: 9
                },
                {
                    label: 'Deska Dębowa',
                    data: dataWood,
                    borderColor: '#16a34a', 
                    backgroundColor: '#16a34a',
                    borderWidth: 3,
                    tension: 0.3,
                    pointBackgroundColor: '#ffffff',
                    pointBorderColor: '#16a34a',
                    pointBorderWidth: 3,
                    pointRadius: 6,
                    pointHoverRadius: 9
                }
            ]
        },
        options: {
            responsive: true,
            maintainAspectRatio: false,
            plugins: {
                legend: {
                    display: true,
                    position: 'top',
                    labels: {
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#475569',
                        usePointStyle: true,
                        padding: 20
                    }
                },
                tooltip: {
                    backgroundColor: '#0f172a',
                    titleFont: { family: 'Inter', size: 14, weight: 'bold' },
                    bodyFont: { family: 'Inter', size: 14 },
                    padding: 12,
                    displayColors: true,
                    callbacks: {
                        label: function(context) {
                            return context.dataset.label + ': ' + context.parsed.y + ' W/m²';
                        }
                    }
                }
            },
            scales: {
                x: {
                    grid: {
                        display: false
                    },
                    ticks: {
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#64748b'
                    },
                    title: {
                        display: true,
                        text: 'Temperatura zasilania',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {top: 10}
                    }
                },
                y: {
                    beginAtZero: true,
                    suggestedMax: 130,
                    grid: {
                        color: '#f1f5f9',
                        drawBorder: false
                    },
                    ticks: {
                        stepSize: 20,
                        font: { family: 'Inter', size: 13 },
                        color: '#64748b',
                        callback: function(value) {
                            return value + ' W';
                        }
                    },
                    title: {
                        display: true,
                        text: 'Moc grzewcza (W/m²)',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {bottom: 10}
                    }
                }
            }
        }
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

.calc-intro { max-width: 1150px; margin: 40px auto 10px auto; text-align: center; padding: 0 20px; }
.calc-intro h2 { font-size: 28px; font-weight: 900; color: var(--primary); margin-bottom: 15px; }
.calc-intro p { font-size: 16px; color: #475569; line-height: 1.6; max-width: 800px; margin: 0 auto; }

.screed-calc { max-width: 1150px; margin: 30px auto; font-family: 'Inter', -apple-system, sans-serif; background: #ffffff; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1); overflow: hidden; color: var(--primary); }
.calc-grid { display: grid; grid-template-columns: 1.2fr 1fr; }

.config-side { padding: 40px; background: #ffffff; }
.section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: #94a3b8; letter-spacing: 1.2px; margin-bottom: 20px; display: block; }

.type-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 30px; }
.type-btn { padding: 14px 8px; border: 2px solid #cbd5e1; border-radius: 12px; cursor: pointer; text-align: center; font-weight: 700; font-size: 12px; color: #475569; background: #fff; transition: all 0.2s; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.type-btn span { margin-top: 4px; }
.type-btn.active { border-color: var(--accent); background: #eff6ff; color: var(--accent); box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1); }

.input-wrap { margin-bottom: 25px; }
.input-label-row { display: flex; justify-content: space-between; margin-bottom: 8px; align-items: center; }
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge { background: #f1f5f9; padding: 4px 12px; border-radius: 8px; font-weight: 800; color: var(--accent); font-size: 14px; }

input[type=range] { width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px; }
input[type=range]::-webkit-slider-thumb { appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer; }

.result-side { padding: 40px; background: var(--bg-light); border-left: 1px solid #f1f5f9; display: flex; flex-direction: column; justify-content: center; }
.main-score-box { background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--danger); transition: 0.3s; }
.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--danger); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg { margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: block; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: center; }

.tech-grid { background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 16px; }
.tech-item { display: flex; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid #1e293b; align-items: center; }
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; line-height: 1.4; padding-right: 15px; }
.tech-item strong { font-size: 16px; text-align: right; white-space: nowrap; }

.footer-cta { margin: 0 40px 40px 40px; padding: 30px; background: #eff6ff; border-radius: 20px; border-left: 6px solid var(--accent); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.cta-text-side { max-width: 550px; }
.cta-buttons-stack { display: flex; flex-direction: column; gap: 12px; min-width: 280px; }
.cta-btn { display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer; }
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator Mocy Systemu Suchego</h2>
    <p>Sprawdź, czy podłogówka bez wylewki ogrzeje Twój dom! Autorskie narzędzie stworzone przez inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz standard izolacji budynku, planowane wykończenie podłogi oraz temperaturę, a algorytm wyliczy realną moc grzewczą i wskaże ewentualne ryzyko niedogrzania.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Standard izolacji budynku</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-new">NOWY DOM<span style="font-size:10px; font-weight:400">Zapotrzebowanie ok. 50 W/m²</span></div>
                <div class="type-btn" id="btn-old">STARY DOM<span style="font-size:10px; font-weight:400">Zapotrzebowanie ok. 80 W/m²</span></div>
            </div>

            <span class="section-title">2. Planowane wykończenie podłogi</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-tiles">PŁYTKI CERAMICZNE<span style="font-size:10px; font-weight:400">Najlepsze przewodnictwo (k=1.0)</span></div>
                <div class="type-btn" id="btn-panels">PANELE LAMINOWANE<span style="font-size:10px; font-weight:400">Opór cieplny izolatora (k=0.9)</span></div>
            </div>

            <span class="section-title">3. Parametry pracy układu</span>
            <div class="input-wrap" style="margin-bottom: 0;">
                <div class="input-label-row"><label>Temperatura zasilania (T_zas)</label><span class="val-badge"><span id="v-temp">35</span> °C</span></div>
                <input type="range" id="tempZas" min="30" max="45" step="1" value="35">
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Realna moc grzewcza systemu</span>
                <span class="score-num"><span id="resPower">&#8212;</span> W/m²</span>
                <div id="risk-msg">System ogrzeje dom bez problemu!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Wymagane zapotrzebowanie budynku:</span><strong id="resDemand">&#8212;</strong></div>
                <div class="tech-item"><span>Szacowany czas nagrzewania:</span><strong>20 &#8211; 40 minut</strong></div>
                <div class="tech-item"><span>Ryzyko niedogrzania w mrozy:</span><strong id="resOpLoss" style="color:#f87171">&#8212;</strong></div>
                <div class="tech-item"><span>Bezpieczeństwo pokrycia podłogi:</span><strong id="resFloorSafety" style="color:#16a34a">Optymalne</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Nie zgaduj parametrów podłogówki</h3>
            <p style="margin:0; font-size:14px; color:#475569" id="footer-desc">System suchy nie wybacza błędów. Źle dobrany rozstaw rur lub zbyt grube panele sprawią, że zapłacisz krocie za instalację, która nie ogrzeje domu. Zleć nam precyzyjne obliczenia projektowe.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('screed-calc-app').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten kalkulator jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // STAN APLIKACJI
    let houseType = "new";
    let floorType = "tiles";

    // ELEMENTY DOM
    const btnNew = document.getElementById("btn-new");
    const btnOld = document.getElementById("btn-old");
    const btnTiles = document.getElementById("btn-tiles");
    const btnPanels = document.getElementById("btn-panels");
    
    const tempZas = document.getElementById("tempZas");
    const vTemp = document.getElementById("v-temp");

    const resPower = document.getElementById("resPower");
    const resDemand = document.getElementById("resDemand");
    const resOpLoss = document.getElementById("resOpLoss");
    const resFloorSafety = document.getElementById("resFloorSafety");
    
    const mainBox = document.getElementById("mainBox");
    const riskMsg = document.getElementById("risk-msg");

    // GŁÓWNA FUNKCJA OBLICZENIOWA
    function calculate() {
        let t = parseFloat(tempZas.value);
        vTemp.innerText = t;

        let targetPower = (houseType === "new") ? 50 : 80;
        let k = (floorType === "tiles") ? 1.0 : 0.9;

        // Wzór na moc: (T_zas - 2.5 - 20) * 4.5 * k
        let power = (t - 2.5 - 20) * 4.5 * k;
        if (power < 0) power = 0;

        resPower.innerText = Math.round(power);
        resDemand.innerText = targetPower + " W/m²";

        // Logika Niedogrzania
        if (power >= targetPower) {
            mainBox.style.borderBottomColor = "var(--success)";
            resPower.style.color = "var(--success)";
            
            riskMsg.style.backgroundColor = "#dcfce7";
            riskMsg.style.color = "var(--success)";
            riskMsg.style.borderColor = "#bbf7d0";
            riskMsg.innerText = "System ogrzeje dom bez problemu!";
            
            resOpLoss.innerText = "Brak (Pełen komfort)";
            resOpLoss.style.color = "var(--success)";
        } else {
            mainBox.style.borderBottomColor = "var(--danger)";
            resPower.style.color = "var(--danger)";
            
            riskMsg.style.backgroundColor = "#fee2e2";
            riskMsg.style.color = "var(--danger)";
            riskMsg.style.borderColor = "#fecaca";
            
            let missing = Math.round(targetPower - power);
            riskMsg.innerText = "Ryzyko niedogrzania! Brakuje ok. " + missing + " W/m².";
            
            resOpLoss.innerText = "Tak (niedogrzanie)";
            resOpLoss.style.color = "var(--danger)";
        }

        // Logika Przegrzania Paneli
        if (floorType === "panels" && t > 40) {
            resFloorSafety.innerText = "OSTRZEŻENIE (T>40°C)";
            resFloorSafety.style.color = "var(--danger)";
            riskMsg.innerText += " Uwaga: Ryzyko wypaczenia paneli!";
        } else {
            resFloorSafety.innerText = "Optymalne";
            resFloorSafety.style.color = "var(--success)";
        }
    }

    // EVENT LISTENERY
    if(btnNew && btnOld) {
        btnNew.addEventListener("click", function() {
            houseType = "new";
            btnOld.classList.remove("active");
            btnNew.classList.add("active");
            calculate();
        });
        btnOld.addEventListener("click", function() {
            houseType = "old";
            btnNew.classList.remove("active");
            btnOld.classList.add("active");
            calculate();
        });
    }

    if(btnTiles && btnPanels) {
        btnTiles.addEventListener("click", function() {
            floorType = "tiles";
            btnPanels.classList.remove("active");
            btnTiles.classList.add("active");
            calculate();
        });
        btnPanels.addEventListener("click", function() {
            floorType = "panels";
            btnTiles.classList.remove("active");
            btnPanels.classList.add("active");
            calculate();
        });
    }

    if(tempZas) {
        tempZas.addEventListener("input", calculate);
    }

    // Inicjalizacja
    calculate();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-steps-widget {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    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;
}

.steps-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.steps-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.steps-header p {
    margin: 0 auto;
    max-width: 700px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.steps-container {
    padding: 20px 40px 40px 40px;
}

.step-item {
    border: 2px solid transparent;
    border-radius: 16px;
    margin-bottom: 12px;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    border: 1px solid #f1f5f9;
    transition: all 0.3s ease;
}

.step-item.active {
    border-color: #bfdbfe;
    background: #eff6ff;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.1);
}

.step-header {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    cursor: pointer;
    gap: 20px;
}

.step-number {
    width: 40px;
    height: 40px;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.step-item.active .step-number {
    background: var(--accent);
    color: white;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.step-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--primary);
    flex-grow: 1;
}

.step-item.active .step-title {
    color: var(--accent);
}

.step-toggle {
    font-size: 24px;
    color: #94a3b8;
    transition: transform 0.3s ease;
}

.step-item.active .step-toggle {
    transform: rotate(180deg);
    color: var(--accent);
}

.step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0 25px;
}

.step-content-inner {
    padding-bottom: 25px;
    padding-left: 60px; /* Aligns with text */
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.step-content-inner p { margin-top: 0; margin-bottom: 15px; }
.step-content-inner p:last-child { margin-bottom: 0; }

.step-content-inner a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #bfdbfe;
    text-underline-offset: 3px;
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--warning);
    padding: 12px 16px;
    border-radius: 0 8px 8px 0;
    margin: 15px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.split-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 15px;
}

.option-card {
    background: white;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
}

.option-card h5 {
    margin: 0 0 8px 0;
    color: var(--primary);
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.option-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
}

@media (max-width: 600px) {
    .steps-header { padding: 25px 20px; }
    .steps-container { padding: 20px; }
    .step-header { padding: 15px; gap: 15px; }
    .step-title { font-size: 15px; }
    .step-content-inner { padding-left: 0; padding-bottom: 20px; font-size: 14px; }
    .split-options { grid-template-columns: 1fr; }
}
</style>

<div class="premium-steps-widget" id="steps-app-container">
    <div class="steps-header">
        <h3>Montaż krok po kroku – na co zwrócić uwagę?</h3>
        <p>System suchy wybacza znacznie mniej błędów niż tradycyjna wylewka. Poniżej znajdziesz 6 kluczowych etapów, których rygorystyczne przestrzeganie gwarantuje sukces i bezpieczeństwo instalacji.</p>
    </div>

    <div class="steps-container">
        
        <div class="step-item active">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">1</div>
                <div class="step-title">Przygotowanie podłoża</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content" style="max-height: 500px;">
                <div class="step-content-inner">
                    <p>Jak wspomniano, to warunek <strong>sine qua non</strong> (niezbędny). Użyj wylewki samopoziomującej o minimalnej grubości, aby uzyskać idealną płaszczyznę.</p>
                    <div class="highlight-box">
                        ⚠️ Odchylenie od poziomu nie może przekraczać <strong>2 mm na 2 metrach długości</strong> (jest to rygorystyczna norma dla płyt systemowych).
                    </div>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">2</div>
                <div class="step-title">Izolacja przeciwwilgociowa i brzegowa</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Mimo że technologia jest &#8222;sucha&#8221; i nie ma tu wody zarobowej, ochrona przed wilgocią z zewnątrz jest obowiązkowa.</p>
                    <ul>
                        <li><strong>Folia PE 0,2 mm:</strong> Konieczna jako ochrona przed wilgocią podciąganą ze stropu.</li>
                        <li><strong>Taśma dylatacyjna brzegowa:</strong> Musi być przyklejona do wszystkich ścian i słupów. Suchy jastrych „pracuje” pod wpływem temperatury i musi mieć miejsce na rozszerzenie.</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">3</div>
                <div class="step-title">Układanie płyt systemowych i lameli</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Zawsze zaczynaj od rogu pomieszczenia. Wciskaj rurę grzewczą <strong>z wyczuciem</strong>. Zbyt mocne dobijanie młotkiem w lamele aluminiowe może spowodować ich pęknięcie lub trwałe odkształcenie kanału.</p>
                    <p>Unikaj cięcia <a href="https://projekt-ogrzewania.pl/produkt/lamel-grzejny-metalowy/">blachy aluminiowej</a> szlifierką kątową – powstające podczas cięcia iskry natychmiast wypalają dziury w styropianie bazowym.</p>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">4</div>
                <div class="step-title">Test szczelności – obowiązkowy!</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Przed przykryciem rur suchym jastrychem <strong>musisz</strong> przeprowadzić <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbę ciśnieniową</a> instalacji.</p>
                    <div class="highlight-box" style="border-left-color: var(--danger);">
                        💧 Wykonaj test wodą pod ciśnieniem <strong>4-6 barów</strong> przez minimum <strong>24 godziny</strong>. Manometr musi być dobrze widoczny! Najgorszą rzeczą, jaka może się przydarzyć, jest przeciek pod gotową, kosztowną podłogą dębową.
                    </div>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">5</div>
                <div class="step-title">Warstwa rozdzielcza – kluczowy moment</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Sposób wykonania tej warstwy zależy w pełni od tego, jaki materiał położysz na wierzchu:</p>
                    <div class="split-options">
                        <div class="option-card">
                            <h5>🪵 Jeśli kładziesz panele:</h5>
                            <p>Użyj specjalnej maty pod ogrzewanie podłogowe (np. z włókna poliestrowego o symbolu TC lub certyfikowanej folii perforowanej). <strong>Nigdy</strong> nie używaj standardowej pianki PE!</p>
                        </div>
                        <div class="option-card">
                            <h5>🧱 Jeśli kładziesz płytki:</h5>
                            <p>Ułóż dwie warstwy płyt gipsowo-włóknowych (np. 2x 12,5 mm) na kleju systemowym. Skręć je wkrętami uważając, by nie przebić rur! Wymaga to znajomości planu pętli.</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleStep(this)">
                <div class="step-number">6</div>
                <div class="step-title">Wygrzewanie wstępne</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Przed położeniem ostatecznych płytek lub paneli z drewna, koniecznie należy przeprowadzić protokolarne wygrzanie wstępne wylewki suchej.</p>
                    <div class="highlight-box" style="border-left-color: var(--success);">
                        📈 Proces zaczynamy od zasilania o temperaturze <strong>25°C</strong> i podnosimy ją o <strong>5°C dziennie</strong>, aż do osiągnięcia maksymalnej temperatury projektowej.
                    </div>
                    <p>Stabilizuje to naprężenia w suchym jastrychu i pozwala na bezpieczne wyschnięcie kleju montażowego.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
// 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
!function(){document.addEventListener("DOMContentLoaded",function(){var e=window.location.hostname,t=["projekt-ogrzewania.pl","www.projekt-ogrzewania.pl","localhost","127.0.0.1",""];if(-1===t.indexOf(e)){var n=document.getElementById("steps-app-container");return n&&(n.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;"><span style="font-size: 48px; margin-bottom: 20px;">🔒</span><h3 style="margin-top:0; font-size: 24px;">Przewodnik chroniony prawem autorskim</h3><p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny element jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p><a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a></div>`),void 0}})}();

// 2. LOGIKA AKORDEONU
function toggleStep(element) {
    // Znajdź główny kontener klikniętego kroku
    const parent = element.parentElement;
    const content = parent.querySelector('.step-content');
    
    // Jeśli kliknięto w już otwarty - zamknij go
    if (parent.classList.contains('active')) {
        parent.classList.remove('active');
        content.style.maxHeight = null;
    } else {
        // Opcjonalne: Zamknij wszystkie inne (odkomentuj, jeśli chcesz by był otwarty tylko 1 na raz)
        /*
        const allItems = document.querySelectorAll('.step-item');
        allItems.forEach(item => {
            item.classList.remove('active');
            item.querySelector('.step-content').style.maxHeight = null;
        });
        */
        
        // Otwórz kliknięty
        parent.classList.add('active');
        content.style.maxHeight = content.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-concept-box {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    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;
    color: var(--primary);
}

.concept-text-area {
    padding: 35px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.concept-text-area h3 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
}

.concept-text-area p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.concept-text-area p:last-child {
    margin-bottom: 0;
}

.highlight-text {
    background: #eff6ff;
    padding: 12px 20px;
    border-left: 4px solid var(--accent);
    border-radius: 0 12px 12px 0;
    font-weight: 600;
    color: var(--primary);
    margin: 20px 0;
}

/* INTERAKTYWNA SYMULACJA */
.simulation-area {
    padding: 35px 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.time-control {
    background: var(--bg-light);
    padding: 20px 30px;
    border-radius: 16px;
    margin-bottom: 30px;
    border: 1px solid var(--border-color);
}

.time-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.time-label {
    font-weight: 800;
    font-size: 16px;
    color: var(--primary);
}

.sun-status {
    font-size: 14px;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: all 0.3s;
}

input[type=range] { width: 100%; height: 8px; background: #cbd5e1; border-radius: 10px; appearance: none; outline: none; }
input[type=range]::-webkit-slider-thumb { appearance: none; width: 26px; height: 26px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer; }

.thermo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.thermo-card {
    border: 2px solid var(--border-color);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}

.thermo-card.dry { border-color: #bfdbfe; background: #f8fafc; }
.thermo-card.wet { border-color: #e2e8f0; }

.thermo-title {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 15px;
    color: var(--primary);
}

.temp-display {
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.3s;
}

.temp-status {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.math-conclusion {
    padding: 25px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
}

.math-conclusion strong { color: var(--primary); }

@media (max-width: 768px) {
    .concept-text-area, .simulation-area, .math-conclusion { padding: 25px 20px; }
    .thermo-grid { grid-template-columns: 1fr; gap: 15px; }
    .time-control { padding: 20px; }
}
</style>

<div class="premium-concept-box" id="concept-app-container">
    
    <div class="concept-text-area">
        <h3>Opłacalność eksploatacji – czy sucha podłogówka jest droższa w użytkowaniu?</h3>
        <p>Istnieje mit, że system suchy zużywa więcej energii niż beton. <strong>To nieprawda.</strong> Roczne zużycie energii na ogrzewanie zależy od strat ciepła budynku, a nie od rodzaju jastrychu.</p>
        
        <div class="highlight-text">
            <strong>Przewaga systemu suchego:</strong> W okresach przejściowych (kwiecień, październik), gdy słońce dogrzewa dom, tradycyjna wylewka betonowa dalej grzeje (bo jest nagrzana do 26°C). Musimy otwierać okna, marnując ciepło.
        </div>
        
        <p>System suchy wychładza się w 30 minut po wyłączeniu pompy, co pozwala na lepsze wykorzystanie zysków bytowych i słonecznych. Szacuje się, że w domach z dużymi przeszkleniami południowymi system suchy może dać <strong>5-8% oszczędności energii</strong> w skali roku w porównaniu do ciężkiej wylewki.</p>
    </div>

    <div class="simulation-area">
        <span class="sim-title">Wizualizacja: Wiosenny dzień (okna na południe)</span>
        
        <div class="time-control">
            <div class="time-header">
                <div class="time-label">Godzina: <span id="time-val" style="color: var(--accent); font-size: 20px;">08:00</span></div>
                <div class="sun-status" id="sun-badge">☁️ Poranek (Chłodno)</div>
            </div>
            <input type="range" id="time-slider" min="8" max="18" step="1" value="8">
        </div>

        <div class="thermo-grid">
            <div class="thermo-card dry">
                <div class="thermo-title">System Suchy (Lekki)</div>
                <div class="temp-display" id="temp-dry" style="color: var(--success);">21°C</div>
                <div class="temp-status" id="status-dry">Ogrzewanie działa. Idealna temperatura.</div>
            </div>
            
            <div class="thermo-card wet">
                <div class="thermo-title">System Mokry (Beton)</div>
                <div class="temp-display" id="temp-wet" style="color: var(--success);">21°C</div>
                <div class="temp-status" id="status-wet">Ogrzewanie działa. Idealna temperatura.</div>
            </div>
        </div>
    </div>

    <div class="math-conclusion">
        <strong>Przykład wyliczenia:</strong> Dom 150 m², zapotrzebowanie 50 kWh/m²/rok. Koszt ogrzewania pompą ciepła to ok. 2500 zł rocznie. Oszczędność (8%) wynosi <strong>200 zł rocznie</strong>.<br><br>
        <strong>Czy warto?</strong> Różnica w cenie instalacji dla 150 m² wynosi ok. 15 000 zł na starcie. Zwrot z samych oszczędności energetycznych trwałby 75 lat. Oznacza to, że system suchy wybiera się <strong>NIE dla oszczędności na rachunkach</strong>, ale dla rozwiązania problemu konstrukcyjnego (waga, wysokość) lub czasu realizacji.
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('concept-app-container').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;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Treść chroniona prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany na tę stronę nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // LOGIKA SYMULACJI CZASU I TEMPERATURY
    const slider = document.getElementById("time-slider");
    const timeVal = document.getElementById("time-val");
    const sunBadge = document.getElementById("sun-badge");
    
    const tempDry = document.getElementById("temp-dry");
    const statusDry = document.getElementById("status-dry");
    
    const tempWet = document.getElementById("temp-wet");
    const statusWet = document.getElementById("status-wet");

    function updateSimulation() {
        const hour = parseInt(slider.value);
        timeVal.innerText = (hour < 10 ? "0" + hour : hour) + ":00";
        
        // Logika dla systemu suchego (idealnie trzyma zadaną temp ok 21-22C)
        // Logika dla wylewki (przegrzewa się, gdy wyjdzie słońce)
        
        if (hour >= 8 && hour <= 10) {
            sunBadge.innerHTML = "☁️ Poranek (Chłodno)";
            sunBadge.style.color = "#64748b";
            sunBadge.style.background = "#f1f5f9";
            
            tempDry.innerText = "21°C";
            tempDry.style.color = "var(--success)";
            statusDry.innerText = "Ogrzewanie włączone. Podłoga grzeje.";
            
            tempWet.innerText = "21°C";
            tempWet.style.color = "var(--success)";
            statusWet.innerText = "Ogrzewanie włączone. Wylewka się ładuje.";
        } 
        else if (hour >= 11 && hour <= 15) {
            sunBadge.innerHTML = "☀️ Silne słońce przez okna";
            sunBadge.style.color = "#b45309";
            sunBadge.style.background = "#fef3c7";
            
            tempDry.innerText = "22°C";
            tempDry.style.color = "var(--success)";
            statusDry.innerHTML = "Termostat wyłącza pompę. <strong>Podłoga natychmiast stygnie</strong>. Brak przegrzewania.";
            
            // Wylewka przegrzewa pokój
            let wetT = 21 + (hour - 10) * 1.5; 
            if(wetT > 25) wetT = 25; // max 25C
            
            tempWet.innerText = wetT + "°C";
            tempWet.style.color = "var(--danger)";
            statusWet.innerHTML = "Pompa wyłączona, ale <strong>nagrzany beton wciąż oddaje ciepło</strong>. Otwierasz okna by przewietrzyć!";
        }
        else if (hour > 15) {
            sunBadge.innerHTML = "🌙 Wieczór (Słońce zaszło)";
            sunBadge.style.color = "#4338ca";
            sunBadge.style.background = "#e0e7ff";
            
            tempDry.innerText = "21°C";
            tempDry.style.color = "var(--success)";
            statusDry.innerText = "Szybki start ogrzewania. Komfort zachowany.";
            
            tempWet.innerText = "22°C";
            tempWet.style.color = "var(--warning)";
            statusWet.innerText = "Temperatura powoli spada. Powolny rozruch wylewki.";
        }
    }

    slider.addEventListener("input", updateSimulation);
    updateSimulation(); // init
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-summary-box {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.summary-header {
    padding: 40px 40px 20px 40px;
    text-align: center;
}

.summary-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #1e293b;
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.summary-header h3 {
    margin: 0 0 20px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.summary-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    max-width: 750px;
    margin: 0 auto;
}

.summary-header p strong {
    color: var(--primary);
}

/* INTERAKTYWNE KARTY - 3 FILARY */
.pillars-container {
    padding: 10px 40px 30px 40px;
}

.pillars-title {
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--accent);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.pillars-title::before, .pillars-title::after {
    content: "";
    height: 2px;
    width: 40px;
    background: #bfdbfe;
    border-radius: 2px;
}

.pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.pillar-card {
    background: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    cursor: default;
    z-index: 1;
}

.pillar-card:hover {
    transform: translateY(-10px);
    border-color: var(--accent);
    box-shadow: 0 20px 25px -5px rgba(37, 99, 235, 0.1), 0 10px 10px -5px rgba(37, 99, 235, 0.04);
    z-index: 2;
}

.pillar-icon {
    font-size: 32px;
    margin-bottom: 15px;
    display: inline-block;
    transition: transform 0.4s;
}

.pillar-card:hover .pillar-icon {
    transform: scale(1.15) rotate(5deg);
}

.pillar-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 10px;
}

.pillar-desc {
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    margin: 0;
}

.pillar-card:hover .pillar-title {
    color: var(--accent);
}

.summary-footer {
    background: #ffffff;
    padding: 35px 40px;
    border-top: 1px solid var(--border-color);
    text-align: center;
}

.summary-footer p {
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
    margin: 0;
    font-weight: 500;
}

.summary-footer p strong {
    color: var(--accent);
    font-weight: 800;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 20px 15px 20px; }
    .summary-header h3 { font-size: 24px; }
    .pillars-container { padding: 10px 20px 30px 20px; }
    .pillars-grid { grid-template-columns: 1fr; gap: 15px; }
    .pillar-card { padding: 25px 20px; }
    .pillar-card:hover { transform: translateY(-5px); }
    .summary-footer { padding: 25px 20px; }
}
</style>

<div class="premium-summary-box" id="summary-app-container">
    
    <div class="summary-header">
        <div class="summary-badge">Podsumowanie</div>
        <h2>Rozwiązanie do zadań specjalnych</h2>
        <p>Ogrzewanie podłogowe wodne bez wylewki to wyrafinowane narzędzie w rękach świadomego inwestora i projektanta. Nie jest to technologia dla każdego nowego domu – tam króluje ekonomiczny beton. Jest to jednak <strong>jedyna słuszna droga, gdy strop woła o litość, a czas goni.</strong></p>
    </div>

    <div class="pillars-container">
        <div class="pillars-title">Trzy Filary Sukcesu</div>
        
        <div class="pillars-grid">
            <div class="pillar-card">
                <div class="pillar-icon">🛡️</div>
                <div class="pillar-title">Aluminium</div>
                <p class="pillar-desc">Metalowe lamele to serce układu. Bez nich nie ma mowy o równomiernym rozprowadzaniu ciepła pod podłogą.</p>
            </div>
            
            <div class="pillar-card">
                <div class="pillar-icon">🌡️</div>
                <div class="pillar-title">Niska temperatura</div>
                <p class="pillar-desc">Zasilanie na poziomie <strong>40°C</strong> to ściana, której bezwzględnie nie wolno przekraczać ze względów bezpieczeństwa.</p>
            </div>
            
            <div class="pillar-card">
                <div class="pillar-icon">📏</div>
                <div class="pillar-title">Równe podłoże</div>
                <p class="pillar-desc">Wylewka musi być idealnie płaska. W technologii suchej tolerancja na nierówności jest <strong>absolutnie zerowa</strong>.</p>
            </div>
        </div>
    </div>

    <div class="summary-footer">
        <p>Jeśli te rygorystyczne warunki zostaną spełnione, otrzymasz komfortową podłogę, która nagrzewa się w kilkanaście minut i waży tyle, co grubszy dywan. To technologia, która w starym budownictwie i nowoczesnym drewnianym szkielecie sprawdza się <strong>bezkonkurencyjnie</strong>.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    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('summary-app-container').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: 300px;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Treść chroniona prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To podsumowanie jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-myth-box {
    max-width: 1050px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.myth-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.myth-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

.myth-header p {
    margin: 0 auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.myth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px;
    background: #ffffff;
}

/* FLIP CARD STYLES */
.flip-card {
    background-color: transparent;
    width: 100%;
    min-height: 340px;
    perspective: 1000px;
    cursor: pointer;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
}

.flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
}

.flip-card-front {
    background-color: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}

.flip-card-back {
    background-color: #f0fdf4;
    border-color: #bbf7d0;
    color: var(--success);
    transform: rotateY(180deg);
}

.card-icon {
    font-size: 42px;
    margin-bottom: 15px;
    line-height: 1;
}

.card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    opacity: 0.8;
}

.card-text {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.flip-card-back .card-title {
    color: var(--success);
}

.flip-card-back .card-text {
    font-size: 14px;
    font-weight: 500;
    color: #166534;
    line-height: 1.6;
}

.flip-hint {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.8);
    padding: 6px 16px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.myth-summary {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
}

.myth-summary h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.myth-summary p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
}

@media (max-width: 900px) {
    .myth-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .flip-card { min-height: 280px; }
    .myth-summary { margin: 0 20px 25px 20px; padding: 25px 20px; }
    .myth-header { padding: 25px 20px; }
}
</style>

<div class="premium-myth-box" id="dry-system-myths-app">
    <div class="myth-header">
        <h3>Fakty i Mity: Ogrzewanie Bez Wylewki</h3>
        <p>System suchy obrósł wieloma mitami, które powielają nawet instalatorzy starej daty. Zanim zrezygnujesz z tej technologii na rzecz betonu, sprawdź jak jest naprawdę. <strong>Kliknij kartę, aby poznać prawdę.</strong></p>
    </div>

    <div class="myth-grid">
        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🏗️</div>
                    <div class="card-title">MIT #1</div>
                    <p class="card-text">&#8222;Wylewka betonowa jest dużo lepsza. Przecież można ją wylać nawet na stary, drewniany strop w kamienicy.&#8221;</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">⚖️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To ryzyko katastrofy budowlanej.</strong> Mokra wylewka to obciążenie rzędu 150-180 kg/m². W 50-metrowym mieszkaniu daje to 7,5 tony! System suchy waży zaledwie 22-35 kg/m², co czyni go jedynym ratunkiem dla drewnianych stropów.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">💸</div>
                    <div class="card-title">MIT #2</div>
                    <p class="card-text">&#8222;System bez betonu natychmiast stygnie, więc piec musi ciągle pracować, co zużywa znacznie więcej energii!&#8221;</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">📉</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To bzdura.</strong> Zużycie energii zależy od strat ciepła budynku. Co więcej, dzięki błyskawicznej reakcji, system suchy nie przegrzewa pomieszczeń wiosną, gdy słońce dogrzewa przez okna. Daje to nawet 5-8% oszczędności na rachunkach!</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">📐</div>
                    <div class="card-title">MIT #3</div>
                    <p class="card-text">&#8222;Podłogówkę suchą kładzie się błyskawicznie. Układam styropian z rurkami na starym stropie i gotowe.&#8221;</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">📏</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Tolerancja wynosi zero!</strong> Podłoże musi być absolutnie równe (max. 2mm na 2m). Jeśli położysz system na krzywym stropie, podłoga będzie &#8222;klawiszować&#8221;, stukać, a rury mogą wypaść z lameli. Cienka wylewka samopoziomująca jest niemal zawsze niezbędna.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="myth-summary">
        <h4>Podsumowując – czy warto rezygnować z betonu?</h4>
        <p>Ogrzewanie bez wylewki to precyzyjna inżynieria. Wymaga starannego przygotowania podłoża oraz bezwzględnego ograniczenia temperatury zasilania (maksymalnie 40-45°C). W zamian odwdzięcza się <strong>błyskawicznym nagrzewaniem (20-40 min)</strong>, brakiem 8-tygodniowych przestojów na schnięcie i, co najważniejsze, gwarantuje bezpieczeństwo starym, drewnianym konstrukcjom.</p>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x64\x72\x79\x2d\x73\x79\x73\x74\x65\x6d\x2d\x6d\x79\x74\x68\x73\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-questions {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.qa-header {
    text-align: center;
    margin-bottom: 40px;
}

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.qa-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.answers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-dry-system-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Czy lamele aluminiowe są na pewno konieczne?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie tak. Bez blachy aluminiowej rura schowana w styropianie nie odda ciepła na boki, co doprowadzi do efektu gorących i zimnych pasków na podłodze."
        }
      }, {
        "@type": "Question",
        "name": "Jak przygotujemy podłoże pod płyty systemowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tolerancja wynosi zero. Przed rozpoczęciem układania musimy zweryfikować poziomy i w razie potrzeby wylać masę samopoziomującą, inaczej podłoga będzie stukać i klawiszować."
        }
      }, {
        "@type": "Question",
        "name": "Jaką temperaturę zasilania ustawimy na piecu lub pompie ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Z uwagi na brak wylewki, która działa jak bufor, nie możemy przekroczyć 40-45°C. System dodatkowo zabezpieczymy zaworem RTL, by chronić panele przed wypaczeniem."
        }
      }, {
        "@type": "Question",
        "name": "Jaki podkład damy pod panele laminowane?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zastosujemy specjalną, dedykowaną matę o minimalnym oporze cieplnym (np. certyfikowaną perforowaną). Zwykła pianka zablokowałaby przepływ ciepła."
        }
      }, {
        "@type": "Question",
        "name": "Kiedy i jak robimy próbę szczelności?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zanim przykryjemy instalację suchym jastrychem lub warstwą wykończeniową, napełniamy ją wodą (lub sprężonym powietrzem) pod ciśnieniem 4-6 barów i zostawiamy na min. 24h z manometrem."
        }
      }]
    }
    </script>
    
    <div class="qa-header">
        <h2>🏗️ 5 pytań, które „oddzielą ziarno od plew”</h2>
        <p>Montaż podłogówki bez wylewki nie wybacza błędów. Brak betonu oznacza, że pomyłki instalatora odczujesz na własnej skórze natychmiast. Oto lista pytań weryfikacyjnych. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Opracowane przez inżynierów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Czy lamele aluminiowe są na pewno konieczne?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„To tylko naciąganie na koszty. Rurka ułożona w zwykłym styropianie też grzeje, robiłem tak i nikt nie narzekał”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Absolutnie tak. Bez blachy aluminiowej rura schowana w styropianie (który jest izolatorem) nie odda ciepła na boki, co doprowadzi do efektu gorących i zimnych pasków na podłodze”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Jak przygotujemy podłoże pod płyty systemowe?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Położy się styropian, dociśnie suchym jastrychem, wejdą meble i jakoś się to uleży. Szkoda czasu na równanie”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Tolerancja wynosi zero. Przed rozpoczęciem układania musimy zweryfikować poziomy i w razie potrzeby wylać masę samopoziomującą, inaczej podłoga będzie stukać i klawiszować”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jaką temperaturę zasilania ustawimy na pompie/piecu?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Ustawimy 50 stopni, żeby szybciej dom się nagrzewał, tak jak w normalnej wylewce”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Maksymalnie 40-45°C. System suchy nie ma betonu, ciepło idzie od razu w górę. Wyższa temperatura zniszczy panele i rozklei fugi. Musimy założyć zawór RTL”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „Jaki podkład damy pod panele laminowane?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Zwykłą, tanią piankę poliuretanową albo matę wygłuszającą, żeby nie stukało. Nie ma znaczenia jaka”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zastosujemy specjalną matę do podłogówki (np. perforowaną) o minimalnym oporze cieplnym. Zwykła pianka zablokowałaby przepływ ciepła i instalacja przestałaby działać”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Kiedy i jak robimy próbę szczelności?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Próba jest do wylewek, jak przykrywamy to suchymi płytami, to nie trzeba. Odpalimy na koniec i zobaczymy”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zanim przykryjemy instalację suchym jastrychem, napełniamy ją wodą pod ciśnieniem 4-6 barów i zostawiamy na min. 24h z manometrem. Musimy mieć 100% pewności”.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li>„Lamele aluminiowe to ściema, ja kładę rurkę w sam styropian i też oddaje ciepło.” (Mit &#8211; instalacja z rurką w styropianie ma ułamek mocy nominalnej).</li>
            <li>„Opór cieplny paneli? Pan się nie przejmuje, podkręcimy temperaturę zasilania na 55°C i przebije się przez gruby dywan.”</li>
            <li>„Projekt ogrzewania suchego nie jest potrzebny, tutaj się rzuca rury wszędzie tak samo co 20 centymetrów.”</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x64\x72\x79\x2d\x73\x79\x73\x74\x65\x6d\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">Ogrzewanie podłogowe wodne bez wylewki.</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>
	</channel>
</rss>
