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

<channel>
	<title>Archiwa Materiały instalacyjne - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/materialy-instalacyjne/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/materialy-instalacyjne/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 01 Jun 2026 22:44:05 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Materiały instalacyjne - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/materialy-instalacyjne/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Wytrzymałość rur do ogrzewania podłogowego – kompleksowy przewodnik.</title>
		<link>https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 05 Feb 2026 10:16:36 +0000</pubDate>
				<category><![CDATA[Ekspertyzy techniczne]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[bariera antydyfuzyjna]]></category>
		<category><![CDATA[evoh]]></category>
		<category><![CDATA[hoop stress]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[iso 10508]]></category>
		<category><![CDATA[klasa robocza rur]]></category>
		<category><![CDATA[naprężenia rur]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka projekt]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rury pert]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[trwałość instalacji]]></category>
		<category><![CDATA[wytrzymałość rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3383</guid>

					<description><![CDATA[<p>Wybór odpowiednich przewodów grzewczych to decyzja, która wpływa na bezpieczeństwo domu przez dziesiątki lat. Wielu inwestorów skupia się na źródle ciepła, zapominając, że to właśnie instalacja ukryta w wylewce pracuje najdłużej i w najtrudniejszych warunkach. W artykule wyjaśniamy, dlaczego wytrzymałość rur do ogrzewania podłogowego jest opisywana przez tzw. klasę roboczą, jak interpretować normy ISO, czym różnią się PE-X i PE-RT oraz kiedy warto wybrać wariant 6 lub 10 bar. Konkretne dane, wykresy i praktyczne wskazówki pomogą Ci dobrać system na lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">Wytrzymałość rur do ogrzewania podłogowego – kompleksowy przewodnik.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Decydując się na nowoczesny system grzewczy, wielu inwestorów skupia się na wyborze pompy ciepła czy estetyce sterowników, zapominając o elemencie, który na pół wieku zostanie zalany w betonowej wylewce. Tymczasem to właśnie od jakości przewodów zależy bezpieczeństwo całego budynku. W branży instalacyjnej przyjmuje się kluczową zasadę: <strong>wytrzymałość rur do ogrzewania podłogowego jest opisywana przez tzw. klasę roboczą</strong>, która w sposób matematyczny i fizyczny określa, jak dany materiał zniesie próbę czasu pod wpływem temperatury i ciśnienia. </p>



<p class="wp-block-paragraph">Zrozumienie tego parametru to nie tylko kwestia technicznej ciekawości, ale przede wszystkim gwarancja, że system nie ulegnie awarii po dekadzie użytkowania, co w przypadku instalacji podłogowej oznaczałoby konieczność skuwania całej powierzchni mieszkalnej.</p>



<h2 class="wp-block-heading">Klasyfikacja ISO 10508 – fundament parametrów technicznych i bezpieczeństwa.</h2>



<p class="wp-block-paragraph">Aby zrozumieć, o czym informuje nas producent na nadruku rury, musimy sięgnąć do międzynarodowej normy <strong>ISO 10508</strong>. Definiuje ona system klasyfikacji rur z tworzyw sztucznych (takich jak <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PE-X</a>, PE-RT czy rury wielowarstwowe) w zależności od ich przeznaczenia. Każda klasa odpowiada specyficznemu profilowi pracy instalacji w zakładanym okresie <strong>50 lat</strong>. Norma ta jest o tyle istotna, że nie operuje na wartościach chwilowych, lecz na <em>przewidywanej trwałości zmęczeniowej materiału</em>.</p>



<p class="wp-block-paragraph">Warto podkreślić, że <em>wytrzymałość rur do ogrzewania podłogowego</em> nie jest wartością stałą. Polimery, z których wykonane są przewody, podlegają procesom starzenia termooksydacyjnego. Oznacza to, że im wyższa temperatura pracy, tym krótsza żywotność rury przy tym samym ciśnieniu. Klasy robocze pozwalają nam precyzyjnie dobrać materiał tak, aby proces ten był kontrolowany i bezpieczny w całym cyklu życia budynku.</p>



<h3 class="wp-block-heading">Przegląd klas zastosowania rur polimerowych w nowoczesnym budownictwie.</h3>



<p class="wp-block-paragraph">Poniższa tabela przedstawia podział zgodny z normą ISO, który jest kluczowy dla każdego projektanta i instalatora. Warto zauważyć, że każda klasa to nie tylko &#8222;temperatura&#8221;, ale cały harmonogram obciążeń:</p>



<style>
.pex-table-wrapper{
  max-width:1200px;
  margin:40px auto;
  font-family: system-ui, Arial, sans-serif;
}

.pex-table{
  width:100%;
  border-collapse: collapse;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 14px rgba(0,0,0,0.08);
}

.pex-table thead{
  background:#1f77b4;
  color:#fff;
}

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

.pex-table th{
  font-weight:600;
}

.pex-table tr:nth-child(even){
  background:#f7f9fb;
}

.pex-badge{
  font-weight:700;
  color:#1f77b4;
}

.pex-highlight{
  font-weight:700;
  color:#0b5ed7;
}

/* ===== MOBILE ===== */
@media(max-width:768px){

  .pex-table thead{
    display:none;
  }

  .pex-table,
  .pex-table tbody,
  .pex-table tr,
  .pex-table td{
    display:block;
    width:100%;
  }

  .pex-table tr{
    margin-bottom:18px;
    background:#fff;
    border-radius:10px;
    padding:12px;
    box-shadow:0 3px 10px rgba(0,0,0,0.08);
  }

  .pex-table td{
    border:none;
    padding:8px 6px;
  }

  .pex-table td::before{
    content: attr(data-label);
    font-weight:600;
    display:block;
    margin-bottom:4px;
    color:#666;
    font-size:13px;
  }
}
</style>


<div class="pex-table-wrapper">

<table class="pex-table">
  <thead>
    <tr>
      <th>Klasa zastosowania</th>
      <th>Typowa temperatura robocza [T<sub>rob</sub>]</th>
      <th>Czas pracy w T<sub>rob</sub> [lata]</th>
      <th>Obszar zastosowania w instalacjach</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td data-label="Klasa zastosowania"><span class="pex-badge">Klasa 1</span></td>
      <td data-label="Temperatura">60°C</td>
      <td data-label="Czas pracy">49 lat</td>
      <td data-label="Zastosowanie">Dostawa ciepłej wody użytkowej (standard 60°C)</td>
    </tr>

    <tr>
      <td data-label="Klasa zastosowania"><span class="pex-badge">Klasa 2</span></td>
      <td data-label="Temperatura">70°C</td>
      <td data-label="Czas pracy">49 lat</td>
      <td data-label="Zastosowanie">Dostawa ciepłej wody użytkowej (podwyższony standard)</td>
    </tr>

    <tr>
      <td data-label="Klasa zastosowania"><span class="pex-badge pex-highlight">Klasa 4</span></td>
      <td data-label="Temperatura">20°C → 40°C → 60°C</td>
      <td data-label="Czas pracy"><strong>zmienna (50 lat)</strong></td>
      <td data-label="Zastosowanie"><strong>Ogrzewanie podłogowe i niskotemperaturowe</strong></td>
    </tr>

    <tr>
      <td data-label="Klasa zastosowania"><span class="pex-badge">Klasa 5</span></td>
      <td data-label="Temperatura">20°C → 60°C → 80°C</td>
      <td data-label="Czas pracy">zmienna (50 lat)</td>
      <td data-label="Zastosowanie">Grzejniki wysokotemperaturowe (konwekcyjne)</td>
    </tr>
  </tbody>
</table>

</div>



<h2 class="wp-block-heading">Zależność między temperaturą roboczą a trwałością zmęczeniową rur polimerowych klasy 4</h2>



<p class="wp-block-paragraph">Poniższy wykres (wizualizacja koncepcyjna) obrazuje zależność między temperaturą pracy a przewidywanym czasem do awarii dla standardowej rury klasy 4.</p>



<div style="width:100%;max-width:1200px;height:400px;margin:40px auto">
  <canvas id="pexChart"></canvas>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

<script>
const ctx = document.getElementById('pexChart');

new Chart(ctx, {
    type: 'line',
    data: {
        labels: [20, 40, 60, 70, 95],
        datasets: [
        {
            label: 'Żywotność rury PE-X (lata)',
            data: [100, 70, 50, 15, 1],
            borderColor: '#1f77b4',
            backgroundColor: 'rgba(31,119,180,0.25)',
            borderWidth: 3,
            pointRadius: 5,
            tension: 0.35,
            fill: true
        },
        {
            label: 'Wymóg normy (50 lat)',
            data: [50, 50, 50, 50, 50],
            borderColor: '#d62728',
            borderDash: [8,6],
            borderWidth: 2,
            pointRadius: 0,
            fill: false
        }]
    },
    options: {
        responsive: true,
        maintainAspectRatio: false,

        plugins: {
            legend: {
                position: 'top'
            },
            title: {
                display: true,
                text: 'Wpływ temperatury pracy na żywotność rur ogrzewania podłogowego',
                font: {
                    size: 18,
                    weight: 'bold'
                }
            },
            tooltip: {
                callbacks: {
                    label: function(context) {
                        return context.parsed.y + " lat";
                    }
                }
            }
        },

        scales: {
            x: {
                title: {
                    display: true,
                    text: 'Temperatura pracy (°C)'
                },
                grid: {
                    display: true
                }
            },
            y: {
                type: 'logarithmic',
                title: {
                    display: true,
                    text: 'Przewidywana żywotność (lata – skala log)'
                },
                ticks: {
                    callback: function(value) {
                        return value + ' lat';
                    }
                }
            }
        }
    }
});
</script>



<p class="wp-block-paragraph">Z powyższej analizy wynika jasny wniosek: <strong>wytrzymałość rur do ogrzewania podłogowego jest opisywana przez tzw. klasę roboczą</strong> nie po to, by komplikować życie instalatorom, ale by zapewnić transparentność i bezpieczeństwo. Wybierając rurę, nie patrz tylko na cenę za metr bieżący. Sprawdź nadruk, odszukaj informację o Klasie 4 i ciśnieniu roboczym, a przede wszystkim upewnij się, że Twój <strong>projekt ogrzewania podłogowego</strong> uwzględnia te parametry w odniesieniu do charakterystyki Twojego źródła ciepła. Tylko takie podejście gwarantuje, że &#8222;podłogówka&#8221; będzie ostatnią rzeczą, o jakiej będziesz musiał myśleć podczas eksploatacji domu.</p>



<h2 class="wp-block-heading">Dlaczego Klasa 4 jest sercem systemów płaszczyznowych?</h2>



<p class="wp-block-paragraph">W kontekście artykułu najważniejsza jest <strong>Klasa 4</strong>. To ona jest dedykowana dla ogrzewania podłogowego. Dlaczego nie stosuje się tutaj prostego zapisu „wytrzyma 60 stopni”? Ponieważ instalacja podłogowa pracuje cyklicznie. Zimą rury przenoszą czynnik o wyższej temperaturze, jesienią i wiosną o znacznie niższej, a latem instalacja pozostaje w spoczynku. Norma Klasy 4 zakłada bardzo precyzyjny <strong>profil starzenia</strong>, który rura musi wytrzymać, aby otrzymać certyfikat jakości.</p>



<p class="wp-block-paragraph"><strong>Skład cyklu życia rury w Klasie 4 (łącznie 50 lat):</strong></p>



<ul class="wp-block-list">
<li>• <strong>2,5 roku w temperaturze 20°C</strong> – czas uwzględniający magazynowanie rury, proces montażu oraz przerwy w eksploatacji.</li>



<li>• <strong>20 lat w temperaturze 40°C</strong> – typowy profil pracy dla nowoczesnych domów energooszczędnych i pasywnych z pompami ciepła.</li>



<li>• <strong>25 lat w temperaturze 60°C</strong> – parametr zabezpieczający system w okresach ekstremalnych mrozów lub w starszych budynkach o gorszej izolacji termicznej.</li>



<li>• <strong>2,5 roku w temperaturze maksymalnej 70°C</strong> – tzw. temperatura graniczna, która może wystąpić przy rozregulowaniu automatyki.</li>



<li>• <strong>100 godzin w temperaturze awaryjnej 100°C</strong> – absolutne zabezpieczenie na wypadek poważnej awarii kotła stałopalnego lub błędu zaworu trójdrożnego.</li>
</ul>



<h2 class="wp-block-heading">Analiza techniczna naprężeń: wzór na Hoop Stress</h2>



<p class="wp-block-paragraph">Wytrzymałość rur to nie tylko kwestia termiki, ale przede wszystkim fizyki płynów i odporności mechanicznej ścianki. Inżynierowie podczas certyfikacji badają tzw. naprężenia obwodowe (Hoop Stress). Wyraża się je wzorem:</p>



<div style="text-align:center; font-size:28px; margin:30px 0; font-family: serif;">
  σ =
  <span style="display:inline-block; vertical-align:middle; text-align:center;">
      <span style="display:block; border-bottom:2px solid #000; padding:0 12px;">
          p · (d − s)
      </span>
      <span style="display:block; font-size:22px;">
          2s
      </span>
  </span>
</div>



<p class="wp-block-paragraph">Gdzie:<br>• σ – naprężenie w ściance rury [MPa]<br>• p – ciśnienie wewnętrzne [MPa]<br>• d – średnica zewnętrzna rury [mm]<br>• s – grubość ścianki [mm]</p>



<p class="wp-block-paragraph">Dla rury o średnicy <strong>16 mm</strong> i ściance <strong>2,0 mm</strong> (najpopularniejszy wybór do podłogówki), przy ciśnieniu roboczym <strong>0,6 MPa (6 bar)</strong>, naprężenie wynosi ok. <strong>2,1 MPa</strong>.</p>



<p class="wp-block-paragraph">Materiał rury musi być zaprojektowany tak, aby przy takim naprężeniu i zmiennej temperaturze (zgodnie z Klasą 4) nie doszło do pęknięć przez pół wieku. To właśnie ta zdolność polimeru do „pracy” pod obciążeniem definiuje jego jakość.</p>



<h2 class="wp-block-heading">Rodzaje materiałów a ich odporność w klasie roboczej</h2>



<p class="wp-block-paragraph">Na rynku spotykamy głównie dwa rodzaje materiałów: PE-X oraz PE-RT. Choć oba mogą spełniać wymagania Klasy 4, ich wewnętrzna struktura znacząco się różni, co wpływa na <em>długofalową wytrzymałość rur do ogrzewania podłogowego</em>.</p>



<h3 class="wp-block-heading">Sieciowany polietylen (PE-X) – król trwałości</h3>



<p class="wp-block-paragraph">Sieciowanie to proces tworzenia wiązań chemicznych między łańcuchami polimeru, co zmienia strukturę z termoplastycznej na termoutwardzalną. Dzięki temu rura nie mięknie tak szybko pod wpływem ciepła.</p>



<ul class="wp-block-list">
<li><strong>PE-Xa (metoda nadtlenkowa):</strong> Stopień sieciowania min. 70%. Najbardziej elastyczna rura z &#8222;pamięcią kształtu&#8221;. Nawet jeśli ją załamiemy, po podgrzaniu wróci do pierwotnego stanu bez utraty wytrzymałości.</li>



<li><strong>PE-Xb (metoda silanowa):</strong> Stopień sieciowania min. 65%. Charakteryzuje się dużą odpornością na ciśnienie, jest nieco sztywniejsza od PE-Xa.</li>



<li><strong>PE-Xc (metoda radiacyjna):</strong> Stopień sieciowania min. 60%. Proces odbywa się &#8222;na zimno&#8221; poprzez naświetlanie wiązką elektronów.</li>
</ul>



<h3 class="wp-block-heading">PE-RT Typ II – nowoczesna alternatywa</h3>



<p class="wp-block-paragraph">PE-RT (<em>Polyethylene of Raised Temperature resistance</em>) to polietylen, który nie jest sieciowany, ale posiada specyficzną strukturę molekularną z dużą ilością bocznych łańcuchów (oktylowych). <strong>Ważna uwaga techniczna:</strong> Do Klasy 4 zaleca się stosowanie wyłącznie <strong>PE-RT Typu II</strong>, który posiada wyższą odporność na ciśnienie w wysokich temperaturach niż starszy Typ I.</p>



<h2 class="wp-block-heading">Rola bariery antydyfuzyjnej EVOH w zachowaniu wytrzymałości systemu</h2>



<p class="wp-block-paragraph">Mówiąc o wytrzymałości rur, nie możemy pominąć aspektu chemicznego. Polietylen jest naturalnie przepuszczalny dla tlenu. Tlen przedostający się do wnętrza instalacji powoduje korozję elementów metalowych (rozdzielaczy, kotła, pomp). Dlatego rury do ogrzewania podłogowego muszą posiadać <strong>barierę antydyfuzyjną <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">EVOH</a></strong> (alkohol etylenowinylowy).</p>



<p class="wp-block-paragraph">Zgodnie z normą DIN 4726, przenikanie tlenu nie powinno przekraczać 0,32 mg/(m²·d) w temperaturze 40°C. Brak lub uszkodzenie tej warstwy nie zniszczy samej rury, ale doprowadzi do zamulenia instalacji tlenkami metali, co zwiększy opory przepływu i może prowadzić do lokalnych przegrzań, wtórnie obciążających rurę ponad założoną klasę roboczą.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – dlaczego jest kluczowy dla żywotności rur?</h2>



<p class="wp-block-paragraph">Wszystkie powyższe parametry techniczne tracą na znaczeniu, jeśli <strong>projekt ogrzewania podłogowego</strong> zostanie wykonany wadliwie lub, co gorsza, pominięty. To właśnie w projekcie inżynier decyduje, jaka klasa robocza rury jest niezbędna dla konkretnego budynku.</p>



<p class="wp-block-paragraph"><em>Przykład:</em> Jeśli system ma być zasilany z kotła stałopalnego, projektant musi uwzględnić ryzyko bezwładności cieplnej źródła. W takim przypadku rura <strong>Klasy 4 / 10 bar</strong> lub nawet <strong>Klasy 5</strong> jest koniecznością, aby zabezpieczyć instalację przed skutkami potencjalnego zagotowania wody.</p>



<p class="wp-block-paragraph">W profesjonalnym projekcie oblicza się również rozszerzalność liniową rur. Rura PE-X wydłuża się o ok. 0,15–0,20 mm na każdy metr przy wzroście temperatury o 10°C. <a href="https://projekt-ogrzewania.pl/kontakt/">Projektant</a> musi zaplanować odpowiednie dylatacje w wylewce, aby pracująca rura nie była narażona na ścinanie na krawędziach płyt grzejnych. Zignorowanie tego aspektu sprawia, że nawet najlepsza klasa robocza nie uchroni nas przed mechanicznym uszkodzeniem przewodu.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"></p>
<cite><strong>Wytrzymałość rur w praktyce zaczyna się od dobrego projektu ogrzewania podłogowego.</strong> To na etapie obliczeń dobiera się klasę roboczą, temperatury pracy, rozstaw pętli i dylatacje, które decydują o bezawaryjnej pracy instalacji przez 50 lat.<br>Zamów indywidualny projekt dopasowany do Twojego domu:<br><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/</a></cite></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"></p>
</blockquote>
</blockquote>



<h2 class="wp-block-heading">Analiza porównawcza: Ciśnienie 6 bar vs 10 bar w Klasie 4</h2>



<p class="wp-block-paragraph">Większość rur dostępnych na rynku jest certyfikowana na dwa poziomy ciśnienia. Wybór zależy od typu budynku i przewidywanych obciążeń statycznych instalacji:</p>



<style>
.pipe-compare-wrapper{
  max-width:1200px;
  margin:40px auto;
  font-family: system-ui, Arial, sans-serif;
}

.pipe-compare{
  width:100%;
  border-collapse: collapse;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 14px rgba(0,0,0,0.08);
}

.pipe-compare thead{
  background:#1f77b4;
  color:#fff;
}

.pipe-compare th,
.pipe-compare td{
  padding:16px;
  text-align:left;
  border-bottom:1px solid #eee;
}

.pipe-compare th{
  font-weight:600;
}

.pipe-compare tr:nth-child(even){
  background:#f7f9fb;
}

.pipe-title{
  font-weight:700;
  color:#1f77b4;
}

/* ===== MOBILE ===== */
@media(max-width:768px){

  .pipe-compare thead{
    display:none;
  }

  .pipe-compare,
  .pipe-compare tbody,
  .pipe-compare tr,
  .pipe-compare td{
    display:block;
    width:100%;
  }

  .pipe-compare tr{
    margin-bottom:18px;
    background:#fff;
    border-radius:10px;
    padding:12px;
    box-shadow:0 3px 10px rgba(0,0,0,0.08);
  }

  .pipe-compare td{
    border:none;
    padding:8px 6px;
  }

  .pipe-compare td::before{
    content: attr(data-label);
    font-weight:600;
    display:block;
    margin-bottom:4px;
    color:#666;
    font-size:13px;
  }
}
</style>


<div class="pipe-compare-wrapper">

<table class="pipe-compare">

  <thead>
    <tr>
      <th>Parametr</th>
      <th>Rura Klasa 4 / 6 bar</th>
      <th>Rura Klasa 4 / 10 bar</th>
    </tr>
  </thead>

  <tbody>

    <tr>
      <td data-label="Parametr"><strong>Grubość ścianki (dla 16 mm)</strong></td>
      <td data-label="6 bar">2,0 mm</td>
      <td data-label="10 bar">2,2 mm lub 2,0 mm (zależnie od materiału)</td>
    </tr>

    <tr>
      <td data-label="Parametr"><strong>Zastosowanie</strong></td>
      <td data-label="6 bar">Domy jednorodzinne, małe instalacje</td>
      <td data-label="10 bar">Budynki wielorodzinne, wysokie piony</td>
    </tr>

    <tr>
      <td data-label="Parametr"><strong>Odporność na pękanie</strong></td>
      <td data-label="6 bar">Standardowa</td>
      <td data-label="10 bar">Podwyższona (większy margines bezpieczeństwa)</td>
    </tr>

    <tr>
      <td data-label="Parametr"><strong>Promień gięcia</strong></td>
      <td data-label="6 bar">Często mniejszy (łatwiejszy montaż)</td>
      <td data-label="10 bar">Nieco większy (sztywniejsza ścianka)</td>
    </tr>

  </tbody>

</table>

</div>



<h3 class="wp-block-heading">Przykład praktyczny: Dobór rury do pompy ciepła</h3>



<p class="wp-block-paragraph">W instalacji z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a> typu monoblok, gdzie temperatura zasilania rzadko przekracza 35°C, rura PE-RT II Klasa 4 / 6 bar jest rozwiązaniem optymalnym technicznie i ekonomicznie. Jednak w przypadku podłączenia podłogówki do instalacji z grzejnikami (poprzez zawór mieszający), lepiej zainwestować w rurę PE-Xa Klasa 4 / 10 bar, ponieważ ryzyko chwilowego podania wyższej temperatury przez awarię automatyki jest znacznie większe.</p>



<h2 class="wp-block-heading">FAQ.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1770253859016"><strong class="schema-faq-question"><strong>Co oznacza klasa robocza rury w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Klasa robocza określa, jak długo rura może bezpiecznie pracować przy określonych temperaturach i ciśnieniu. W praktyce definiuje jej żywotność w cyklu 50 lat eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1770253888925"><strong class="schema-faq-question"><strong>Dlaczego do podłogówki zalecana jest Klasa 4?</strong></strong> <p class="schema-faq-answer">Ponieważ odpowiada rzeczywistemu profilowi pracy instalacji niskotemperaturowej – długiej pracy przy 40–60°C oraz sporadycznym skokom temperatury.</p> </div> <div class="schema-faq-section" id="faq-question-1770253905494"><strong class="schema-faq-question"><strong>PE-X czy PE-RT – co wybrać?</strong></strong> <p class="schema-faq-answer">PE-Xa zapewnia najwyższą odporność mechaniczną i „pamięć kształtu”, dlatego sprawdza się w trudnych warunkach. PE-RT II jest tańszy i wystarczający do standardowych instalacji z pompą ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1770253913409"><strong class="schema-faq-question"><strong>Czy warto dopłacić do rury 10 bar zamiast 6 bar?</strong></strong> <p class="schema-faq-answer">Tak, jeśli instalacja ma pracować w budynku wielorodzinnym, z kotłem stałopalnym lub istnieje ryzyko wyższych temperatur. Daje to większy margines bezpieczeństwa.</p> </div> <div class="schema-faq-section" id="faq-question-1770253929910"><strong class="schema-faq-question"><strong>Dlaczego projekt instalacji jest tak ważny dla trwałości rur?</strong></strong> <p class="schema-faq-answer">Projekt dobiera średnice, długości pętli, temperatury i ciśnienia pracy. Nawet najlepsza rura bez poprawnego projektu może ulec przedwczesnemu uszkodzeniu.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph">Zrozumienie, że <strong>wytrzymałość rur do ogrzewania podłogowego jest opisywana przez tzw. klasę roboczą</strong>, pozwala świadomie podejść do inwestycji, która ma służyć pokoleniom. Nie dajmy się zwieść tylko &#8222;cenie za metr&#8221;. Prawdziwa wartość rury kryje się w jej zdolności do przenoszenia naprężeń w długim horyzoncie czasowym.</p>



<p class="wp-block-paragraph">Pamiętaj o trzech złotych zasadach:</p>



<ol start="1" class="wp-block-list">
<li><strong>Sprawdź nadruk na rurze:</strong> Szukaj oznaczeń ISO 10508 oraz konkretnej klasy (najlepiej Class 4/10 bar dla pełnego spokoju).</li>



<li><strong>Dobierz materiał do źródła ciepła:</strong> PE-Xa dla najwyższego bezpieczeństwa, PE-RT II dla standardowych układów niskotemperaturowych.</li>



<li><strong>Zainwestuj w rzetelny projekt:</strong> Tylko on powiąże parametry fizyczne rury z charakterystyką cieplną Twojego domu.</li>
</ol>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="n3LfP09nYt"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=i2UaUwd7XA#?secret=n3LfP09nYt" data-secret="n3LfP09nYt" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">Wytrzymałość rur do ogrzewania podłogowego – kompleksowy przewodnik.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile styropianu pod ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-brand: #ea580c; /* Termiczna pomarańcz */
    --rk-intro-brand-light: #ffedd5;
    --rk-intro-blue: #0284c7;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(234, 88, 12, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Sekcja Główna Wstępu */
.rk-intro-header {
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-intro-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 88, 12, 0.2);
    color: #fdba74;
    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(253, 186, 116, 0.2);
}

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

.rk-intro-header p {
    font-size: 18px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

.rk-intro-header strong {
    color: #ffffff;
    font-weight: 800;
    background: rgba(234, 88, 12, 0.3);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł "Czego się dowiesz" */
.rk-intro-agenda {
    padding: 40px 50px;
    background: var(--rk-intro-surface);
}

.rk-agenda-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-agenda-title svg {
    color: var(--rk-intro-brand);
}

.rk-agenda-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

/* Interaktywne Kafelki */
.rk-agenda-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
    text-decoration: none;
    display: block;
}

.rk-agenda-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(135deg, rgba(255,255,255,0) 0%, var(--rk-intro-brand-light) 100%);
    opacity: 0;
    z-index: -1;
    transition: opacity 0.4s;
    border-radius: 16px;
}

.rk-agenda-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-intro-brand);
    box-shadow: 0 15px 30px -10px rgba(234, 88, 12, 0.15);
}

.rk-agenda-card:hover::before {
    opacity: 0.5;
}

.rk-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-intro-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    margin-bottom: 15px;
    transition: all 0.4s;
}

.rk-agenda-card:hover .rk-card-icon {
    background: var(--rk-intro-brand);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

.rk-card-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 8px 0;
    line-height: 1.4;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-agenda { padding: 35px 25px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-header p { font-size: 16px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe? Kompendium Inżynierskie",
    "description": "Zestawienie norm prawnych i kalkulacji inżynierskich określających wymaganą grubość izolacji podłogowej dla maksymalizacji sprawności źródła 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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Struktura Analizy Izolacyjności WT2021",
    "description": "Zestawienie wytycznych prawnych, termodynamicznych i wykonawczych dla doboru materiałów izolacyjnych (EPS/XPS) pod wodne systemy płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość izolacji WT2021",
      "straty ciepła do gruntu",
      "opór cieplny styropianu",
      "EPS grafitowy czy biały"
    ],
    "measurementTechnique": "Agregacja parametrów cieplnych i mechanicznych zgodna z normami budowlanymi, prezentująca wpływ grubości izolacji na efektywność OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Analiza współczynnika przenikania ciepła dla gruntu",
        "Porównanie właściwości EPS 100 białego i grafitowego",
        "Korelacja grubości styropianu z Projektowym Obciążeniem Cieplnym (OZC)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Nawigator Wiedzy Technicznej",
    "description": "Interaktywny interfejs wprowadzający nawigujący użytkownika po kluczowych zagadnieniach inżynierskich związanych z doborem izolacji podłogowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
            Kompendium Inżyniera
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p>
            Decyzja o grubości izolacji podłogowej determinuje koszty ogrzewania budynku przez najbliższe kilkadziesiąt lat. Poniższy artykuł stanowi kompletne kompendium techniczne określające, <strong>ile styropianu pod ogrzewanie podłogowe</strong> należy zastosować, aby instalacja działała z maksymalną sprawnością, spełniając aktualne normy prawne i drastycznie minimalizując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" style="color: #60a5fa; text-decoration: underline; font-weight: 700;">straty ciepła do gruntu</a>. Zbyt cienki styropian pod podłogówkę może oznaczać tysiące złotych strat ciepła przez kolejne lata. Dlatego dobór odpowiedniej izolacji pod ogrzewanie podłogowe to nie detal, ale jeden z najważniejszych elementów całej instalacji.
        </p>
    </div>

    <div class="rk-intro-agenda">
        <div class="rk-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            W tym poradniku odkryjesz:
        </div>
        
        <div class="rk-agenda-grid">
            <a href="#normy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <h3 class="rk-card-title">Normy prawne i WT2021</h3>
                <p class="rk-card-desc">Poznasz bezwzględne minimum grubości wymagane przepisami budowlanymi dla współczynnika U ≤ 0,20.</p>
            </a>

            <a href="#materialy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <h3 class="rk-card-title">Jaki styropian?</h3>
                <p class="rk-card-desc">Porównanie parametrów technicznych i gęstości styropianów podłogowych. Dowiesz się, jaki styropian położyć pod ogrzewanie podłogowe.</p>
            </a>

            <a href="#obliczenia" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="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 class="rk-card-title">Krok po kroku: Obliczenia</h3>
                <p class="rk-card-desc">Gotowy algorytm matematyczny pozwalający wyznaczyć opór cieplny (R) w zależności od strat energii.</p>
            </a>

            <a href="#bledy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <h3 class="rk-card-title">Krytyczne błędy montażowe</h3>
                <p class="rk-card-desc">Zestawienie uchybień wykonawczych, które niszczą efektywność nawet najgrubszego styropianu.</p>
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z poleceniem)
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(currentDomain)) {
        const targetContainer = document.getElementById('rk-intro-app');
        if (targetContainer) {
            targetContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent wprowadzający wraz ze strukturą JSON-LD jest licencjonowany wyłącznie dla domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane wdrożenie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }
});
</script>



<style>
:root {
    --rk-wt-dark: #0f172a;
    --rk-wt-surface: #1e293b;
    --rk-wt-brand: #059669; /* Inżynieryjna zieleń - zgodność z normami */
    --rk-wt-brand-light: #d1fae5;
    --rk-wt-accent: #f59e0b; /* Pomarańcz termiczna */
    --rk-wt-gray: #f1f5f9;
    --rk-wt-border: #e2e8f0;
    --rk-wt-text: #334155;
    --rk-wt-text-light: #64748b;
}

.rk-wt-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(5, 150, 105, 0.15);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-wt-header {
    background: linear-gradient(135deg, var(--rk-wt-dark) 0%, #064e3b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-wt-brand);
}

.rk-wt-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.3);
    color: #a7f3d0;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(167, 243, 208, 0.2);
}

.rk-wt-header h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-wt-prose {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-wt-prose strong {
    color: #ffffff;
    font-weight: 700;
}

/* Interaktywny Symulator */
.rk-wt-interactive {
    padding: 40px 50px;
    background: var(--rk-wt-gray);
}

.rk-wt-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
}

.rk-wt-tab {
    padding: 16px 10px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-wt-text-light);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.rk-wt-tab svg {
    width: 24px;
    height: 24px;
    opacity: 0.6;
    transition: all 0.3s;
}

.rk-wt-tab:hover {
    background: rgba(255, 255, 255, 0.5);
    color: var(--rk-wt-text);
}

.rk-wt-tab.active {
    background: #ffffff;
    color: var(--rk-wt-brand);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.rk-wt-tab.active svg {
    opacity: 1;
    color: var(--rk-wt-brand);
    transform: scale(1.1);
}

/* Wyświetlacz Wyników */
.rk-wt-display {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-wt-border);
    align-items: center;
}

/* Lewa Strona - Dane */
.rk-wt-data-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--rk-wt-gray);
}

.rk-wt-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--rk-wt-gray);
}

.rk-wt-data-row:last-child {
    border-bottom: none;
}

.rk-wt-data-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-wt-text-light);
}

.rk-wt-data-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.val-highlight {
    background: var(--rk-wt-brand-light);
    color: var(--rk-wt-brand);
    padding: 4px 10px;
    border-radius: 6px;
}

/* Prawa Strona - Wizualizacja SVG */
.rk-wt-visual {
    background: var(--rk-wt-surface);
    border-radius: 16px;
    padding: 20px;
    height: 240px;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    overflow: hidden;
}

.rk-svg-layer { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.layer-concrete { fill: #94a3b8; }
.layer-pipes { fill: #ef4444; }
.layer-eps { fill: var(--rk-wt-accent); }
.layer-ground { fill: #475569; }

/* Animacje fal ciepła */
.heat-wave {
    stroke: #ef4444;
    stroke-width: 2.5;
    stroke-linecap: round;
    fill: none;
    opacity: 0;
}

/* Stany dynamiczne z JS */
.state-level-1 .layer-eps { height: 25px; y: 70px; }
.state-level-1 .layer-ground { y: 95px; }
.state-level-1 .heat-wave.down { animation: heatLeak 2s infinite linear; }

.state-level-2 .layer-eps { height: 45px; y: 70px; }
.state-level-2 .layer-ground { y: 115px; }
.state-level-2 .heat-wave.down { animation: heatLeakSlow 2.5s infinite linear; stroke: #f59e0b; }

.state-level-3 .layer-eps { height: 75px; y: 70px; }
.state-level-3 .layer-ground { y: 145px; }
.state-level-3 .heat-wave.up { animation: heatBounce 2s infinite ease-out; }

@keyframes heatLeak {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}
@keyframes heatLeakSlow {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(30px); opacity: 0; }
}
@keyframes heatBounce {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(-20px); opacity: 0.5; }
    100% { transform: translateY(0); opacity: 1; }
}

/* Sekcja linków kontekstowych */
.rk-wt-context {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-wt-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-wt-text);
}

.rk-wt-context a {
    color: var(--rk-wt-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-wt-header, .rk-wt-interactive, .rk-wt-context { padding: 30px 20px; }
    .rk-wt-tabs { grid-template-columns: 1fr; }
    .rk-wt-tab { flex-direction: row; justify-content: center; padding: 12px; }
    .rk-wt-display { grid-template-columns: 1fr; gap: 20px; }
    .rk-wt-data-row { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-wt-visual { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wt2021",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami WT2021?",
    "description": "Analiza normy PN-EN 1264-4. Minimalna grubość styropianu EPS 100 na gruncie to 15 cm (biały) lub 12 cm (grafitowy) dla uzyskania U=0,20 W/(m2K).",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wt2021",
    "name": "Wymagania cieplne izolacji podłogowej wg WT2021 i PN-EN 1264-4",
    "description": "Zestawienie minimalnych oporów cieplnych (R) i grubości styropianu (EPS) dla różnych konstrukcji stropów z ogrzewaniem płaszczyznowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu WT2021",
      "współczynnik U dla podłogi na gruncie",
      "opór cieplny izolacji podłogówki R",
      "minimalna grubość eps 100"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R wg normy PN-EN 1264-4 oraz współczynnika U wg Warunków Technicznych 2021 (U_max = 0,20 W/(m2K)).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strop nad ogrzewanym: R = 1,25 m2K/W",
        "Strop nad nieogrzewanym: R = 2,00 m2K/W",
        "Podłoga na gruncie (zewn < -5°C): R = 2,25 m2K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wt2021",
    "name": "Kalkulator Normatywny PN-EN 1264-4",
    "description": "Interaktywne narzędzie obliczeniowe wyznaczające wymaganą grubość styropianu białego i grafitowego dla trzech scenariuszy konstrukcji podłogi.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wt-container" id="rk-wt-app">
    <div class="rk-wt-header">
        <div class="rk-wt-badge">
            <svg width="15" height="15" 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>
            Przepisy i Normy 2026
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami?</h2>
        <div class="rk-wt-prose">
            Zgodnie z polskimi przepisami budowlanymi (<strong>Warunki Techniczne WT2021</strong>), minimalna grubość styropianu EPS 100 pod ogrzewanie podłogowe na gruncie wynosi <strong>150 mm (15 cm)</strong> dla tradycyjnego białego styropianu (λ = 0,038 W/(m·K)) lub <strong>120 mm (12 cm)</strong> dla styropianu grafitowego (λ = 0,031 W/(m·K)). Wymóg ten wynika wprost z konieczności osiągnięcia współczynnika przenikania ciepła dla podłogi na gruncie na poziomie maksymalnie <strong>U_max = 0,20 W/(m²K)</strong>.
        </div>
    </div>

    <div class="rk-wt-interactive">
        <div class="rk-wt-tabs">
            <button class="rk-wt-tab" data-target="level1">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                Strop nad ogrzewanym
            </button>
            <button class="rk-wt-tab" data-target="level2">
                <svg 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></svg>
                Strop nad piwnicą
            </button>
            <button class="rk-wt-tab active" data-target="level3">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M2 12h20"></path><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
                Podłoga na gruncie
            </button>
        </div>

        <div class="rk-wt-display state-level-3" id="wt-display">
            <div class="rk-wt-data-panel">
                <h3 id="wt-title">Podłoga na gruncie (-5°C)</h3>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">Wymagany opór cieplny (R):</span>
                    <span class="rk-wt-data-value val-highlight" id="wt-r-val">2,25 m²·K/W</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Biały (λ = 0,038):</span>
                    <span class="rk-wt-data-value" id="wt-eps-white">150 mm (15 cm)</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Grafit (λ = 0,031):</span>
                    <span class="rk-wt-data-value" id="wt-eps-graphite">120 mm (12 cm)</span>
                </div>
            </div>

            <div class="rk-wt-visual">
                <svg width="100%" height="100%" viewBox="0 0 200 200" preserveAspectRatio="xMidYMid meet">
                    <rect class="rk-svg-layer layer-concrete" x="10" y="30" width="180" height="40" rx="4" />
                    <circle class="layer-pipes" cx="40" cy="50" r="6" />
                    <circle class="layer-pipes" cx="80" cy="50" r="6" />
                    <circle class="layer-pipes" cx="120" cy="50" r="6" />
                    <circle class="layer-pipes" cx="160" cy="50" r="6" />
                    
                    <rect class="rk-svg-layer layer-eps" x="10" y="70" width="180" height="75" />
                    
                    <rect class="rk-svg-layer layer-ground" x="0" y="145" width="200" height="60" />
                    
                    <path class="heat-wave up" d="M40 25 L40 10 M35 15 L40 10 L45 15" />
                    <path class="heat-wave up" d="M120 25 L120 10 M115 15 L120 10 L125 15" />

                    <path class="heat-wave down" d="M80 85 L80 110 M75 105 L80 110 L85 105" />
                    <path class="heat-wave down" d="M160 85 L160 110 M155 105 L160 110 L165 105" />
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-wt-context">
        Wybór grubości izolacji termicznej nie może być kompromisem budżetowym. To element konstrukcyjny, którego nie da się wymienić po zalaniu <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a>. Zastosowanie zbyt cienkiej warstwy oznacza permanentne straty energii, gdzie ciepło ucieka w dół. Aby system współpracujący z niskotemperaturowym źródłem (np. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła na parametrze 35/30°C</a>) osiągnął najwyższy współczynnik COP, izolacja musi stanowić skuteczną barierę, określoną precyzyjnie w normie <strong>PN-EN 1264-4</strong>.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez używania H2/H3 w komunikacie o błędzie)
    const host = window.location.hostname;
    const permittedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!permittedHosts.includes(host)) {
        const wtContainer = document.getElementById('rk-wt-app');
        if (wtContainer) {
            wtContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🚫</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6; max-width: 500px; margin: 0 auto;">
                        Kalkulator Normatywny PN-EN 1264-4 oraz warstwa metadanych JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora WT2021
    const tabs = document.querySelectorAll('.rk-wt-tab');
    const display = document.getElementById('wt-display');
    
    // Elementy danych do aktualizacji
    const elTitle = document.getElementById('wt-title');
    const elRVal = document.getElementById('wt-r-val');
    const elWhite = document.getElementById('wt-eps-white');
    const elGraphite = document.getElementById('wt-eps-graphite');

    const dataMap = {
        'level1': {
            title: 'Strop nad pomieszczeniem ogrzewanym',
            rVal: '1,25 m²·K/W',
            white: '50 mm (5 cm)',
            graphite: '40 mm (4 cm)',
            stateClass: 'state-level-1'
        },
        'level2': {
            title: 'Strop nad pomieszczeniem nieogrzewanym',
            rVal: '2,00 m²·K/W',
            white: '80 mm (8 cm)',
            graphite: '70 mm (7 cm)',
            stateClass: 'state-level-2'
        },
        'level3': {
            title: 'Podłoga na gruncie (zewn < -5°C)',
            rVal: '2,25 m²·K/W',
            white: '150 mm (15 cm)',
            graphite: '120 mm (12 cm)',
            stateClass: 'state-level-3'
        }
    };

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Reset aktywnych buttonów
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            const target = this.getAttribute('data-target');
            const data = dataMap[target];

            // Aktualizacja UI
            elTitle.textContent = data.title;
            elRVal.textContent = data.rVal;
            elWhite.textContent = data.white;
            elGraphite.textContent = data.graphite;

            // Zmiana klasy wizualizacji
            display.className = `rk-wt-display ${data.stateClass}`;
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwień ostrzegawcza */
    --rk-err-brand-light: #fee2e2;
    --rk-err-safe: #10b981; /* Zieleń inżynieryjna */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-brand);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(252, 165, 165, 0.2);
}

.rk-err-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-err-desc {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Sekcja Interaktywna - Układ */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
    border-bottom: 1px solid var(--rk-err-border);
}

/* Panel Kontrolny (Suwaki) */
.rk-err-controls {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
}

.rk-err-control-group {
    margin-bottom: 35px;
}

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

.rk-err-val-display {
    background: var(--rk-err-dark);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    transition: background 0.3s;
}

.rk-err-val-display.warning { background: var(--rk-err-brand); }
.rk-err-val-display.safe { background: var(--rk-err-safe); }

/* Stylizacja Suwaków (Range) */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-err-dark);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    border: 3px solid #ffffff;
    transition: transform 0.1s, background 0.3s;
}

.rk-range:active::-webkit-slider-thumb { transform: scale(1.2); }
.rk-range.warning-track::-webkit-slider-thumb { background: var(--rk-err-brand); }
.rk-range.safe-track::-webkit-slider-thumb { background: var(--rk-err-safe); }

/* Panel Diagnozy */
.rk-err-diagnosis {
    padding: 20px;
    background: var(--rk-err-brand-light);
    border-radius: 12px;
    border: 1px solid rgba(239,68,68,0.2);
    margin-top: 20px;
    transition: all 0.3s;
}

.rk-err-diagnosis.safe-mode {
    background: #dcfce7;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-diag-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.rk-err-diagnosis.safe-mode .rk-diag-title { color: #065f46; }
.rk-err-diagnosis:not(.safe-mode) .rk-diag-title { color: #991b1b; }

.rk-diag-text {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
    font-weight: 600;
    color: var(--rk-err-text);
}

/* Symulacja SVG */
.rk-err-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    position: relative;
    overflow: hidden;
}

.rk-svg-simulator {
    width: 100%;
    max-width: 400px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.1));
}

.svg-concrete { fill: #94a3b8; transition: fill 0.3s; }
.svg-pipe { fill: #ef4444; }
.svg-eps { fill: #fcd34d; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-ground { fill: #64748b; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }

/* Zjawiska (Pęknięcia, Straty) */
.svg-crack {
    stroke: #0f172a; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out;
}
.svg-heat-down { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-heat-up { stroke: #10b981; stroke-width: 4; fill: none; stroke-linecap: round; opacity: 0; }
.svg-moisture { fill: #3b82f6; opacity: 0; transition: opacity 0.5s; }

/* Stany Aktywowane z JS */
.state-crack .svg-crack { stroke-dashoffset: 0; }
.state-crack .svg-concrete { fill: #cbd5e1; } /* Osłabiony beton */

.state-heat-loss .svg-heat-down { animation: heatLeakAnim 1.5s infinite linear; }
.state-heat-good .svg-heat-up { animation: heatRiseAnim 2s infinite ease-out; }
.state-moisture .svg-moisture { opacity: 0.6; animation: pulseMoist 3s infinite alternate; }

@keyframes heatLeakAnim {
    0% { transform: translateY(0); opacity: 0.8; stroke: #ef4444; }
    100% { transform: translateY(50px); opacity: 0; stroke: #3b82f6; }
}
@keyframes heatRiseAnim {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(-30px); opacity: 0; }
}
@keyframes pulseMoist { from { opacity: 0.3; } to { opacity: 0.7; transform: scale(1.05); } }

/* Grid Konsekwencji Tekstowych */
.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-err-card {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-err-border);
    background: var(--rk-err-bg);
}

.rk-err-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-err-card a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
}

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

@media (max-width: 768px) {
    .rk-err-header, .rk-err-controls, .rk-err-visual, .rk-err-grid { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-svg-simulator { max-width: 280px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są konsekwencje błędów w doborze grubości izolacji podłogowej?",
    "description": "Analiza skutków zastosowania zbyt miękkiego styropianu (EPS 70) oraz niedostatecznej grubości. Wzrost strat ciepła o 30% i ryzyko pękania wylewki.",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Kalkulator Strat i Uszkodzeń Posadzki (EPS 70 vs EPS 100)",
    "description": "Symulacja zestawień fizycznych i mechanicznych pokazująca skutki obniżania grubości (5-15cm) oraz twardości płyt izolacyjnych pod wylewką jastrychową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki zbyt cienkiego styropianu",
      "pękanie wylewki na podłogówce",
      "straty ciepła do gruntu",
      "niedogrzana łazienka podłogówka",
      "osiadanie posadzki styropian eps 70"
    ],
    "measurementTechnique": "Interaktywne modelowanie strat termicznych i odkształceń mechanicznych wylewki w oparciu o gęstość pozorną polistyrenu i prawo Fouriera.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek mocy grzewczej i efekt zimnych plam przy izolacji < 10 cm",
        "Destrukcja strukturalna jastrychu przy obciążeniu styropianu rzędu EPS 70",
        "Permanentna ucieczka strumienia ciepła w kierunku nieogrzewanego gruntu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-bledy",
    "name": "Symulator Degradacji Posadzki i Strat Ciepła",
    "description": "Narzędzie inżynieryjne z interaktywnymi suwakami demonstrujące wpływ twardości (EPS 70/100) i grubości na mechaniczne pękanie wylewki i ucieczkę energii.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "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>
            Symulacja Błędów i Awarii
        </div>
        <h2 class="rk-err-title">Jakie są konsekwencje błędów w doborze grubości i twardości izolacji?</h2>
        <p class="rk-err-desc">
            Zastosowanie izolacji niespełniającej wymogów normowych powoduje <strong>wzrost strat ciepła do gruntu nawet o 20-30%</strong>, co bezpośrednio przekłada się na zwiększenie rachunków za energię o kilkaset złotych rocznie. Użyj suwaków poniżej, aby zobaczyć fizyczne skutki oszczędzania na materiale.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-controls">
            
            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Grubość izolacji:
                    <span class="rk-err-val-display warning" id="val-thick">5 cm</span>
                </div>
                <input type="range" id="slider-thick" class="rk-range warning-track" min="5" max="15" step="5" value="5">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>5 cm (Awaria)</span>
                    <span>10 cm</span>
                    <span>15 cm (Norma)</span>
                </div>
            </div>

            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Twardość materiału:
                    <span class="rk-err-val-display warning" id="val-eps">EPS 70</span>
                </div>
                <input type="range" id="slider-eps" class="rk-range warning-track" min="70" max="100" step="30" value="70">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>Fasadowy (Miękki)</span>
                    <span>Podłogowy (Twardy)</span>
                </div>
            </div>

            <div class="rk-err-diagnosis" id="diag-panel">
                <div class="rk-diag-title" id="diag-title">Krytyczny stan posadzki!</div>
                <p class="rk-diag-text" id="diag-text">
                    Styropian ugina się pod ciężarem wylewki, powodując jej pękanie. Ucieczka ciepła w grunt wynosi +30%. Pomieszczenia będą trwale niedogrzane.
                </p>
            </div>

        </div>

        <div class="rk-err-visual" id="svg-container">
            <svg class="rk-svg-simulator" viewBox="0 0 200 200">
                <rect class="svg-ground" id="rect-ground" x="10" y="100" width="180" height="90" rx="4"/>
                
                <path class="svg-moisture" d="M30 110 Q40 90 50 110 T70 110 T90 110 T110 110 T130 110 T150 110 T170 110" fill="none" stroke="#3b82f6" stroke-width="4"/>

                <rect class="svg-eps" id="rect-eps" x="10" y="70" width="180" height="30" />
                
                <rect class="svg-concrete" x="10" y="30" width="180" height="40" rx="4" />
                <circle class="svg-pipe" cx="40" cy="50" r="7" />
                <circle class="svg-pipe" cx="80" cy="50" r="7" />
                <circle class="svg-pipe" cx="120" cy="50" r="7" />
                <circle class="svg-pipe" cx="160" cy="50" r="7" />

                <path class="svg-crack" d="M90 30 L100 45 L95 55 L105 70" />

                <path class="svg-heat-down" d="M40 70 L40 100 M35 85 L40 100 L45 85" />
                <path class="svg-heat-down" d="M120 70 L120 100 M115 85 L120 100 L125 85" />
                <path class="svg-heat-down" d="M160 70 L160 100 M155 85 L160 100 L165 85" />
                
                <path class="svg-heat-up" d="M80 30 L80 5 M75 15 L80 5 L85 15" />
                <path class="svg-heat-up" d="M120 30 L120 5 M115 15 L120 5 L125 15" />
            </svg>
        </div>

    </div>

    <div class="rk-err-grid">
        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Permanentny uciek strumienia ciepła
            </h4>
            <p>Grunt pod budynkiem działa jak nieskończony radiator. Bez bariery o odpowiednim oporze cieplnym (R), system marnuje wyprodukowaną energię na ogrzewanie mas ziemnych pod płytą fundamentową zamiast salonu.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Pękanie wylewki i osiadanie
            </h4>
            <p>Użycie styropianu elewacyjnego (EPS 70) powoduje odkształcenia plastyczne pod ciężarem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a> (ok. 130 kg/m²). Efektem jest pękanie płyty, uszkodzenia płytek i destrukcja dylatacji.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0284c7" 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>
                Efekt "zimnych plam"
            </h4>
            <p>Przy zbyt cienkiej izolacji drastycznie spada moc grzewcza posadzki. System nie pokrywa <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>, zwłaszcza w łazienkach, gdzie wymagana temperatura to 24°C.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                Zawilgocenie i pleśń
            </h4>
            <p>Brak optymalnej grubości płyt połączony z uchybieniami w kładzeniu <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">izolacji hydroizolacyjnej</a> generuje podciąganie kapilarne wilgoci z gruntu, degradację izolatora i ryzyko rozwoju mikroorganizmów.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (zgodnie z wytycznymi - brak H2/H3 w alercie)
    const hostName = window.location.hostname;
    const legalHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!legalHosts.includes(hostName)) {
        const errorContainer = document.getElementById('rk-err-app');
        if (errorContainer) {
            errorContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane użycie kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Moduł "Symulator Błędów Izolacyjnych" oraz mikrodane JSON-LD są prawnie chronione i należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const thickSlider = document.getElementById('slider-thick');
    const epsSlider = document.getElementById('slider-eps');
    
    const valThick = document.getElementById('val-thick');
    const valEps = document.getElementById('val-eps');
    
    const svgContainer = document.getElementById('svg-container');
    const rectEps = document.getElementById('rect-eps');
    const rectGround = document.getElementById('rect-ground');
    
    const diagPanel = document.getElementById('diag-panel');
    const diagTitle = document.getElementById('diag-title');
    const diagText = document.getElementById('diag-text');

    function updateSimulator() {
        const t = parseInt(thickSlider.value); // 5, 10, 15
        const e = parseInt(epsSlider.value);   // 70, 100

        // Reset klas SVG
        svgContainer.className = 'rk-err-visual';
        let svgClasses = ['rk-err-visual'];

        // Analiza Twardości (Osiadanie / Pękanie)
        if (e === 70) {
            valEps.textContent = 'EPS 70 (Błąd)';
            valEps.className = 'rk-err-val-display warning';
            epsSlider.className = 'rk-range warning-track';
            svgClasses.push('state-crack'); // Pokaż pęknięcie
        } else {
            valEps.textContent = 'EPS 100 (Norma)';
            valEps.className = 'rk-err-val-display safe';
            epsSlider.className = 'rk-range safe-track';
        }

        // Analiza Grubości (Straty ciepła i wilgoć)
        valThick.textContent = t + ' cm';
        
        // Animacje wysokości prostokątów SVG
        if (t === 5) {
            rectEps.setAttribute('height', '30');
            rectGround.setAttribute('y', '100');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss');
            svgClasses.push('state-moisture');
        } else if (t === 10) {
            rectEps.setAttribute('height', '50');
            rectGround.setAttribute('y', '120');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss'); // Częściowe straty
        } else if (t === 15) {
            rectEps.setAttribute('height', '70');
            rectGround.setAttribute('y', '140');
            valThick.className = 'rk-err-val-display safe';
            thickSlider.className = 'rk-range safe-track';
            svgClasses.push('state-heat-good'); // Ciepło idzie w górę
        }

        // Aktualizacja widoku SVG
        svgContainer.className = svgClasses.join(' ');

        // Generator Tekstu Diagnozy
        if (t === 15 && e === 100) {
            diagPanel.className = 'rk-err-diagnosis safe-mode';
            diagTitle.textContent = 'Instalacja w pełni bezpieczna';
            diagText.textContent = 'Znakomity wybór inżynieryjny. Jastrych ma stabilne podparcie, a całe wyprodukowane ciepło promieniuje w górę do pomieszczeń mieszkalnych.';
        } else if (e === 70) {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Ryzyko destrukcji posadzki!';
            diagText.textContent = `Zbyt miękki styropian ugnie się pod wylewką, powodując natychmiastowe pęknięcia. Dodatkowo ucieczka ciepła w grunt przy ${t} cm izolacji znacząco podniesie rachunki.`;
        } else {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Straty termiczne i zimne plamy';
            diagText.textContent = `Beton jest bezpieczny (EPS 100), ale grubość izolacji (${t} cm) nie spełnia norm WT2021 (U ≤ 0,20). Ryzykujesz permanentnym niedogrzaniem i ucieczką energii do gruntu.`;
        }
    }

    // Nasłuchiwacze Zdarzeń
    thickSlider.addEventListener('input', updateSimulator);
    epsSlider.addEventListener('input', updateSimulator);

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



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-card: #1e293b;
    --rk-mat-brand: #3b82f6;
    --rk-mat-brand-light: #eff6ff;
    --rk-mat-graphite: #334155;
    --rk-mat-white: #f8fafc;
    --rk-mat-alert: #ef4444;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #475569;
}

.rk-mat-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-mat-header {
    background: linear-gradient(135deg, var(--rk-mat-dark) 0%, #172554 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-mat-brand);
}

.rk-mat-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    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(147, 197, 253, 0.2);
}

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

.rk-mat-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Symulator Wysokości */
.rk-mat-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-mat-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-mat-val {
    background: var(--rk-mat-brand);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
    margin-bottom: 10px;
}

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-mat-brand);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
.rk-slider:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-mat-verdict {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    background: #ffffff;
    border: 2px dashed var(--rk-mat-brand);
}

.rk-verdict-title { font-size: 13px; text-transform: uppercase; font-weight: 800; color: var(--rk-mat-text); margin-bottom: 5px; }
.rk-verdict-result { font-size: 20px; font-weight: 900; color: var(--rk-mat-dark); }

/* SVG Wizualizacja (Poprawiona) */
.rk-mat-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
}

.rk-svg-compare {
    width: 100%;
    max-width: 400px; /* Zwiększona szerokość ułatwia czytanie */
    height: auto;
}

.svg-group { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.state-graphite .svg-group-white { opacity: 0.25; filter: grayscale(1); }
.state-white .svg-group-graphite { opacity: 0.25; filter: grayscale(1); }

.anim-eps-graphite { fill: #475569; }
.anim-eps-white { fill: #f8fafc; stroke: #cbd5e1; stroke-width: 2; }

/* Kafelki z Danymi */
.rk-mat-data-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-mat-data-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

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

.rk-mat-card:hover {
    border-color: var(--rk-mat-brand);
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.1);
    transform: translateY(-3px);
}

.rk-mat-card.recommended {
    background: var(--rk-mat-brand-light);
    border-color: var(--rk-mat-brand);
}

.rk-mat-card.alert {
    background: #fef2f2;
    border-color: #fca5a5;
}

.rk-card-header {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #e2e8f0;
}
.rk-mat-card.alert .rk-card-header { color: var(--rk-mat-alert); border-color: #fecaca; }

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    font-size: 14px;
}

.rk-stat-label { color: var(--rk-mat-text); font-weight: 600; }
.rk-stat-val { font-weight: 800; color: var(--rk-mat-dark); }
.rk-stat-val.highlight { color: var(--rk-mat-brand); font-size: 16px; }

/* Tekst podsumowujący */
.rk-mat-summary {
    padding: 0 50px 40px 50px;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-mat-text);
}

.rk-mat-summary a {
    color: var(--rk-mat-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59,130,246,0.4);
    transition: all 0.3s;
}
.rk-mat-summary a:hover { border-bottom-style: solid; color: #1e40af; }

@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-controls, .rk-mat-data-section, .rk-mat-summary { padding: 30px 20px; }
    .rk-mat-interactive { grid-template-columns: 1fr; }
    .rk-mat-controls { border-right: none; border-bottom: 1px solid var(--rk-mat-border); }
    .rk-mat-visual { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Który styropian wybrać: EPS 100 biały czy grafitowy?",
    "description": "Szczegółowe zestawienie parametrów technicznych izolacji (lambda, opór cieplny, odkształcenia). Porównanie styropianu grafitowego i białego EPS 100 i XPS.",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Katalog Parametrów Izolacyjnych (EPS/XPS)",
    "description": "Zestawienie parametrów technicznych (przewodzenie ciepła λ, naprężenie ściskające, opór R) dla materiałów izolacyjnych stosowanych pod wylewki grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "styropian grafitowy czy biały",
      "lambda styropianu",
      "EPS 100 podłogówka",
      "wylewka anhydrytowa styropian",
      "opór cieplny izolacji"
    ],
    "measurementTechnique": "Korelacja współczynnika przewodzenia ciepła λ z oporem cieplnym R dla grubości normatywnych 100-150mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "EPS 100 Grafit: λ = 0,031, R dla 10cm = 3,22",
        "EPS 100 Biały: λ = 0,036, R dla 10cm = 2,77",
        "XPS: λ = 0,029, R dla 10cm = 3,44, CS(10) ≥ 300 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-materialy",
    "name": "Symulator Wyboru Izolacji Podłogowej",
    "description": "Narzędzie wspomagające decyzję inwestorską. Przelicza dostępną wysokość posadzki (z chudziaka do poziomu 0) na optymalny wybór materiału (Grafit vs Biały).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-mat-app">
    
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Analiza Materiałowa
        </div>
        <h2>Który styropian wybrać: EPS 100 biały czy grafitowy?</h2>
        <p>
            Pod ogrzewanie podłogowe należy stosować wyłącznie styropian oznaczony parametrem minimum <strong>CS(10) ≥ 100 kPa (EPS 100)</strong>. Wybór koloru (odmiany) determinuje grubość izolacji: grafit przy 12 cm osiąga taki sam opór cieplny (R ≈ 3,87 m²·K/W) jak biały przy 15 cm.
        </p>
    </div>

    <div class="rk-mat-interactive">
        <div class="rk-mat-controls">
            <div class="rk-mat-label">
                Dostępna wysokość posadzki (od chudziaka):
                <span class="rk-mat-val" id="height-val">20 cm</span>
            </div>
            <input type="range" id="height-slider" class="rk-slider" min="15" max="30" step="1" value="20">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700;">
                <span>Krytycznie mało (15cm)</span>
                <span>Dużo (30cm)</span>
            </div>

            <div class="rk-mat-verdict">
                <div class="rk-verdict-title">Rekomendacja dla Twojej budowy:</div>
                <div class="rk-verdict-result" id="verdict-text">EPS 100 Grafitowy</div>
            </div>
        </div>

        <div class="rk-mat-visual" id="svg-stage">
            <svg class="rk-svg-compare" viewBox="0 0 320 220">
                <line x1="10" y1="200" x2="310" y2="200" stroke="#94a3b8" stroke-width="4" stroke-linecap="round" />
                <text x="160" y="215" font-family="sans-serif" font-size="11" font-weight="bold" fill="#64748b" text-anchor="middle">CHUDY BETON (Baza startowa)</text>

                <g class="svg-group svg-group-graphite">
                    <text x="80" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">GRAFIT 12cm</text>
                    
                    <rect fill="#cbd5e1" x="30" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-graphite" x="30" y="95" width="100" height="105" rx="4" />
                    
                    <text x="80" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#ffffff" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <g class="svg-group svg-group-white">
                    <text x="240" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">BIAŁY 15cm</text>
                    
                    <rect fill="#cbd5e1" x="190" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-white" x="190" y="95" width="100" height="105" rx="4" />
                    
                    <text x="240" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#0f172a" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <line x1="30" y1="45" x2="290" y2="45" stroke="#3b82f6" stroke-width="2" stroke-dasharray="6" />
                <text x="160" y="40" font-family="sans-serif" font-size="10" fill="#3b82f6" font-weight="bold" text-anchor="middle">POZIOM ZERO (Płytki)</text>
            </svg>
        </div>
    </div>

    <div class="rk-mat-data-section">
        <h3 class="rk-mat-data-title">Katalog Parametrów Technicznych</h3>
        <div class="rk-mat-grid">
            
            <div class="rk-mat-card alert">
                <div class="rk-card-header">EPS 70 (Podłoga/Dach)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,038</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val" style="color: #ef4444;">≥ 70 kPa (Zbyt miękki!)</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,63 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 3,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card" id="card-white">
                <div class="rk-card-header">EPS 100 (Standard biały)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,036</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,77 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 2,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card recommended" id="card-graphite">
                <div class="rk-card-header">EPS 100 (Premium grafit)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,031</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,22 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 1,5 %</span>
                </div>
            </div>

            <div class="rk-mat-card">
                <div class="rk-card-header">XPS (Polistyren ekstr.)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,029</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 300 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,44 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 0,5 %</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mat-summary">
        Wybór między grafitem a białym EPS sprowadza się najczęściej do analizy dostępnej wysokości progów drzwiowych i warstw posadzkowych. Jeśli wysokość od chudego betonu do planowanego poziomu zero (czystej podłogi) jest ograniczona i wynosi np. 22 cm, zastosowanie <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki anhydrytowej (50 mm)</a> oraz <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur na systemowym styropianie</a> grafitowym 120 mm pozwala na zachowanie optymalnego bufora bezpieczeństwa termicznego i konstrukcyjnego. Przy braku ograniczeń wysokościowych na budowie, ekonomicznie uzasadnione bywa ułożenie 150-200 mm nieco tańszego EPS 100 w wersji białej.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Brak H2/H3 w kodzie błędu)
    const hostStr = window.location.hostname;
    const validHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!validHosts.includes(hostStr)) {
        const wrap = document.getElementById('rk-mat-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny symulator materiałowy (Katalog EPS) oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const slider = document.getElementById('height-slider');
    const valDisplay = document.getElementById('height-val');
    const verdictText = document.getElementById('verdict-text');
    const svgStage = document.getElementById('svg-stage');
    
    const cardWhite = document.getElementById('card-white');
    const cardGraphite = document.getElementById('card-graphite');

    function updateLogic() {
        const height = parseInt(slider.value);
        valDisplay.textContent = height + ' cm';

        // Logika decyzyjna
        if (height < 24) {
            verdictText.textContent = 'EPS 100 Grafitowy';
            verdictText.style.color = '#1e293b'; 
            svgStage.className = 'rk-mat-visual state-graphite';
            
            cardGraphite.classList.add('recommended');
            cardWhite.classList.remove('recommended');
        } else {
            verdictText.textContent = 'EPS 100 Biały (Oszczędność)';
            verdictText.style.color = '#3b82f6'; 
            svgStage.className = 'rk-mat-visual state-white';
            
            cardWhite.classList.add('recommended');
            cardGraphite.classList.remove('recommended');
        }
    }

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



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-card: #1e293b;
    --rk-calc-brand: #0284c7;
    --rk-calc-brand-light: #e0f2fe;
    --rk-calc-accent: #0ea5e9; 
    --rk-calc-success: #10b981;
    --rk-calc-bg: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
}

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

/* Sekcja Nagłówkowa */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #0c4a6e 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-brand);
}

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    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(186, 230, 253, 0.2);
}

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

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

/* Panel Interaktywny - Nowy Układ (Góra/Dół) */
.rk-calc-interactive {
    padding: 40px 50px;
    background: var(--rk-calc-bg);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Suwak na pełną szerokość */
.rk-calc-controls {
    background: #ffffff;
    padding: 35px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

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

.rk-calc-val-box {
    background: var(--rk-calc-dark);
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 10px;
    font-size: 22px;
    font-weight: 900;
    transition: background 0.3s;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}

.rk-calc-val-box.pass { background: var(--rk-calc-success); }
.rk-calc-val-box.fail { background: #ef4444; }

.rk-slider-app {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: #cbd5e1;
    outline: none;
    margin-bottom: 15px;
}

.rk-slider-app::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-calc-brand);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    transition: transform 0.1s;
}
.rk-slider-app:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-calc-hints {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #64748b;
    font-weight: 800;
}

/* Dwie Kolumny Wyników */
.rk-results-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-result-card {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    position: relative;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-result-card.white-card { border-top: 5px solid #e2e8f0; }
.rk-result-card.graphite-card { border-top: 5px solid #64748b; }

.rk-result-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.white-card .rk-result-title { color: #cbd5e1; }
.graphite-card .rk-result-title { color: #94a3b8; }

.rk-result-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 20px;
    line-height: 1;
}

.rk-svg-ruler {
    width: 120px;
    height: 180px;
    overflow: visible;
}

.anim-bar-white { fill: #f8fafc; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-bar-graphite { fill: #475569; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-text-label { font-family: sans-serif; font-weight: 700; fill: #94a3b8; font-size: 10px; }

/* Krok po Kroku */
.rk-algo-section { padding: 40px 50px; background: #ffffff; }
.rk-algo-title { font-size: 22px; font-weight: 900; color: var(--rk-calc-dark); margin: 0 0 25px 0; display: flex; align-items: center; gap: 10px; }
.rk-algo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rk-algo-step { background: var(--rk-calc-bg); border: 1px solid var(--rk-calc-border); border-radius: 16px; padding: 25px; position: relative; }
.rk-algo-step-num { position: absolute; top: -15px; left: 20px; background: var(--rk-calc-brand); color: #ffffff; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 16px; box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3); }
.rk-algo-step h4 { font-size: 16px; font-weight: 800; color: var(--rk-calc-dark); margin: 10px 0 15px 0; }
.rk-algo-equation { background: #ffffff; padding: 12px 15px; border-radius: 8px; border: 1px dashed #cbd5e1; font-family: monospace; font-size: 14px; color: #0369a1; font-weight: 700; margin-bottom: 10px; overflow-x: auto; }
.rk-algo-desc { font-size: 14px; line-height: 1.6; color: var(--rk-calc-text); margin: 0; }

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-interactive, .rk-algo-section { padding: 30px 20px; }
    .rk-calc-controls { padding: 25px 20px; }
    .rk-calc-label { flex-direction: column; align-items: flex-start; gap: 15px; font-size: 16px; }
    .rk-results-split { grid-template-columns: 1fr; gap: 20px; }
    .rk-algo-grid { grid-template-columns: 1fr; }
    .rk-calc-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe",
    "description": "Algorytm obliczeniowy PN-EN ISO 13370 wyznaczający opór cieplny (R) i precyzyjną grubość styropianu EPS dla 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.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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-kalkulator",
    "name": "Algorytm Obliczeniowy Opór Cieplny EPS PN-EN ISO 13370",
    "description": "Parametry stałe i zmienne do obliczania grubości materiałów izolacyjnych na bazie zakładanego współczynnika przenikania ciepła U.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator grubości izolacji podłogowej",
      "obliczenia oporu cieplnego PN-EN ISO 13370",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "jak obliczyć styropian pod podłogówkę",
      "wzór na grubość styropianu"
    ],
    "measurementTechnique": "Algorytm 4-krokowy wykorzystujący transformację współczynnika U na całkowity opór cieplny przegrody R_tot, a następnie na fizyczną grubość w mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Sumowanie oporów stałych (R_si = 0,17; R_c = 0,10)",
        "Krok 2: Odwrócenie współczynnika U (R_tot = 1 / U)",
        "Krok 3: Izolacja właściwa (R_izol = R_tot - R_stale - R_g)",
        "Krok 4: Konwersja na mm w oparciu o parametr lambda (0,036 lub 0,031)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-kalkulator",
    "name": "Kalkulator Grubości Izolacji Podłogowej LCC",
    "description": "Interaktywne narzędzie inżynierskie pozwalające płynnie suwakiem symulować wymaganą grubość styropianu w zależności od zadanego standardu energetycznego U.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><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>
            Inżynieria Obliczeniowa
        </div>
        <h2>Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe</h2>
        <p>
            W celu precyzyjnego wyznaczenia wymaganej grubości styropianu dla uzyskania normowego współczynnika U ≤ 0,20 W/(m²·K), należy przeprowadzić szczegółowe obliczenia oporów cieplnych poszczególnych warstw przegrody. Zmień docelowy parametr U na suwaku, aby zobaczyć precyzyjny wymiar izolacji.
        </p>
    </div>

    <div class="rk-calc-interactive">
        
        <div class="rk-calc-controls">
            <div class="rk-calc-label">
                Docelowy współczynnik przenikania (U):
                <span class="rk-calc-val-box pass" id="calc-u-val">0.20 W/(m²K)</span>
            </div>
            <input type="range" id="calc-u-slider" class="rk-slider-app" min="0.10" max="0.30" step="0.01" value="0.20">
            <div class="rk-calc-hints">
                <span>Dom Pasywny (0.10)</span>
                <span>Norma WT2021 (0.20)</span>
                <span>Budownictwo starsze (0.30)</span>
            </div>
        </div>

        <div class="rk-results-split">
            
            <div class="rk-result-card white-card">
                <div class="rk-result-title">Wymagany EPS Biały (λ 0,036)</div>
                <div class="rk-result-value" id="text-white">134 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#cbd5e1" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-white" id="bar-white" x="25" y="60" width="50" height="100" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

            <div class="rk-result-card graphite-card">
                <div class="rk-result-title">Wymagany EPS Grafit (λ 0,031)</div>
                <div class="rk-result-value" id="text-graphite">115 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#64748b" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-graphite" id="bar-graphite" x="25" y="75" width="50" height="85" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

        </div>

    </div>

    <div class="rk-algo-section">
        <h3 class="rk-algo-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Algorytm wg PN-EN ISO 13370 (Dla U = 0,20)
        </h3>
        
        <div class="rk-algo-grid">
            
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">1</div>
                <h4>Określenie oporów przejmowania</h4>
                <div class="rk-algo-desc">
                    Przyjmij standardowe wartości oporów przejmowania ciepła: R_si = 0,17 m²·K/W (kierunek strumienia ciepła w dół) oraz uśredniony opór chudego betonu i okładziny R_c ≈ 0,10 m²·K/W. Zsumuj opory stałe.
                </div>
                <div class="rk-algo-equation">
                    R_stałe = 0,17 + 0,00 + 0,10 = 0,27 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">2</div>
                <h4>Całkowity opór przegrody (R_tot)</h4>
                <div class="rk-algo-desc">
                    Przekształć wzór na współczynnik przenikania ciepła U = 1 / R_tot. Podstawiając graniczną wartość wymaganą przez warunki techniczne U = 0,20 W/(m²·K):
                </div>
                <div class="rk-algo-equation">
                    R_tot = 1 / 0,20 = 5,00 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">3</div>
                <h4>Minimalny opór izolacji (R_izol)</h4>
                <div class="rk-algo-desc">
                    Odejmij od całkowitego oporu R_tot wartość oporów stałych oraz uśredniony opór cieplny gruntu (dla uproszczenia inżynierskich obliczeń strukturalnych przyjmuje się opór gruntu R_g ≈ 1,0 m²·K/W):
                </div>
                <div class="rk-algo-equation">
                    R_izol = 5,00 - 0,27 - 1,00 = 3,73 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">4</div>
                <h4>Obliczenie grubości (d) dla parametru λ</h4>
                <div class="rk-algo-desc">
                    Pomnóż wymagany opór izolacji przez współczynnik przewodzenia ciepła λ (lambda) wybranego materiału. Wynik otrzymasz w metrach, które przeliczamy na milimetry.
                </div>
                <div class="rk-algo-equation" style="color: var(--rk-calc-dark);">
                    Biały (0,036): d = 3,73 × 0,036 = 134 mm<br>
                    Grafit (0,031): d = 3,73 × 0,031 = 115 mm
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authDomains.includes(currentDomain)) {
        const errorWrap = document.getElementById('rk-calc-app');
        if (errorWrap) {
            errorWrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Algorytmu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny kalkulator grubości izolacji oraz system mikrodanych JSON-LD należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Obsługa Słupków SVG
    const uSlider = document.getElementById('calc-u-slider');
    const uValBox = document.getElementById('calc-u-val');
    
    const barWhite = document.getElementById('bar-white');
    const textWhite = document.getElementById('text-white');
    
    const barGraphite = document.getElementById('bar-graphite');
    const textGraphite = document.getElementById('text-graphite');

    const R_STALE = 0.27; 
    const R_GRUNT = 1.00; 
    const LAMBDA_W = 0.036; 
    const LAMBDA_G = 0.031; 

    // Nowe parametry dla izolowanych słupków SVG (viewBox 0 0 100 180)
    const SVG_BASE_Y = 160; 
    const PIXEL_PER_MM = 0.45; // Skalowanie dopasowane do wysokości 180px

    function runCalculation() {
        const U = parseFloat(uSlider.value);
        
        // Klasy wizualne dla normy WT2021
        if (U > 0.20) {
            uValBox.className = 'rk-calc-val-box fail';
        } else {
            uValBox.className = 'rk-calc-val-box pass';
        }
        
        uValBox.textContent = U.toFixed(2) + ' W/(m²K)';

        // Algorytm
        let R_tot = 1 / U;
        let R_izol = R_tot - R_STALE - R_GRUNT;
        if (R_izol < 0) R_izol = 0;

        let d_white_mm = Math.round((R_izol * LAMBDA_W) * 1000);
        let d_graphite_mm = Math.round((R_izol * LAMBDA_G) * 1000);

        // Ustawienie wielkich wartości w HTML
        textWhite.textContent = d_white_mm + ' mm';
        textGraphite.textContent = d_graphite_mm + ' mm';

        // Animacja SVG - ustalenie wysokości
        let h_white_px = d_white_mm * PIXEL_PER_MM;
        let h_graphite_px = d_graphite_mm * PIXEL_PER_MM;
        
        // Ochrona przed przenikaniem przez górną ramkę (max wys. np. 150)
        if (h_white_px > 150) h_white_px = 150;
        if (h_graphite_px > 150) h_graphite_px = 150;
        if (h_white_px < 5) h_white_px = 5;
        if (h_graphite_px < 5) h_graphite_px = 5;

        // Aplikacja atrybutów
        barWhite.setAttribute('height', h_white_px);
        barWhite.setAttribute('y', SVG_BASE_Y - h_white_px);

        barGraphite.setAttribute('height', h_graphite_px);
        barGraphite.setAttribute('y', SVG_BASE_Y - h_graphite_px);
    }

    uSlider.addEventListener('input', runCalculation);
    runCalculation();
});
</script>



<ol start="1" class="wp-block-list"></ol>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Ostrzegawcza czerwień */
    --rk-err-brand-light: #fef2f2;
    --rk-err-safe: #10b981;
    --rk-err-accent: #f59e0b; /* Pomarańcz - uwaga */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-brand);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(252, 165, 165, 0.2);
}

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

.rk-err-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Interaktywny Audytor */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 380px 1fr; /* Poszerzona kolumna pod dłuższe nazwy błędów */
    background: var(--rk-err-bg);
}

/* Lewa strona - Menu błędów */
.rk-err-menu {
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
    background: #ffffff;
}

.rk-err-menu-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 2px solid transparent;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 12px;
    line-height: 1.4;
}

.rk-err-btn:hover {
    background: var(--rk-err-brand-light);
    color: var(--rk-err-brand);
}

.rk-err-btn.active {
    background: var(--rk-err-brand-light);
    border-color: var(--rk-err-brand);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

.rk-err-btn-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-btn-icon {
    background: var(--rk-err-brand);
    color: #ffffff;
}

/* Prawa strona - Panel i SVG */
.rk-err-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-err-visual {
    width: 100%;
    height: 260px;
    background: var(--rk-err-dark);
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rk-svg-stage {
    width: 100%;
    max-width: 380px;
    height: 100%;
}

/* Zmienne SVG na podstawie stanu */
.svg-wall { fill: #475569; }
.svg-ground { fill: #64748b; transition: all 0.5s; }
.svg-bump { fill: #64748b; transform: scaleY(0); transform-origin: bottom; transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.svg-eps-1 { fill: #fcd34d; transition: all 0.4s; }
.svg-eps-2 { fill: #fbbf24; transition: all 0.4s; }
.svg-concrete { fill: #94a3b8; transition: all 0.4s; }
.svg-tape { fill: #3b82f6; opacity: 1; transition: opacity 0.3s; }
.svg-crack { stroke: #0f172a; stroke-width: 3; fill: none; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.6s ease-out; }
.svg-heat-arrow { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-liquid { fill: #60a5fa; opacity: 0; transform: translateY(-20px); transition: all 0.4s; }

/* Nowe elementy SVG dla długiego ogona */
.svg-pipe { transition: all 0.4s; }
.svg-kan-pipe { fill: #cbd5e1; stroke: #3b82f6; stroke-width: 2; opacity: 0; transition: opacity 0.4s; }
.svg-foam { fill: #fde047; opacity: 0; transition: opacity 0.4s; }
.svg-clip { stroke: #0f172a; stroke-width: 2; fill: none; opacity: 0; }

/* Animacje stanów */
/* 1. Jedna warstwa */
.state-layer .svg-eps-2 { opacity: 0; }
.state-layer .svg-heat-arrow.layer-leak { animation: heatEscapeUp 1.5s infinite linear; }
@keyframes heatEscapeUp { 0% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-40px); opacity: 0; } }

/* 2. Nierówności */
.state-uneven .svg-bump { transform: scaleY(1); }
.state-uneven .svg-eps-1 { transform: translateY(-10px) rotate(-2deg); transform-origin: center; }
.state-uneven .svg-eps-2 { transform: translateY(-10px) rotate(2deg); transform-origin: center; }
.state-uneven .svg-concrete { transform: translateY(-5px); }
.state-uneven .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 3. Dylatacja brzegowa */
.state-edge .svg-tape { opacity: 0; }
.state-edge .svg-heat-arrow.edge-leak { animation: heatEscapeSide 1.5s infinite linear; }
@keyframes heatEscapeSide { 0% { transform: translateX(0); opacity: 0.8; } 100% { transform: translateX(-30px); opacity: 0; } }

/* 4. Folia */
.state-foil .svg-eps-2 { transform: translateX(5px); }
.state-foil .svg-liquid { opacity: 0.8; animation: drip 1.5s infinite ease-in; }
@keyframes drip { 0% { transform: translateY(-10px); opacity: 0.8; } 100% { transform: translateY(30px); opacity: 0; } }

/* 5. Styropian Fasadowy (Miękki) */
.state-soft .svg-eps-1 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-eps-2 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-concrete { transform: translateY(28px); }
.state-soft .svg-pipe { transform: translateY(28px); }
.state-soft .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 6. Krzyżowanie rur Wod-Kan */
.state-cross .svg-kan-pipe { opacity: 1; }
.state-cross .svg-eps-1 { opacity: 0.5; }
.state-cross .svg-heat-arrow.cross-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 7. Łatanie pianką */
.state-gap .svg-eps-2 { transform: translateX(-15px); }
.state-gap .svg-foam { opacity: 1; animation: foamExpand 2s infinite alternate; }
@keyframes foamExpand { from { transform: scaleX(0.9); } to { transform: scaleX(1.1); } }
.state-gap .svg-heat-arrow.gap-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 8. Wyrywanie spinek */
.state-clip .svg-clip { opacity: 1; }
.state-clip .svg-pipe-loose { transform: translateY(-20px); }
.state-clip .svg-concrete { opacity: 0.8; }


/* Panel tekstowy */
.rk-err-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
}

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

.rk-err-content a {
    color: var(--rk-err-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-err-solution {
    background: #dcfce7;
    border-left: 4px solid var(--rk-err-safe);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 20px;
}

.rk-err-solution strong {
    color: #065f46;
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-err-solution span {
    color: #166534;
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-display { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 20px; }
    .rk-err-visual { height: 200px; }
    .rk-err-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wykonawstwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawcze podczas układania styropianu",
    "description": "8 krytycznych błędów izolacyjnych: od braku taśmy brzegowej, przez klawiszowanie podłoża, stosowanie pianki, po wyrywanie rur i styropian fasadowy EPS 70.",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wykonawstwo",
    "name": "Katalog 8 Krytycznych Błędów Izolacji Płaszczyznowej",
    "description": "Rozszerzona baza danych klasyfikująca błędy mechaniczne i termiczne przy układaniu polistyrenu pod jastrych grzewczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu ogrzewania podłogowego",
      "styropian fasadowy pod ogrzewanie podłogowe",
      "wyrywanie spinek do podłogówki ze styropianu",
      "rury wodne w styropianie podłogowym krzyżowanie",
      "wypełnianie ubytków w styropianie podłogowym pianką"
    ],
    "measurementTechnique": "Wizualizacja wektorowa uchybień fizycznych uwzględniająca odkształcenia plastyczne EPS 70, kolizje instalacji wod-kan oraz wyrwania mechaniczne klipsów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jedna warstwa EPS: Powstają szczeliny i mostki termiczne.",
        "Nierówne podłoże (pow. 8mm): Powoduje klawiszowanie wylewki.",
        "Brak taśmy brzegowej: Generuje mostek obwodowy w ściany.",
        "Brak szczelności folii: Ucieczka płynnego jastrychu.",
        "Styropian fasadowy EPS 70: Zapadanie się izolacji pod ciężarem.",
        "Krzyżowanie rur wod-kan: Punktowe wychładzanie i utrata twardości podłoża.",
        "Wypełnianie pianką PUR: Trwała degradacja oporu cieplnego.",
        "Zbyt krótkie spinki: Wypychanie rur z izolacji podczas zalewania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wykonawstwo",
    "name": "Audytor Błędów Montażu Styropianu (Wersja PRO)",
    "description": "Rozbudowana aplikacja symulująca zachowanie warstw podłogowych i instalacji w przypadku wystąpienia 8 głównych patologii budowlanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "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>
            Weryfikacja Wykonawstwa
        </div>
        <h2>Najczęstsze błędy montażowe</h2>
        <p>
            Nawet najlepszej jakości materiał izolacyjny utraci swoje właściwości, jeśli zostanie zamontowany niezgodnie ze sztuką budowlaną. Zobacz 8 krytycznych błędów identyfikowanych podczas audytów inżynierskich.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-menu">
            <div class="rk-err-menu-title">Wybierz błąd do symulacji:</div>
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-target="err-layer">
                    <div class="rk-err-btn-icon">1</div>
                    Jedna warstwa izolacji
                </button>
                <button class="rk-err-btn" data-target="err-uneven">
                    <div class="rk-err-btn-icon">2</div>
                    Nierówne podłoże
                </button>
                <button class="rk-err-btn" data-target="err-edge">
                    <div class="rk-err-btn-icon">3</div>
                    Brak dylatacji brzegowej
                </button>
                <button class="rk-err-btn" data-target="err-foil">
                    <div class="rk-err-btn-icon">4</div>
                    Nieszczelność folii
                </button>
                <button class="rk-err-btn" data-target="err-soft">
                    <div class="rk-err-btn-icon">5</div>
                    Miękki styropian (EPS 70)
                </button>
                <button class="rk-err-btn" data-target="err-cross">
                    <div class="rk-err-btn-icon">6</div>
                    Kolizje z rurami wod-kan
                </button>
                <button class="rk-err-btn" data-target="err-gap">
                    <div class="rk-err-btn-icon">7</div>
                    Łatanie szpar pianką PUR
                </button>
                <button class="rk-err-btn" data-target="err-clip">
                    <div class="rk-err-btn-icon">8</div>
                    Zbyt krótkie spinki (Tacker)
                </button>
            </div>
        </div>

        <div class="rk-err-display">
            
            <div class="rk-err-visual state-layer" id="svg-stage">
                <svg class="rk-svg-stage" viewBox="0 0 300 200">
                    <rect class="svg-wall" x="0" y="0" width="30" height="200" />
                    
                    <rect class="svg-ground" x="30" y="150" width="270" height="50" />
                    <path class="svg-bump" d="M 120 150 Q 150 110 180 150 Z" />

                    <rect class="svg-tape" x="30" y="40" width="5" height="110" />

                    <rect class="svg-eps-1" x="35" y="115" width="120" height="35" rx="2" />
                    <rect class="svg-eps-1" x="155" y="115" width="145" height="35" rx="2" />
                    
                    <rect class="svg-eps-2" x="35" y="80" width="100" height="35" rx="2" />
                    <rect class="svg-eps-2" x="135" y="80" width="165" height="35" rx="2" />

                    <circle class="svg-kan-pipe" cx="155" cy="132" r="14" />

                    <path class="svg-foam" d="M 130 80 L 140 80 L 138 115 L 128 115 Z" />

                    <rect class="svg-concrete" x="35" y="40" width="265" height="40" rx="2" />
                    <circle class="svg-pipe" cx="70" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="120" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe svg-pipe-loose" cx="170" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="220" cy="60" r="6" fill="#ef4444" />

                    <path class="svg-clip" d="M 165 70 L 160 50 M 175 70 L 180 50" />

                    <path class="svg-crack" d="M 140 40 L 155 55 L 145 65 L 150 80" />
                    <path class="svg-heat-arrow layer-leak" d="M 145 150 L 145 100 M 140 110 L 145 100 L 150 110" />
                    <path class="svg-heat-arrow edge-leak" d="M 50 60 L 10 60 M 20 55 L 10 60 L 20 65" />
                    <path class="svg-heat-arrow cross-leak" d="M 155 132 L 155 80 M 145 95 L 155 80 L 165 95" />
                    <path class="svg-heat-arrow gap-leak" d="M 135 115 L 135 70 M 125 85 L 135 70 L 145 85" />
                    <path class="svg-liquid" d="M 140 80 Q 145 100 140 115" stroke="#60a5fa" stroke-width="4" fill="none"/>
                </svg>
            </div>

            <div class="rk-err-content" id="err-content">
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Ochrona domeny (Bez tagów H w stringu błędu)
    const activeDomain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(activeDomain)) {
        const wrap = document.getElementById('rk-err-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny Audytor Błędów oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Skrypt zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Rozszerzona Baza Treści (8 Błędów SEO)
    const errData = {
        'err-layer': {
            title: 'Układanie izolacji w jednej warstwie',
            text: 'Zastosowanie pojedynczej płyty o grubości np. 15 cm generuje pionowe, bezpośrednie szczeliny na łączeniach płyt. Tworzy to potężne, liniowe mostki termiczne, przez które ciepło ucieka w kierunku fundamentu.',
            solution: 'Płyty należy układać bezwzględnie w układzie mijankowym (np. 10 cm + 5 cm) z przesunięciem krawędzi o minimum 20 cm.'
        },
        'err-uneven': {
            title: 'Brak wyrównania podłoża',
            text: 'Układanie płyt na chropowatej powierzchni z zaprawą tworzy pustki powietrzne. Pod dociskiem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">ciężkiej wylewki</a> styropian łamie się, powodując klawiszowanie betonu.',
            solution: 'Nierówności >8 mm bezwzględnie wyrównaj podsypką piaskową lub szybką masą samopoziomującą przed układaniem płyt.'
        },
        'err-edge': {
            title: 'Ignorowanie izolacji brzegowej',
            text: 'Brak pianki dylatacyjnej odcina wylewce grzewczej możliwość naturalnej rozszerzalności termicznej. Gorący beton styka się z zimną ścianą, przekazując energię prosto w mury.',
            solution: 'Wokół wszystkich ścian i słupów zastosuj taśmę brzegową z folią o grubości minimum 8 mm.'
        },
        'err-foil': {
            title: 'Nieszczelność folii (Wylewka anhydrytowa)',
            text: 'Samo ułożenie folii "na zakładkę" to błąd przy jastrychach płynnych. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka anhydrytowa</a> wleje się w szczeliny izolacji, unosząc styropian do góry i tworząc mostki akustyczne.',
            solution: 'Zakłady folii zrastrowanej precyzyjnie sklej taśmą wodoodporną, tworząc szczelną wannę dla płynnego jastrychu.'
        },
        'err-soft': {
            title: 'Zastosowanie styropianu fasadowego',
            text: 'Często spotykany błąd z chęci oszczędności. Miękki styropian (EPS 70 lub fasadowy) drastycznie odkształci się (osiądzie) pod ciężarem wylewki i mebli, zrywając rury oraz pękając beton.',
            solution: 'Zawsze używaj dedykowanego styropianu podłogowego o współczynniku odporności na ściskanie minimum CS(10) 100 kPa.'
        },
        'err-cross': {
            title: 'Krzyżowanie rur bez izolacji',
            text: 'Prowadzenie rur CWU/CO bezpośrednio w warstwie styropianu podłogowego bez wycięcia szerszych kanałów i założenia peszli/otulin skutkuje ubytkami cieplnymi i osłabieniem podparcia rur grzewczych na górze.',
            solution: 'Instalacje wod-kan układaj wyłącznie w pierwszej warstwie izolacji (np. 10 cm), wycinając precyzyjne kanały i stosując grube otuliny.'
        },
        'err-gap': {
            title: 'Łatanie ubytków pianką PUR',
            text: 'Cięcie styropianu "na oko" i wypełnianie powstałych, kilkucentymetrowych szczelin zwykłą pianką montażową niszczy jednorodność oporu cieplnego posadzki. Zwykła piana szybko ulega degradacji i utlenieniu.',
            solution: 'Płyty należy docinać gilotyną termiczną (gorącym drutem), co zapewnia idealne spasowanie bloków "na wcisk" bez zaprawy.'
        },
        'err-clip': {
            title: 'Zbyt krótkie spinki do tackera',
            text: 'Stosowanie spinek o długości 40 mm na folii przytwierdzonej do miększej warstwy wierzchniej (np. 5 cm) skutkuje masowym wyrywaniem rur ze styropianu w trakcie zalewania betonem (rury wypływają na wierzch).',
            solution: 'Dobieraj spinki do grubości warstwy nośnej folii – przy układzie rur rzędu 16x2.0 mm absolutne minimum to spinki 50 mm wbijane prosto.'
        }
    };

    // 3. Logika Interfejsu
    const btns = document.querySelectorAll('.rk-err-btn');
    const svgStage = document.getElementById('svg-stage');
    const contentBox = document.getElementById('err-content');

    function updateView(targetId) {
        // Reset klas SVG
        svgStage.className = `rk-err-visual state-${targetId.replace('err-', '')}`;
        
        // Render Treści
        const data = errData[targetId];
        contentBox.innerHTML = `
            <h3>${data.title}</h3>
            <p>${data.text}</p>
            <div class="rk-err-solution">
                <strong>Standard Inżynierski:</strong>
                <span>${data.solution}</span>
            </div>
        `;
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            updateView(this.getAttribute('data-target'));
        });
    });

    // Startowa inicjalizacja
    updateView('err-layer');
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-brand: #0284c7; /* Błękit inżynieryjny */
    --rk-proj-brand-light: #e0f2fe;
    --rk-proj-accent: #0ea5e9; 
    --rk-proj-success: #10b981;
    --rk-proj-warning: #f59e0b;
    --rk-proj-danger: #ef4444;
    --rk-proj-bg: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #475569;
}

.rk-proj-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-proj-header {
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #0c4a6e 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-proj-brand);
}

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    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(186, 230, 253, 0.2);
}

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

.rk-proj-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Symulator Hydrauliczny */
.rk-proj-interactive {
    padding: 40px 50px;
    background: var(--rk-proj-bg);
    border-bottom: 1px solid var(--rk-proj-border);
}

/* Przełącznik (Toggle) */
.rk-proj-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 35px auto;
}

.rk-proj-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-proj-toggle-btn.active[data-state="bad"] {
    background: #ffffff;
    color: var(--rk-proj-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-proj-toggle-btn.active[data-state="good"] {
    background: #ffffff;
    color: var(--rk-proj-success);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Grid Dashboardu */
.rk-proj-dashboard {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: center;
}

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

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    padding: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

.rk-metric-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-proj-text);
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}

/* Stan Zły */
.state-bad .rk-metric-card.alert { border-color: #fca5a5; background: #fef2f2; }
.state-bad .rk-metric-card.alert .rk-metric-val { color: var(--rk-proj-danger); }

/* Stan Dobry */
.state-good .rk-metric-card.ok { border-color: #6ee7b7; background: #ecfdf5; }
.state-good .rk-metric-card.ok .rk-metric-val { color: var(--rk-proj-success); }

/* Wizualizacja SVG (Hydraulika) */
.rk-proj-visual {
    background: var(--rk-proj-dark);
    border-radius: 16px;
    padding: 20px;
    height: 220px;
    position: relative;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-svg-hydraulics {
    width: 100%;
    max-width: 320px;
}

/* Elementy SVG */
.svg-bg-concrete { fill: #1e293b; }
.svg-pipe-path {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.svg-flow-dash {
    fill: none;
    stroke: rgba(255,255,255,0.6);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Animacje Flow */
.state-bad .svg-pipe-path { stroke: #ef4444; } /* Czerwone - wysokie opory */
.state-bad .svg-pipe-extra { opacity: 1; } /* Gęsty rozstaw */
.state-bad .svg-flow-dash { stroke-dasharray: 10 15; animation: franticFlow 0.5s linear infinite; }
.state-bad .svg-pump-icon { fill: #ef4444; animation: pumpStress 0.2s infinite alternate; }

.state-good .svg-pipe-path { stroke: #3b82f6; } /* Niebieskie - optymalne */
.state-good .svg-pipe-extra { opacity: 0; transform: translateY(-10px); } /* Szerszy rozstaw */
.state-good .svg-flow-dash { stroke-dasharray: 20 30; animation: smoothFlow 1.5s linear infinite; }
.state-good .svg-pump-icon { fill: #10b981; }

@keyframes franticFlow { to { stroke-dashoffset: -50; } }
@keyframes smoothFlow { to { stroke-dashoffset: -100; } }
@keyframes pumpStress { from { transform: scale(0.95) translate(-1px, 1px); } to { transform: scale(1.05) translate(1px, -1px); } }

/* Sekcja z tekstem objaśniającym */
.rk-proj-explanation {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

.rk-proj-explanation p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-proj-text);
    margin: 0 0 20px 0;
}

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

.rk-tech-box {
    background: var(--rk-proj-bg);
    border-left: 4px solid var(--rk-proj-brand);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
    font-family: monospace;
    font-size: 14px;
    color: #0369a1;
    font-weight: 600;
}

/* MOCNE CTA Z ROI */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: linear-gradient(180deg, #ffffff 0%, #f0f9ff 100%);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

.rk-cta-wrapper {
    max-width: 700px;
    margin: 0 auto;
    background: #ffffff;
    border: 2px solid var(--rk-proj-brand);
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.2);
    position: relative;
    overflow: hidden;
}

.rk-cta-wrapper::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 6px;
    background: linear-gradient(90deg, #10b981, #0284c7);
}

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

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

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

.rk-cta-btn:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
}

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

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

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-interactive, .rk-proj-explanation, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-dashboard { grid-template-columns: 1fr; }
    .rk-proj-toggle-wrap { flex-direction: column; }
    .rk-cta-wrapper { padding: 30px 20px; }
    .rk-cta-btn { width: 100%; padding: 16px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?",
    "description": "Dowiedz się, jak grubość styropianu determinuje wyniki OZC, przepływy hydrauliczne i rozstaw rur. Zobacz interaktywną symulację.",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-projekt",
    "name": "Parametry hydrauliczne w zależności od izolacji podłogi",
    "description": "Zestawienie zmiennych hydraulicznych (przepływ masowy, opór, rozstaw rur) wynikających ze zmiany obciążenia cieplnego (OZC) budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wpływ styropianu na projekt podłogówki",
      "obliczenia OZC a izolacja",
      "przepływ masowy czynnika ogrzewanie podłogowe",
      "rozstaw rur 10 czy 15 cm",
      "opory hydrauliczne pompy obiegowej"
    ],
    "measurementTechnique": "Symulacja zmian parametrów instalacji (Q=1.2kW vs Q=1.8kW) przy spadku temperatury ΔT=5K i ich wpływ na pompę obiegową.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Optymalny (15 cm): Zapotrzebowanie 1,2 kW -> Przepływ 206 l/h -> Rozstaw 15 cm",
        "Wariant Słaby (10 cm): Zapotrzebowanie 1,8 kW -> Przepływ 310 l/h -> Rozstaw 10 cm (Zagrożenie hydrauliczne)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-projekt",
    "name": "Symulator Wpływu Izolacji na Hydraulikę",
    "description": "Aplikacja wizualizująca przeciążenie pompy obiegowej i zagęszczenie rur w przypadku zastosowania zbyt cienkiej warstwy styropianu podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Finanse i Hydraulika
        </div>
        <h2>Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?</h2>
        <p>
            Projekt instalacji grzewczej to system naczyń połączonych. Grubość i jakość izolacji termicznej determinują końcowe wyniki obliczeń <strong>Projektowego Obciążenia Cieplnego (OZC)</strong>, co bezpośrednio wpływa na geometrię pętli grzewczych oraz parametry pracy źródła ciepła.
        </p>
    </div>

    <div class="rk-proj-interactive">
        
        <div class="rk-proj-toggle-wrap">
            <button class="rk-proj-toggle-btn active" data-state="bad">
                <svg width="18" height="18" 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>
                Odchudzona Izolacja (10 cm)
            </button>
            <button class="rk-proj-toggle-btn" data-state="good">
                <svg width="18" height="18" 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>
                Optymalna Izolacja (15 cm)
            </button>
        </div>

        <div class="rk-proj-dashboard state-bad" id="proj-dashboard">
            
            <div class="rk-proj-metrics">
                <div class="rk-metric-card alert" id="card-ozc">
                    <div class="rk-metric-title">Zapotrzebowanie (Q)</div>
                    <div class="rk-metric-val" id="val-ozc">1,8 kW</div>
                </div>
                <div class="rk-metric-card alert" id="card-flow">
                    <div class="rk-metric-title">Wymagany przepływ</div>
                    <div class="rk-metric-val" id="val-flow">310 l/h</div>
                </div>
                <div class="rk-metric-card alert" id="card-space">
                    <div class="rk-metric-title">Rozstaw rur</div>
                    <div class="rk-metric-val" id="val-space">co 10 cm</div>
                </div>
                <div class="rk-metric-card alert" id="card-loop">
                    <div class="rk-metric-title">Stan pompy obiegowej</div>
                    <div class="rk-metric-val" id="val-loop">Przeciążona</div>
                </div>
            </div>

            <div class="rk-proj-visual">
                <svg class="rk-svg-hydraulics" viewBox="0 0 300 200">
                    <rect class="svg-bg-concrete" x="10" y="20" width="280" height="160" rx="8" />
                    
                    <g transform="translate(0, 10)">
                        <path class="svg-pipe-path" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        <path class="svg-flow-dash" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        
                        <g class="svg-pipe-extra">
                            <path class="svg-pipe-path" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                            <path class="svg-flow-dash" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                        </g>
                    </g>
                    
                    <circle cx="50" cy="180" r="15" fill="#334155" stroke="#cbd5e1" stroke-width="3" />
                    <polygon class="svg-pump-icon" points="43,185 50,170 57,185" />
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-proj-explanation">
        <p>Kiedy redukujemy straty ciepła przez podłogę poprzez zwiększenie grubości styropianu z 10 cm do 15 cm, zapotrzebowanie na moc cieplną pomieszczenia spada. To daje projektantowi potężne możliwości optymalizacyjne:</p>
        
        <ul style="color: var(--rk-proj-text); line-height: 1.8; margin-bottom: 25px;">
            <li><strong>Zwiększenie rozstawu rur:</strong> Zamiast gęstego układania co 10 cm (które generuje wysokie opory hydrauliczne), można zastosować rozstaw co 15 cm.</li>
            <li><strong>Skrócenie długości pętli:</strong> Krótsze pętle oznaczają mniejsze straty ciśnienia w instalacji hydraulicznej.</li>
            <li><strong>Obniżenie parametrów zasilania:</strong> Pompa ciepła może zasilać układ temperaturą o 2-3°C niższą, co przekłada się na drastyczny wzrost jej efektywności sezonowej (SCOP).</li>
        </ul>

        <div class="rk-tech-box">
            PRZYKŁAD HYDRAULICZNY:<br><br>
            [15 cm EPS] Q = 1,2 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong>0,206 m³/h (206 l/h)</strong>.<br><br>
            [10 cm EPS] Q = 1,8 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong style="color:#ef4444;">0,310 m³/h (310 l/h)</strong>.<br>
            Wynik? Przekroczenie dopuszczalnych oporów liniowych i konieczność zakupu większej pompy obiegowej.
        </div>
    </div>

    <div class="rk-proj-cta-section">
        <div class="rk-cta-wrapper">
            <h3 class="rk-cta-title">Zainwestuj w wiedzę. Zaoszczędź na eksploatacji.</h3>
            <p class="rk-cta-desc">
                Prawidłowo wykonany <strong>Projekt Ogrzewania Podłogowego (OZC + Hydraulika)</strong> to nie jest wydatek. To inwestycja, która optymalizuje ilość materiału na budowie i gwarantuje najniższe możliwe rachunki za ogrzewanie. Koszt projektu często zwraca się już w pierwszym sezonie grzewczym pracy pompy ciepła.
            </p>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
                ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (Brak H w alercie)
    const dmn = window.location.hostname;
    const allowedDmns = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDmns.includes(dmn)) {
        const blck = document.getElementById('rk-proj-app');
        if (blck) {
            blck.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel hydrauliczny oraz dane JSON-LD są własnością domeny <strong>Projekt-Ogrzewania.pl</strong>. Kod został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle i Aktualizacja Danych
    const btns = document.querySelectorAll('.rk-proj-toggle-btn');
    const dashboard = document.getElementById('proj-dashboard');
    
    const valOzc = document.getElementById('val-ozc');
    const valFlow = document.getElementById('val-flow');
    const valSpace = document.getElementById('val-space');
    const valLoop = document.getElementById('val-loop');
    
    const cards = document.querySelectorAll('.rk-metric-card');

    const dataStates = {
        'bad': {
            ozc: '1,8 kW',
            flow: '310 l/h',
            space: 'co 10 cm',
            loop: 'Przeciążona',
            cssClass: 'state-bad',
            cardClass: 'alert'
        },
        'good': {
            ozc: '1,2 kW',
            flow: '206 l/h',
            space: 'co 15 cm',
            loop: 'Optymalna',
            cssClass: 'state-good',
            cardClass: 'ok'
        }
    };

    function updateDashboard(state) {
        const data = dataStates[state];
        
        // Zmiana tekstu
        valOzc.textContent = data.ozc;
        valFlow.textContent = data.flow;
        valSpace.textContent = data.space;
        valLoop.textContent = data.loop;

        // Zmiana klas kontenera nadrzędnego (dla animacji SVG)
        dashboard.className = `rk-proj-dashboard ${data.cssClass}`;

        // Zmiana klas kart (kolory)
        cards.forEach(card => {
            card.className = `rk-metric-card ${data.cardClass}`;
        });
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (this.classList.contains('active')) return;
            
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            updateDashboard(this.getAttribute('data-state'));
        });
    });

    // Inicjalizacja bazowa
    updateDashboard('bad');
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-card: #1e293b;
    --rk-cs-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności/pieniędzy */
    --rk-cs-brand-light: #d1fae5;
    --rk-cs-accent: #f59e0b; /* Złoto/Bursztyn */
    --rk-cs-danger: #ef4444; /* Czerwień dla strat */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #475569;
}

.rk-cs-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #064e3b 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-cs-brand);
    position: relative;
}

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(110, 231, 183, 0.2);
}

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

.rk-cs-header p {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* Moduł Interaktywny - Porównanie ROI */
.rk-cs-interactive {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
}

.rk-cs-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
}

.rk-cs-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-cs-toggle-btn.active[data-view="before"] {
    background: #ffffff;
    color: var(--rk-cs-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-cs-toggle-btn.active[data-view="after"] {
    background: #ffffff;
    color: var(--rk-cs-brand);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Wyeksponowane Oszczędności (Kluczowy element) */
.rk-cs-savings-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.rk-cs-savings-card {
    background: #ffffff;
    border: 2px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -10px rgba(0,0,0,0.05);
}

.rk-cs-savings-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 5px;
    background: var(--rk-cs-border);
    transition: background 0.5s;
}

/* Stan "Po Audycie" - Zielony/Złoty */
.state-after .rk-cs-savings-card.capex { border-color: var(--rk-cs-brand); box-shadow: 0 15px 30px -10px rgba(16,185,129,0.2); }
.state-after .rk-cs-savings-card.capex::before { background: var(--rk-cs-brand); }
.state-after .rk-cs-savings-card.opex { border-color: var(--rk-cs-accent); box-shadow: 0 15px 30px -10px rgba(245,158,11,0.2); }
.state-after .rk-cs-savings-card.opex::before { background: var(--rk-cs-accent); }

/* Stan "Przed" - Czerwony */
.state-before .rk-cs-savings-card { border-color: #fca5a5; background: #fef2f2; }
.state-before .rk-cs-savings-card::before { background: var(--rk-cs-danger); }

.rk-cs-card-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-cs-text);
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.rk-cs-card-val {
    font-size: 48px;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
    transition: color 0.5s;
}

.rk-cs-card-val span {
    font-size: 20px;
    font-weight: 700;
}

.state-after .capex .rk-cs-card-val { color: var(--rk-cs-brand); }
.state-after .opex .rk-cs-card-val { color: var(--rk-cs-accent); }
.state-before .rk-cs-card-val { color: var(--rk-cs-danger); }

.rk-cs-card-desc {
    font-size: 14px;
    color: var(--rk-cs-text);
    font-weight: 600;
}

/* Detale Techniczne & SVG */
.rk-cs-tech-split {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    overflow: hidden;
}

.rk-cs-tech-details {
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

.rk-tech-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-tech-row:last-child { border-bottom: none; padding-bottom: 0; }

.rk-tech-label { font-size: 15px; font-weight: 700; color: var(--rk-cs-text); }
.rk-tech-val { font-size: 18px; font-weight: 900; color: var(--rk-cs-dark); transition: color 0.3s; }

.state-before .val-bad { color: var(--rk-cs-danger); }
.state-after .val-good { color: var(--rk-cs-brand); }

/* SVG Wizualizacja (Pompa i Dom) */
.rk-cs-svg-box {
    background: var(--rk-cs-dark);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-svg-roi { width: 100%; height: 100%; max-height: 220px; }

/* Elementy SVG */
.anim-pump-body { transition: fill 0.5s; }
.state-before .anim-pump-body { fill: #ef4444; }
.state-after .anim-pump-body { fill: #10b981; }

.anim-eps-layer { transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-before .anim-eps-layer { height: 15px; y: 135px; fill: #fcd34d; }
.state-after .anim-eps-layer { height: 35px; y: 115px; fill: #475569; }

.anim-money-drop { opacity: 0; transition: opacity 0.3s; }
.state-before .anim-money-drop { opacity: 1; animation: dropMoney 1.5s infinite linear; }

.anim-shield { opacity: 0; transition: opacity 0.5s; transform-origin: center; transform: scale(0); }
.state-after .anim-shield { opacity: 1; transform: scale(1); }

@keyframes dropMoney {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}

/* Tekst Case Study */
.rk-cs-story {
    padding: 0 50px 40px 50px;
    background: var(--rk-cs-bg);
}

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

.rk-cs-story p:last-child { margin-bottom: 0; }

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

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-interactive, .rk-cs-story { padding: 30px 20px; }
    .rk-cs-toggle-wrap { flex-direction: column; }
    .rk-cs-savings-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-cs-tech-split { grid-template-columns: 1fr; }
    .rk-cs-svg-box { height: 200px; }
    .rk-cs-card-val { font-size: 38px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Analiza inwestycji i zwrot z izolacji (Podkarpacie 2026)",
    "description": "Zobacz, jak profesjonalny audyt OZC i zmiana styropianu z 10 cm EPS 70 na 14 cm grafitu wygenerowała 3200 PLN oszczędności na pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Analiza ROI: Optymalizacja Izolacji Podłogowej",
    "description": "Zestawienie kosztów inwestycyjnych (CAPEX) i operacyjnych (OPEX) przed i po optymalizacji grubości styropianu dla domu 165 m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w styropian",
      "koszty pompy ciepła a izolacja",
      "oszczędności na ogrzewaniu podłogowym",
      "audyt OZC Podkarpacie",
      "współczynnik U a moc pompy"
    ],
    "measurementTechnique": "Porównanie zapotrzebowania na moc pompy ciepła (8 kW vs 6 kW) w oparciu o spadek współczynnika U (0,32 -> 0,16 W/m2K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Wykonawcy: EPS 70 10cm, U=0,32, Pompa 8kW, Straty 24 kWh/m2.",
        "Projekt Inżynierski: EPS 100 Grafit 14cm, U=0,16, Pompa 6kW.",
        "Oszczędność CAPEX (Pompa): 3200 PLN jednorazowo.",
        "Oszczędność OPEX (Prąd): 480 PLN rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Kalkulator Oszczędności Inwestycyjnych (ROI)",
    "description": "Interaktywny symulator prezentujący różnicę w kosztach zakupu pompy ciepła oraz rocznych rachunkach przy zmianie warstw izolacji.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            Case Study Inwestora
        </div>
        <h2>Analiza inwestycji w Podkarpaciu (Maj 2025)</h2>
        <p>
            Teoria to jedno, ale liczby nie kłamią. Zobacz na realnym przykładzie mojego klienta (dom 165 m², III strefa klimatyczna, projektowa -20°C), jak odchudzanie izolacji uderza bezpośrednio w portfel, oraz jak <strong>inżynierski audyt OZC odzyskał tysiące złotych</strong>.
        </p>
    </div>

    <div class="rk-cs-interactive state-after" id="cs-interactive-board">
        
        <div class="rk-cs-toggle-wrap">
            <button class="rk-cs-toggle-btn" data-view="before">
                <svg width="18" height="18" 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>
                Wizja Wykonawcy ("Na Oko")
            </button>
            <button class="rk-cs-toggle-btn active" data-view="after">
                <svg width="18" height="18" 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>
                Audyt Inżynierski (OZC)
            </button>
        </div>

        <div class="rk-cs-savings-dashboard">
            <div class="rk-cs-savings-card capex">
                <div class="rk-cs-card-title" id="title-capex">Oszczędność przy zakupie Pompy Ciepła</div>
                <div class="rk-cs-card-val"><span id="sign-capex">+</span><span id="val-capex">3200</span> <span>PLN</span></div>
                <div class="rk-cs-card-desc" id="desc-capex">Uniknięto zakupu przewymiarowanego urządzenia 8 kW.</div>
            </div>
            <div class="rk-cs-savings-card opex">
                <div class="rk-cs-card-title" id="title-opex">Zysk na rachunkach co sezon grzewczy</div>
                <div class="rk-cs-card-val"><span id="sign-opex">+</span><span id="val-opex">480</span> <span>PLN/rok</span></div>
                <div class="rk-cs-card-desc" id="desc-opex">Gwarancja niższych kosztów eksploatacyjnych dzięki COP.</div>
            </div>
        </div>

        <div class="rk-cs-tech-split">
            <div class="rk-cs-tech-details">
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Zastosowany styropian:</span>
                    <span class="rk-tech-val" id="tech-mat">14 cm EPS 100 Grafit</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Współczynnik przenikania (U):</span>
                    <span class="rk-tech-val val-good" id="tech-u">0,16 W/(m²·K)</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Wymagana moc pompy:</span>
                    <span class="rk-tech-val val-good" id="tech-pump">Tylko 6 kW</span>
                </div>
            </div>

            <div class="rk-cs-svg-box">
                <svg class="rk-svg-roi" viewBox="0 0 200 200">
                    <rect x="50" y="50" width="100" height="100" fill="#1e293b" rx="4"></rect>
                    <polygon points="40,50 100,10 160,50" fill="#334155"></polygon>
                    
                    <rect class="anim-eps-layer" x="55" y="115" width="90" height="35" rx="2"></rect>
                    
                    <rect class="anim-pump-body" x="15" y="110" width="25" height="40" rx="3"></rect>
                    <circle cx="27.5" cy="125" r="8" fill="#0f172a"></circle>
                    
                    <g class="anim-money-drop">
                        <circle cx="80" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="80" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                        <circle cx="120" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="120" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                    </g>

                    <g class="anim-shield">
                        <path d="M100 165 L140 165 L120 190 Z" fill="#10b981"></path>
                        <path d="M100 165 Q120 185 140 165 Z" fill="#34d399"></path>
                        <text x="120" y="175" font-family="sans-serif" font-size="10" font-weight="bold" fill="#ffffff" text-anchor="middle">ZYSK</text>
                    </g>
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-cs-story">
        <p>
            Modyfikację założeń doskonale obrazuje przypadek z mojej inżynierskiej praktyki. Pierwotny plan wykonawcy u pana Janusza zakładał ułożenie jednej warstwy przypadkowego styropianu <strong>EPS 70 o grubości zaledwie 10 cm</strong>.
        </p>
        <p>
            Skutkowałoby to współczynnikiem przenikania ciepła na poziomie U = 0,32 W/(m²·K) – wartością rażąco naruszającą prawo budowlane i generującą straty ciepła rzędu 24 kWh/(m²·rok) przez samą podłogę na gruncie. Wykonawca planował zamaskować ten błąd doborem większej i droższej pompy ciepła o mocy 8 kW.
        </p>
        <p>
            Po wykonaniu profesjonalnego audytu i szczegółowych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>, skorygowałem projekt. Wprowadziliśmy <strong>układ dwuwarstwowy z przesunięciem spoin o łącznej grubości 14 cm styropianu grafitowego EPS 100</strong> (λ = 0,031 W/(m·K)). W efekcie uzyskaliśmy rewelacyjny współczynnik U = 0,16 W/(m²·K), co obniżyło projektowe obciążenie cieplne całego budynku o równe 1,4 kW. Oszczędność to nie tylko tańsza o 3200 zł mniejsza pompa, ale przede wszystkim spokój i niższe rachunki na dekady.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const hostDomain = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostDomain)) {
        const shield = document.getElementById('rk-cs-app');
        if (shield) {
            shield.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Blokada Skryptu ROI</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel analizy kosztów i oszczędności (Case Study) należy do domeny <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zatrzymane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu Oszczędności
    const btns = document.querySelectorAll('.rk-cs-toggle-btn');
    const board = document.getElementById('cs-interactive-board');
    
    // Pola Danych
    const valCapex = document.getElementById('val-capex');
    const signCapex = document.getElementById('sign-capex');
    const titleCapex = document.getElementById('title-capex');
    const descCapex = document.getElementById('desc-capex');

    const valOpex = document.getElementById('val-opex');
    const signOpex = document.getElementById('sign-opex');
    const titleOpex = document.getElementById('title-opex');
    const descOpex = document.getElementById('desc-opex');

    const tMat = document.getElementById('tech-mat');
    const tU = document.getElementById('tech-u');
    const tPump = document.getElementById('tech-pump');

    const states = {
        'before': {
            css: 'state-before',
            capexTitle: 'Przepłacasz za Pompę Ciepła',
            capexSign: '-',
            capexVal: '3200',
            capexDesc: 'Wymuszony zakup przewymiarowanej jednostki 8 kW.',
            opexTitle: 'Straty na rachunkach co sezon',
            opexSign: '-',
            opexVal: '480',
            opexDesc: 'Ciepło ucieka w grunt. Wyższe rachunki za prąd.',
            mat: '10 cm EPS 70 (Przypadkowy)',
            uVal: '0,32 W/(m²·K)',
            pump: 'Aż 8 kW (Przewymiarowana)'
        },
        'after': {
            css: 'state-after',
            capexTitle: 'Oszczędność przy zakupie Pompy Ciepła',
            capexSign: '+',
            capexVal: '3200',
            capexDesc: 'Uniknięto zakupu przewymiarowanego urządzenia 8 kW.',
            opexTitle: 'Zysk na rachunkach co sezon grzewczy',
            opexSign: '+',
            opexVal: '480',
            opexDesc: 'Gwarancja niższych kosztów eksploatacyjnych dzięki wyższemu COP.',
            mat: '14 cm EPS 100 Grafit',
            uVal: '0,16 W/(m²·K)',
            pump: 'Tylko 6 kW (Zoptymalizowana)'
        }
    };

    function animateValue(obj, start, end, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            obj.innerHTML = Math.floor(progress * (end - start) + start);
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    function switchState(stateKey) {
        const s = states[stateKey];
        
        // Zmiana klasy głównej (odpala CSS i SVG animacje)
        board.className = `rk-cs-interactive ${s.css}`;

        // Teksty
        titleCapex.textContent = s.capexTitle;
        signCapex.textContent = s.capexSign;
        descCapex.textContent = s.capexDesc;

        titleOpex.textContent = s.opexTitle;
        signOpex.textContent = s.opexSign;
        descOpex.textContent = s.opexDesc;

        tMat.textContent = s.mat;
        tU.textContent = s.uVal;
        tPump.textContent = s.pump;

        // Odświeżenie klas dla kolorów U i Pompy
        if (stateKey === 'before') {
            tU.className = 'rk-tech-val val-bad';
            tPump.className = 'rk-tech-val val-bad';
        } else {
            tU.className = 'rk-tech-val val-good';
            tPump.className = 'rk-tech-val val-good';
        }

        // Animacja samych liczb
        animateValue(valCapex, 0, parseInt(s.capexVal), 600);
        animateValue(valOpex, 0, parseInt(s.opexVal), 600);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if(this.classList.contains('active')) return;
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            switchState(this.getAttribute('data-view'));
        });
    });

    // Uruchomienie animacji startowej (Po Audycie) po załadowaniu
    setTimeout(() => {
        animateValue(valCapex, 0, 3200, 800);
        animateValue(valOpex, 0, 480, 800);
    }, 300);
});
</script>



<style>
:root {
    --rk-sum-eps-dark: #020617;
    --rk-sum-eps-panel: #0f172a;
    --rk-sum-eps-primary: #f59e0b; /* Termiczny bursztyn/złoto */
    --rk-sum-eps-primary-light: #fef3c7;
    --rk-sum-eps-accent: #3b82f6; /* Błękit dla kontrastu */
    --rk-sum-eps-bg: #f8fafc;
    --rk-sum-eps-border: #cbd5e1;
    --rk-sum-eps-text: #334155;
    --rk-sum-eps-text-dim: #64748b;
}

.rk-sum-eps-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(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.3);
    overflow: hidden;
}

/* Header z ekspertem */
.rk-sum-eps-header {
    background: linear-gradient(135deg, var(--rk-sum-eps-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-bottom: 4px solid var(--rk-sum-eps-primary);
    position: relative;
    overflow: hidden;
}

.rk-sum-eps-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(245, 158, 11, 0.15) 0%, transparent 70%);
}

.rk-eps-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-eps-primary);
    box-shadow: 0 0 20px rgba(245, 158, 11, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-eps-header-content {
    position: relative;
    z-index: 2;
}

.rk-eps-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    color: #fcd34d;
    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(252, 211, 77, 0.3);
}

.rk-eps-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 8px 0;
    line-height: 1.2;
}

.rk-eps-header-content p {
    color: #94a3b8;
    font-size: 14px;
    margin: 0;
    font-weight: 500;
}

/* Sekcja z zakładkami i wiedzą */
.rk-sum-eps-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

.rk-eps-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-sum-eps-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #f8fafc;
}

.rk-eps-rule-btn {
    background: #ffffff;
    border: 1px solid var(--rk-sum-eps-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-eps-rule-btn:hover {
    border-color: var(--rk-sum-eps-primary);
    transform: translateX(4px);
}

.rk-eps-rule-btn.active {
    background: var(--rk-sum-eps-primary-light);
    border-color: var(--rk-sum-eps-primary);
    box-shadow: inset 4px 0 0 var(--rk-sum-eps-primary);
}

.rk-eps-rule-icon {
    width: 32px; height: 32px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-sum-eps-text-dim);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-eps-rule-btn.active .rk-eps-rule-icon {
    background: var(--rk-sum-eps-primary);
    color: #ffffff;
}

.rk-eps-rule-text h3 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-eps-dark);
}

.rk-eps-rule-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-eps-text-dim);
    line-height: 1.5;
}

/* Panel Detali (Prawy) */
.rk-eps-rule-details {
    padding: 40px;
    position: relative;
}

.rk-eps-detail-panel {
    display: none;
    animation: fadeScaleEps 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-eps-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

@keyframes fadeScaleEps {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.rk-eps-detail-panel h4 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sum-eps-dark);
}

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

.rk-eps-link {
    color: var(--rk-sum-eps-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-sum-eps-accent);
    transition: 0.3s;
}
.rk-eps-link:hover { border-bottom-style: solid; color: #1d4ed8; }

.rk-eps-svg-box {
    width: 100%;
    height: 160px;
    background: var(--rk-sum-eps-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);
    overflow: hidden;
}

/* Narzędzie Szybkiego Szacowania (Kalkulator) */
.rk-eps-quick-calc {
    background: var(--rk-sum-eps-panel);
    padding: 35px 50px;
    border-top: 1px solid #1e293b;
    color: #ffffff;
}

.rk-eps-calc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
}

.rk-eps-calc-header h4 {
    margin: 0; font-size: 18px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 10px;
}

.rk-eps-calc-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
    align-items: center;
}

.rk-eps-inputs {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-eps-input-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-eps-calc-label { font-size: 13px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; }
.rk-eps-calc-label span { color: #ffffff; font-size: 16px; font-weight: 900; }

.rk-eps-range {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-eps-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-sum-eps-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}
.rk-eps-range::-webkit-slider-thumb:active { transform: scale(1.15); }

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

.rk-eps-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-eps-result-box.highlight { border-color: var(--rk-sum-eps-primary); background: rgba(245, 158, 11, 0.1); }

.rk-eps-res-val { display: block; font-size: 22px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-eps-result-box.highlight .rk-eps-res-val { color: var(--rk-sum-eps-primary); }
.rk-eps-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.4; }

/* SEKACJA AUTORSKA - PODPIS EKSPERTA */
.rk-eps-author {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-sum-eps-border);
}

.rk-eps-author-photo {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-eps-primary);
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-eps-author-info { flex-grow: 1; }
.rk-eps-author-info h4 { margin: 0 0 6px 0; font-size: 18px; font-weight: 900; color: var(--rk-sum-eps-dark); }
.rk-eps-author-info p { margin: 0; font-size: 14px; color: var(--rk-sum-eps-text); line-height: 1.6; }

.rk-eps-social { display: flex; gap: 15px; margin-top: 12px; }
.rk-eps-social a { color: var(--rk-sum-eps-accent); font-size: 13px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; transition: color 0.2s; }
.rk-eps-social a:hover { color: #1d4ed8; text-decoration: underline; }

/* Animacje SVG */
.svg-heat-block { opacity: 0; }
.active .svg-heat-block { opacity: 1; animation: blockHeat 2s infinite alternate; }
@keyframes blockHeat { from { transform: translateY(0); } to { transform: translateY(-10px); } }

.svg-weight-press { transform: translateY(-20px); }
.active .svg-weight-press { animation: weightPress 1.5s forwards; }
@keyframes weightPress { 100% { transform: translateY(0); } }

.svg-overlap-slide { transform: translateX(20px); opacity: 0; }
.active .svg-overlap-slide { animation: overlapSlide 1s forwards; }
@keyframes overlapSlide { 100% { transform: translateX(0); opacity: 1; } }

@media (max-width: 768px) {
    .rk-sum-eps-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-eps-expert-avatar { width: 70px; height: 70px; }
    .rk-sum-eps-body { grid-template-columns: 1fr; }
    .rk-eps-rules-list { border-right: none; border-bottom: 1px solid var(--rk-sum-eps-border); padding: 20px; }
    .rk-eps-rule-details { padding: 25px 20px; }
    .rk-eps-calc-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-eps-quick-calc { padding: 30px 20px; }
    .rk-eps-results { grid-template-columns: 1fr; }
    .rk-eps-author { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-eps-social { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?",
    "description": "Kompaktowe zestawienie norm WT2021, wymagań twardości EPS 100 oraz interaktywny kalkulator objętości izolacji podłogowej. Twórca: Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "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/2026/04/PO-Robert-Kucharski.webp"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-summary",
    "name": "Wskaźniki materiałowe dla izolacji EPS podłogówki",
    "description": "Twarde dane przeliczeniowe łączące metraż budynku z objętością, szacunkową ilością paczek styropianu oraz oporem cieplnym przegrody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu eps 100",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "mostki termiczne w podłodze",
      "objętość styropianu kalkulator"
    ],
    "measurementTechnique": "Szacowanie oparte na iloczynie powierzchni i docelowej grubości wyrażonej w metrach. Opór cieplny (R) zoptymalizowany dla białego EPS 100 o parametrze λ=0.036 W/mK.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna grubość na gruncie: 15 cm Biały lub 12 cm Grafit (WT2021)",
        "Minimalna twardość pod wylewkę: CS(10) ≥ 100 kPa (EPS 100)",
        "Średnia pojemność paczki EPS: ~0.3 m3"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-summary",
    "name": "Kalkulator Objętości Styropianu",
    "description": "Narzędzie inżynierskie podsumowujące. Przelicza metraż podłogi oraz wybraną grubość styropianu na kubaturę (m3), opór cieplny oraz ilość paczek.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-eps-container" id="rk-sum-eps-app">
    
    <div class="rk-sum-eps-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski CEO Projekt ogrzewania" class="rk-eps-expert-avatar" loading="lazy">
        <div class="rk-eps-header-content">
            <div class="rk-eps-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>Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?</h2>
            <p>Zebrałem dla Ciebie 3 żelazne zasady izolacji podłogowej. Ich zignorowanie przed zalaniem jastrychu będzie Cię kosztować tysiące złotych przez lata.</p>
        </div>
    </div>

    <div class="rk-sum-eps-body">
        
        <div class="rk-eps-rules-list">
            <button class="rk-eps-rule-btn active" data-panel="eps-det-1">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" 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 class="rk-eps-rule-text">
                    <h3>Norma WT2021 to baza</h3>
                    <p>Minimum 15 cm białego styropianu na gruncie.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-2">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="12" y1="2" x2="12" y2="22"></line><line x1="2" y1="12" x2="22" y2="12"></line></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Twardość ma znaczenie</h3>
                    <p>EPS 100 to absolutne minimum pod jastrych.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-3">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                <div class="rk-eps-rule-text">
                    <h3>Montaż w mijankę</h3>
                    <p>Wyeliminuj pionowe mostki termiczne spoin.</p>
                </div>
            </button>
        </div>

        <div class="rk-eps-rule-details">
            
            <div class="rk-eps-detail-panel active" id="eps-det-1">
                <h4>Fizyki nie oszukasz</h4>
                <p>Aby spełnić normę WT2021 (<a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-eps-link">współczynnik U ≤ 0,20</a>), potrzebujesz grubej bariery. Chudszy styropian to natychmiastowa ucieczka ciepła w grunt i straty pieniędzy.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="50" y="40" width="100" height="40" fill="#fcd34d" rx="4"></rect>
                        <text x="100" y="65" font-family="sans-serif" font-weight="900" font-size="12" fill="#0f172a" text-anchor="middle">EPS 15 cm</text>
                        <g class="svg-heat-block">
                            <path d="M 80 85 L 85 70 L 90 85 Z" fill="#ef4444"></path>
                            <path d="M 120 85 L 115 70 L 110 85 Z" fill="#ef4444"></path>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-2">
                <h4>Zagrożenie dla wylewki</h4>
                <p>Zastosowanie taniego styropianu fasadowego (EPS 70) skończy się tragedią. Płyty ugną się pod masą jastrychu (ok. 130 kg/m²), niszcząc <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-eps-link">wylewkę</a> i zrywając instalację.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <g class="svg-weight-press">
                            <rect x="80" y="10" width="40" height="30" fill="#94a3b8" rx="2"></rect>
                            <text x="100" y="30" fill="#0f172a" font-weight="bold" font-size="10" text-anchor="middle">130 KG</text>
                            <path d="M 100 45 L 95 35 L 105 35 Z" fill="#ffffff"></path>
                        </g>
                        <rect x="60" y="60" width="80" height="20" fill="#38bdf8" rx="2"></rect>
                        <text x="100" y="74" fill="#0f172a" font-weight="900" font-size="10" text-anchor="middle">EPS 100 (SZTYWNY)</text>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-3">
                <h4>Eliminacja mostków liniowych</h4>
                <p>Nigdy nie układaj styropianu w jednej, grubej warstwie. Konieczny jest montaż krzyżowy (np. 10 cm + 5 cm) przesunięty o minimum 20 cm, aby <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-eps-link">zapobiec ucieczce energii</a> w dół przez spoiny płyt.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="30" width="100" height="20" fill="#fbbf24" rx="2"></rect>
                        <rect class="svg-overlap-slide" x="60" y="55" width="100" height="20" fill="#f59e0b" rx="2"></rect>
                        <line x1="60" y1="20" x2="60" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                        <line x1="120" y1="20" x2="120" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-eps-quick-calc">
        <div class="rk-eps-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-eps-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Szybki estymator materiałowy
            </h4>
            <span style="font-size:12px; color:#94a3b8;">(Szacunki bazowe)</span>
        </div>

        <div class="rk-eps-calc-grid">
            
            <div class="rk-eps-inputs">
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Powierzchnia podłóg:
                        <span id="epsAreaOut">120 m²</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsAreaSlider" min="50" max="300" step="10" value="120">
                </div>
                
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Grubość izolacji EPS:
                        <span id="epsThickOut">15 cm</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsThickSlider" min="5" max="25" step="1" value="15">
                </div>
            </div>

            <div class="rk-eps-results">
                <div class="rk-eps-result-box highlight">
                    <span class="rk-eps-res-val" id="resVolume">18.0 <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span></span>
                    <span class="rk-eps-res-lab">Suma objętości EPS</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resRValue">4.17 <span style="font-size:14px;color:#94a3b8;">R</span></span>
                    <span class="rk-eps-res-lab">Szacunkowy opór (Biały)</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resPacks">60 <span style="font-size:14px;color:#94a3b8;">szt.</span></span>
                    <span class="rk-eps-res-lab">Paczki (~0.3m³ / szt.)</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-eps-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Projekt Ogrzewania - Ekspert HVAC" class="rk-eps-author-photo" loading="lazy">
        <div class="rk-eps-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na budowach. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, chroniącej budżety tysięcy inwestorów w całej Polsce.</p>
            <div class="rk-eps-social">
                <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"></path></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"></path></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!authDomains.includes(currentDomain)) {
        document.getElementById('rk-sum-eps-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:1px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Kod podsumowania jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Zakładek
    const btns = document.querySelectorAll('.rk-eps-rule-btn');
    const panels = document.querySelectorAll('.rk-eps-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 target = document.getElementById(btn.getAttribute('data-panel'));
            if(target) {
                void target.offsetWidth; // Restart animacji CSS
                target.classList.add('active');
            }
        });
    });

    // 3. Logika Estymatora Objętości Styropianu
    const sliderArea = document.getElementById('epsAreaSlider');
    const outArea = document.getElementById('epsAreaOut');
    
    const sliderThick = document.getElementById('epsThickSlider');
    const outThick = document.getElementById('epsThickOut');

    const resVol = document.getElementById('resVolume');
    const resR = document.getElementById('resRValue');
    const resPacks = document.getElementById('resPacks');

    function calculateEPS() {
        const area = parseInt(sliderArea.value);
        const thickCm = parseInt(sliderThick.value);
        const thickM = thickCm / 100;
        
        outArea.textContent = area + ' m²';
        outThick.textContent = thickCm + ' cm';

        // Objętość = pole * grubość (w metrach)
        const volume = area * thickM;
        // Szacunkowy opór cieplny (dla EPS białego lambda ~0.036)
        const rValue = thickM / 0.036;
        // Szacunkowa ilość paczek (zakładając średnio 0.3 m3 w paczce)
        const packs = Math.ceil(volume / 0.3);

        resVol.innerHTML = volume.toFixed(1) + ' <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span>';
        resR.innerHTML = rValue.toFixed(2) + ' <span style="font-size:14px;color:#94a3b8;">R</span>';
        resPacks.innerHTML = packs + ' <span style="font-size:14px;color:#94a3b8;">szt.</span>';
    }

    if(sliderArea && sliderThick) {
        sliderArea.addEventListener('input', calculateEPS);
        sliderThick.addEventListener('input', calculateEPS);
        calculateEPS(); // Init
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #6366f1; /* Eksperckie Indygo */
    --rk-faq-brand-light: #eef2ff;
    --rk-faq-accent: #f59e0b; /* Bursztyn dla akcentów twardości */
    --rk-faq-blue: #3b82f6;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.25);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #312e81 100%);
    padding: 45px 50px;
    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(99, 102, 241, 0.35);
    color: #c7d2fe;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(199, 210, 254, 0.2);
}

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

.rk-faq-header h2 span { 
    color: #818cf8; 
}

/* Lista Akordeonowa */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 12px 20px -8px rgba(99, 102, 241, 0.15);
}

/* Przycisk Pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    gap: 20px;
    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);
}

/* Wrappery Animacji Rozwijania 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;
}

/* Zawartość Odpowiedzi */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    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(99, 102, 241, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #4338ca;
    border-bottom-style: solid;
}

/* Kontenery Wizualizacji SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 14px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* --- Dedykowane Animacje SVG dla Akapitów FAQ --- */

/* 1. Strop międzykondygnacyjny */
.anim-acoustic-wave { stroke: #3b82f6; stroke-width: 2; fill: none; opacity: 0; transition: all 0.4s; }
.rk-faq-item.active .anim-acoustic-wave { opacity: 1; animation: soundDiminish 1.5s infinite linear; }
@keyframes soundDiminish {
    0% { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(1.3); opacity: 0; transform-origin: center; }
}

/* 2. Raster i ucieczka ciepła */
.anim-heat-drop { stroke: #ef4444; stroke-width: 3; stroke-linecap: round; opacity: 0; }
.rk-faq-item.active .anim-heat-drop { opacity: 1; animation: heatPassesThrough 2s infinite linear; }
@keyframes heatPassesThrough {
    0% { transform: translateY(-20px); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0.2; }
}

/* 3. Wytrzymałość EPS vs XPS */
.anim-press-plate { fill: #64748b; transition: transform 0.6s 0.2s cubic-bezier(0.25, 1, 0.5, 1); }
.rk-faq-item.active .anim-press-plate { transform: translateY(8px); }

/* 4. Płynny jastrych anhydrytowy */
.anim-fluid-pour { fill: #f59e0b; transform: scaleX(0); transform-origin: left; transition: transform 0.8s 0.2s ease-out; }
.rk-faq-item.active .anim-fluid-pour { transform: scaleX(1); }

/* 5. Gęstość i twardość kciuka */
.anim-stamp { fill: #10b981; opacity: 0; transform: scale(0.5); transition: all 0.5s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.rk-faq-item.active .anim-stamp { opacity: 1; transform: scale(1); transform-origin: center; }


/* Responsywność mobilna */
@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 15px 10px; }
    .rk-faq-visual { height: 120px; max-width: 240px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o styropian pod ogrzewanie podłogowe",
    "description": "Eksperckie odpowiedzi na pytania inwestorów o grubość izolacji na stropie, rolę folii z rastrem oraz parametry twardości EPS i XPS pod jastrych.",
    "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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi 30-50 mm (3-5 cm). Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi izolację akustyczną oraz techniczną bazę do mocowania spinek montażowych rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu odbijającego część promieniowania podczerwonego oraz ułatwia prawidłowy rozstaw rur co 10 lub 15 cm. Posiada ona zerowy opór cieplny, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych."
        }
      },
      {
        "@type": "Question",
        "name": "Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Polistyren ekstrudowany XPS jest obiektywnie lepszym materiałem ze względu na wyższą wytrzymałość na ściskanie (od 300 kPa) oraz niższą nasiąkliwość wodą, jednak ze względu na wysoki koszt stosuje się go głównie w miejscach narażonych na ekstremalne obciążenia (np. garaże) lub wilgoć. W pomieszczeniach mieszkalnych w zupełności wystarczający jest styropian EPS 100."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pod względem mechanicznym wymagania są identyczne – minimalna twardość to EPS 100. Kluczowa różnica tkwi w hydroizolacji: wylewka anhydrytowa ma płynną konsystencję, co bezwzględnie wymaga szczelnego wyklejenia styków folii taśmami, aby płynny jastrych nie wpłynął pomiędzy płyty styropianowe."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Każda paczka styropianu posiada etykietę z kodem specyfikacji technicznej, na której należy szukać oznaczenia CS(10)100 lub wyższego. Dodatkowo, styropian EPS 100 charakteryzuje się minimalną gęstością własną na poziomie ok. 18 kg/m3 – płyty w dłoniach muszą być sztywne i nie mogą się łatwo kruszyć pod naciskiem kciuka."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zbiorcza Tabela Wytycznych Normatywnych dla Izolacji Podłogowej",
    "description": "Zestawienie fizycznych i mechanicznych parametrów materiałów izolacyjnych wymaganych przez normę PN-EN 1264 w strukturze akapitów FAQ.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "styropian na stropie",
      "folia z rastrem podłogówka",
      "twardość styropianu EPS 100",
      "izolacja pod wylewkę anhydrytową",
      "wytrzymałość xps na ściskanie"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Panel Wyjaśnień Technicznych",
    "description": "System dynamicznej wizualizacji wektorowej procesów zachodzących w warstwach izolacji termicznej podłogówki.",
    "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="15" height="15" 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>
            Inżynierska Baza Odpowiedzi
        </div>
        <h2>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. Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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">
                                Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi <strong>30-50 mm (3-5 cm)</strong>. Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi kluczową izolację akustyczną wyguszającą dźwięki uderzeniowe. Stanowi również techniczną bazę stabilizującą spinki montażowe dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" class="rk-link">rur do ogrzewania podłogowego</a>, co zabezpiecza je przed wypłynięciem podczas zalewania <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-link">grubości wylewki</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="45" width="80" height="15" fill="#475569" />
                                    <rect x="10" y="30" width="80" height="12" fill="#94a3b8" />
                                    <circle class="anim-acoustic-wave" cx="50" cy="36" r="10" />
                                    <circle cx="50" cy="36" r="4" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu refleksyjnego odbijającego część promieniowania podczerwonego oraz ułatwia instalatorowi zachowanie równego <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewanym-podlogowym/" class="rk-link">rozstawu rur podłogówki</a>. Posiada ona <strong>zerowy opór cieplny (R)</strong>, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych. Prawdziwą barierą blokującą ucieczkę energii jest wyłącznie zwarta struktura powietrza zamknięta w spienionym polistyrenie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="10" y1="35" x2="90" y2="35" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="2 2" />
                                    <path class="anim-heat-drop" d="M 50 15 L 50 55" />
                                    <circle cx="50" cy="15" r="5" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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">
                                Polistyren ekstrudowany XPS jest obiektywnie trwalszym materiałem ze względu na wyższą wytrzymałość na ściskanie wynoszącą <strong>minimum 300 kPa</strong> oraz zerową nasiąkliwość wodą. Ze względu na wysoki koszt zakupu stosuje się go głównie w strefach narażonych na wilgoć lub potężne obciążenia skupione, takich jak przydomowe garaże czy kotłownie z ciężkimi zasobnikami. W pomieszczeniach mieszkalnych w zupełności wystarczający i ekonomicznie zoptymalizowany jest twardy styropian <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-link">EPS 100 o wysokim oporze cieplnym</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="25" y="40" width="50" height="20" fill="#3b82f6" rx="2" />
                                    <rect class="anim-press-plate" x="20" y="15" width="60" height="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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">
                                Pod względem odporności mechanicznej wymagania są tożsame – minimalny próg twardości to EPS 100. Kluczowa różnica tkwi jednak w sposobie przygotowania izolacji przeciwwilgociowej. Płynny jastrych anhydrytowy ze względu na swoją samopoziomującą konsystencję wymaga **bezwzględnego wyklejenia i uszczelnienia styków folii** taśmami wodoodpornymi. Brak szczelności spowoduje, że płynna masa wpłynie w szczeliny styropianu, unosząc płyty do góry i tworząc potężne mostki termiczne niszczące efektywność całego systemu grzewczego.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="15" y="45" width="70" height="15" fill="#64748b" />
                                    <circle cx="30" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="50" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="70" cy="45" r="5" fill="#ef4444" />
                                    <rect class="anim-fluid-pour" x="15" y="25" width="70" height="15" opacity="0.6"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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">
                                Weryfikację należy zacząć od analizy etykiety technicznej na paczkach – szukaj kodu zwierającego oznaczenie <strong>CS(10)100</strong> lub wyższego (np. CS(10)150). Drugim parametrem weryfikacyjnym jest gęstość własna materiału, która dla oryginalnego EPS 100 powinna wynosić <strong>około 18 kg/m3</strong>. Możesz wykonać prosty test budowlany: markowy styropian podłogowy naciskany mocno kciukiem nie powinien trwale odkształcać się ani kruszyć w strukturze. Jeśli płyta jest miękka i przypomina styropian fasadowy, natychmiast zatrzymaj montaż rur.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="35" width="60" height="25" fill="#cbd5e1" rx="2" />
                                    <text x="32" y="52" font-family="sans-serif" font-size="8" font-weight="900" fill="#475569">EPS 100</text>
                                    <circle class="anim-stamp" cx="50" cy="22" r="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Bez tagów H2/H3 w stringu błędu)
    const currentHost = window.location.hostname;
    const authorizedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authorizedDomains.includes(currentHost)) {
        const appContainer = document.getElementById('rk-faq-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 44px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.5px;">Błąd Licencji i Autoryzacji</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten interaktywny kontener FAQ oraz powiązane z nim mikrodane JSON-LD są chronione prawem autorskim i stanowią własność serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika interaktywnego akordeonu FAQ
    const items = document.querySelectorAll('.rk-faq-item');

    items.forEach(item => {
        const questionBtn = item.querySelector('.rk-faq-question');
        questionBtn.addEventListener('click', () => {
            const isCurrentlyActive = item.classList.contains('active');
            
            // Zamknij wszystkie pozostałe elementy
            items.forEach(i => i.classList.remove('active'));
            
            // Jeśli kliknięty nie był aktywny, otwórz go
            if (!isCurrentlyActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Domyślne otwarcie pierwszego elementu FAQ po załadowaniu
    if(items.length > 0) {
        items[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-iso-dark: #1e293b;
    --rk-iso-blue: #0ea5e9;
    --rk-iso-light: #f8fafc;
    --rk-iso-warm: #f97316;
    --rk-iso-warm-light: #ffedd5;
    --rk-iso-cold: #3b82f6;
    --rk-iso-cold-light: #dbeafe;
    --rk-iso-border: #e2e8f0;
    --rk-iso-bg: #ffffff;
    --rk-iso-text: #334155;
}

.rk-iso-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-iso-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-iso-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-iso-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #0f172a 0%, var(--rk-iso-dark) 100%);
    color: #ffffff;
    text-align: left;
    position: relative;
    border-bottom: 4px solid var(--rk-iso-warm);
}

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

.rk-iso-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    max-width: 700px;
}

/* Interaktywny Panel */
.rk-iso-interactive {
    padding: 40px 50px;
    background: var(--rk-iso-light);
}

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

/* Toggle Switcher */
.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 100px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-toggle-btn.active[data-mode="thick"] {
    background: var(--rk-iso-warm);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(249, 115, 22, 0.5);
}

.rk-toggle-btn.active[data-mode="thin"] {
    background: var(--rk-iso-cold);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(59, 130, 246, 0.5);
}

/* Wizualizacja SVG i Wynik */
.rk-sim-display {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    background: #ffffff;
    padding: 35px;
    border-radius: 20px;
    border: 1px solid var(--rk-iso-border);
    align-items: center;
}

.rk-svg-box {
    position: relative;
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 16px;
    overflow: hidden;
}

.rk-svg-layer-concrete { fill: #cbd5e1; }
.rk-svg-layer-pipe { fill: #ef4444; }
.rk-svg-layer-ground { fill: #8b5cf6; opacity: 0.2; }

/* Dynamiczna Izolacja */
.rk-svg-layer-eps {
    fill: #fcd34d;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animacje strzałek ciepła */
.heat-arrow {
    stroke: #ef4444;
    stroke-width: 3;
    stroke-linecap: round;
    fill: none;
    transition: all 0.5s;
}

/* Stan: Gruby styropian (Odbijanie ciepła) */
.state-thick .rk-svg-layer-eps { transform: scaleY(1); transform-origin: bottom; }
.state-thick .heat-arrow {
    animation: bounceHeat 2s infinite ease-in-out;
}

/* Stan: Cienki styropian (Ucieczka ciepła) */
.state-thin .rk-svg-layer-eps { transform: scaleY(0.3); transform-origin: bottom; fill: #fbbf24; }
.state-thin .heat-arrow {
    stroke: #3b82f6;
    animation: escapeHeat 2s infinite linear;
}

@keyframes bounceHeat {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(30px); opacity: 0.5; }
    100% { transform: translateY(0); opacity: 1; }
}

@keyframes escapeHeat {
    0% { transform: translateY(0); opacity: 1; stroke: #ef4444; }
    50% { transform: translateY(60px); opacity: 0.8; stroke: #3b82f6; }
    100% { transform: translateY(120px); opacity: 0; stroke: #3b82f6; }
}

/* Panel Danych */
.rk-data-panel h4 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-iso-dark);
}

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

.rk-data-stat {
    display: flex;
    justify-content: space-between;
    padding: 12px 15px;
    background: var(--rk-iso-light);
    border-radius: 10px;
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 14px;
}

.rk-stat-value {
    color: var(--rk-iso-warm);
    font-size: 16px;
}
.state-thin .rk-stat-value { color: var(--rk-iso-cold); }

/* Podsumowanie Textowe */
.rk-iso-summary-text {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-iso-border);
}

.rk-iso-summary-text p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-iso-text);
    margin-bottom: 20px;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-iso-header, .rk-iso-interactive, .rk-iso-summary-text { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; border-radius: 16px; gap: 5px; }
    .rk-toggle-btn { border-radius: 12px; }
    .rk-sim-display { grid-template-columns: 1fr; gap: 25px; }
    .rk-svg-box { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?",
    "description": "Zastosowanie 15 cm styropianu EPS 100 lub 12 cm grafitowego to optymalny standard izolacji LCC minimalizujący straty ciepła i koszty ogrzewania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Wskaźniki LCC i Opór Cieplny dla EPS 100",
    "description": "Dane dotyczące strat ciepła w ujęciu rocznym w zależności od zastosowanej grubości styropianu podłogowego zgodnie z WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "styropian podłogowy grubość",
      "współczynnik przenikania ciepła podłogi",
      "projektowe obciążenie cieplne OZC",
      "straty ciepła przez grunt"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R oraz symulacja strat kosztowych w perspektywie rocznej w stosunku do normy WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Norma optymalna: 15 cm EPS 100 lub 12 cm Grafit. Zgodność z WT2021. U = 0,20 W/(m2K).",
        "Izolacja odchudzona: 5-8 cm. Wzrost strat ciepła o 35%, wyższe koszty eksploatacji urządzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Symulator Strat Ciepła przez Podłogę LCC",
    "description": "Interaktywna symulacja wizualizująca straty ciepła przenikającego do gruntu przy zastosowaniu normatywnej oraz odchudzonej grubości styropianu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3 Animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-iso-container" id="rk-iso-app">
    <div class="rk-iso-header">
        <h2>Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?</h2>
        <p>Decyzja o grubości izolacji podłogowej determinuje koszty eksploatacji pompy ciepła na dekady. Zobacz, jak fizyka weryfikuje próby oszczędzania na materiale.</p>
    </div>

    <div class="rk-iso-interactive">
        <h3>Symulator Oporu Cieplnego i Analiza LCC</h3>
        
        <div class="rk-toggle-wrapper" id="iso-toggle">
            <button class="rk-toggle-btn active" data-mode="thick">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                Normatywne 15 cm (EPS 100)
            </button>
            <button class="rk-toggle-btn" data-mode="thin">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/><line x1="3" y1="3" x2="21" y2="21"/></svg>
                Odchudzone 5 cm (Błąd!)
            </button>
        </div>

        <div class="rk-sim-display state-thick" id="iso-display">
            <div class="rk-svg-box">
                <svg viewBox="0 0 300 220" width="100%" height="100%">
                    <rect class="rk-svg-layer-ground" x="0" y="160" width="300" height="60" />
                    <rect class="rk-svg-layer-eps" x="0" y="70" width="300" height="90" />
                    <rect class="rk-svg-layer-concrete" x="0" y="20" width="300" height="50" />
                    <circle class="rk-svg-layer-pipe" cx="50" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="150" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="250" cy="45" r="8" />
                    
                    <path class="heat-arrow" d="M50 55 L50 85 M45 80 L50 85 L55 80" />
                    <path class="heat-arrow" d="M150 55 L150 85 M145 80 L150 85 L155 80" />
                    <path class="heat-arrow" d="M250 55 L250 85 M245 80 L250 85 L255 80" />
                </svg>
            </div>

            <div class="rk-data-panel" id="iso-results">
                <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                <div class="rk-data-stat">
                    <span>Współczynnik U:</span>
                    <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                </div>
                <div class="rk-data-stat">
                    <span>Zgodność z WT2021:</span>
                    <span class="rk-stat-value">TAK</span>
                </div>
                <div class="rk-data-stat">
                    <span>Straty energii do gruntu:</span>
                    <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-iso-summary-text">
        <h3>Rachunek ekonomiczny a fizyka budynku</h3>
        <p>
            Optymalny dobór podłogowej izolacji termicznej to wypadkowa kalkulacji fizycznych, wymogów prawnych zawartych w WT2021 oraz rachunku ekonomicznego LCC (Life Cycle Cost). Zastosowanie <strong>15 cm styropianu białego EPS 100 lub 12 cm styropianu grafitowego na gruncie</strong> gwarantuje święty spokój inwestora, bezawaryjną pracę posadzki i minimalne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">straty ciepła</a>.
        </p>
        <p>
            Każda próba bezrefleksyjnego odchudzania tej warstwy zemści się w postaci drastycznie wyższych rachunków za prąd lub gaz. System zacznie ogrzewać fundamenty i masę ziemi zamiast Twojego salonu, co obniży odczuwalny komfort cieplny.
        </p>
        <p>
            Pamiętaj, że ostateczne wytyczne i grubości zawsze powinien definiować indywidualny, poparty rzetelnymi <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniami OZC</a> projekt instalacji, dopasowany precyzyjnie do geometrii Twojego budynku, rodzaju gruntu oraz specyfiki i niskiej temperatury zasilania wybranego źródła ciepła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z wytycznymi)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-iso-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 3px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px;">Blokada Praw Autorskich</div>
                    <div style="font-size: 16px; color: #e2e8f0; max-width: 550px; margin: 0 auto; line-height: 1.7;">
                        Skrypt interaktywnego podsumowania LCC oraz zintegrowane dane strukturalne JSON-LD są wyłączną własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie modułu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Izolacji LCC
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const display = document.getElementById('iso-display');
    const resultsPanel = document.getElementById('iso-results');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana aktywnego przycisku
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const mode = this.getAttribute('data-mode');

            // Aktualizacja klas interfejsu i SVG
            if (mode === 'thick') {
                display.className = 'rk-sim-display state-thick';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                    <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value">TAK</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                    </div>
                `;
            } else {
                display.className = 'rk-sim-display state-thin';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-cold);">Mostek Termiczny w Grunt</h4>
                    <p>Zbyt cienka izolacja sprawia, że ciepło pokonuje barierę, uciekając w chłodny grunt. Pompa ciepła pracuje w trybie ciągłym.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">~ 0,35 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">NIE (Naruszenie)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">+ 35% rachunków</span>
                    </div>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --dl-eps-primary: #0f172a;
    --dl-eps-accent: #f59e0b; /* Termiczny pomarańcz EPS */
    --dl-eps-accent-dark: #d97706;
    --dl-eps-bg: #f8fafc;
    --dl-eps-border: #e2e8f0;
    --dl-eps-text: #334155;
    --dl-eps-white: #ffffff;
    --dl-eps-muted: #94a3b8;
}

.rk-dl-eps-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--dl-eps-white);
    border-radius: 24px;
    border: 1px solid var(--dl-eps-border);
    box-shadow: 0 20px 40px -10px rgba(245, 158, 11, 0.1);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCJI */
.rk-dl-header {
    background: linear-gradient(135deg, var(--dl-eps-primary) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: var(--dl-eps-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--dl-eps-accent);
}

.rk-dl-header-content { 
    position: relative; 
    z-index: 2; 
    max-width: 65%; 
}

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    border: 1px solid rgba(245, 158, 11, 0.3);
    color: #fcd34d;
    padding: 8px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

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

/* WIZUALIZACJA PDF / IKONA */
.rk-dl-visual {
    position: relative;
    z-index: 2;
}

.rk-dl-pdf-svg {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 20px rgba(0,0,0,0.4));
    animation: floatPdfIcon 3s infinite ease-in-out alternate;
}

@keyframes floatPdfIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-12px); }
}

/* GŁÓWNY WORKSPACE */
.rk-dl-workspace {
    display: flex;
    padding: 45px 50px;
    gap: 50px;
    background: var(--dl-eps-white);
}

.rk-dl-preview-box {
    flex: 1;
    background: var(--dl-eps-bg);
    border: 1px solid var(--dl-eps-border);
    border-radius: 16px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
    box-shadow: 0 10px 20px rgba(0,0,0,0.03);
}

.rk-dl-preview-box:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px rgba(245, 158, 11, 0.15);
    border-color: var(--dl-eps-accent);
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
    border: 1px solid #e2e8f0;
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-dl-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-dl-feature-item {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 15px;
    font-weight: 700;
    color: var(--dl-eps-text);
}

.rk-dl-check-icon {
    width: 24px;
    height: 24px;
    color: var(--dl-eps-accent);
    flex-shrink: 0;
    background: var(--dl-eps-bg);
    border-radius: 50%;
    padding: 3px;
}

/* PRZYCISK POBIERANIA */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-eps-accent);
    color: var(--dl-eps-white);
    text-decoration: none !important;
    padding: 20px 30px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    border: 2px solid transparent;
}

.rk-dl-btn:hover {
    background: var(--dl-eps-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fde68a;
}

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

.rk-dl-btn:hover svg {
    transform: translateY(3px);
}

/* STOPKA MODUŁU */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--dl-eps-bg);
    border-top: 1px solid var(--dl-eps-border);
    font-size: 13px;
    color: var(--dl-eps-muted);
    text-align: center;
    line-height: 1.6;
}

.rk-dl-footer a {
    color: var(--dl-eps-accent-dark);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 800px) {
    .rk-dl-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-dl-header-content { max-width: 100%; margin-bottom: 30px; }
    .rk-dl-workspace { flex-direction: column; padding: 35px 25px; gap: 35px; }
    .rk-dl-preview-box { margin-bottom: 10px; }
    .rk-dl-footer { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Infografika PDF – Ile styropianu pod ogrzewanie podłogowe?",
    "description": "Pobierz inżynierskie podsumowanie wymogów izolacyjnych (WT2021, opory cieplne R, układy warstwowe EPS 100) w wygodnym formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.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-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Kompendium: Parametry Izolacji EPS pod Podłogówkę",
    "description": "Skondensowany zbiór wytycznych wykonawczych, norm WT2021 oraz porównania styropianu białego i grafitowego dla instalatorów i inwestorów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika styropian podłogówka pdf",
      "grubość izolacji pod ogrzewanie podłogowe schemat",
      "zestawienie twardości eps 100",
      "parametry styropianu grafitowego ściąga",
      "jak układać styropian instrukcja"
    ],
    "measurementTechnique": "Wizualna agregacja parametrów fizycznych (R, U) oraz instrukcji montażowych w formie graficznego schematu referencyjnego.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Materiały referencyjne i szkoleniowe dla izolacji podłogowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Centrum Pobierania: Infografika Izolacyjna",
    "description": "Moduł umożliwiający szybki podgląd i bezpieczne pobranie na urządzenie mobilne lub desktopowe materiałów inżynierskich w wysokiej rozdzielczości.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-eps-container" id="rk-dl-eps-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-content">
            <div class="rk-dl-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Zasoby do pobrania
            </div>
            <h2>Pobierz Kompendium Izolacyjne</h2>
            <p>Cała inżynierska wiedza z tego artykułu na jednej planszy. Zapisz PDF na telefonie i zabierz jako ściągawkę na plac budowy przed przyjazdem wykonawcy.</p>
        </div>
        <div class="rk-dl-visual">
            <svg class="rk-dl-pdf-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.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="17.5" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp" alt="Infografika - Ile styropianu pod ogrzewanie podłogowe" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-zoom-hint">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Powiększ grafikę
            </div>
        </div>

        <div class="rk-dl-info-side">
            <ul class="rk-dl-features">
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" 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 wymogów cieplnych WT2021
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" 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>
                    Biały EPS 100 kontra Grafit (Tabela)
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" 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>
                    Schemat: Prawidłowy montaż w mijankę
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Format HD gotowy do druku A4
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe.pdf" class="rk-dl-btn" target="_blank" rel="noopener noreferrer">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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 INFOGRAFIKĘ (PDF)
            </a>
            
            <p style="margin-top: 25px; font-size: 13px; color: var(--dl-eps-muted); line-height: 1.5; font-weight: 600;">
                Masz pytania dotyczące swojej inwestycji? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-eps-accent-dark); font-weight:800;">Zamów indywidualny projekt</a> i zyskaj pewność co do materiałów.
            </p>
        </div>

    </div>

    <div class="rk-dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor merytoryczny: <strong>Robert Kucharski</strong>. Możesz swobodnie przesyłać ten plik swojemu instalatorowi, z zachowaniem informacji o autorze.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie przed kradzieżą (Domain Lock) bez H-tagów
    const hostNm = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostNm)) {
        const wrap = document.getElementById('rk-dl-eps-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; text-transform: uppercase;">Zasoby Prawne Chronione</div>
                    <div style="font-size: 14px; color: #b91c1c; max-width: 500px; margin: 10px auto 0 auto; line-height: 1.6;">
                        Ten moduł pobierania i dokumentacja techniczna są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Osadzanie iframe i pobieranie z zewnętrznych serwerów jest zablokowane.
                    </div>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</title>
		<link>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/</link>
					<comments>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 14 Sep 2025 08:54:31 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo systemów grzewczych]]></category>
		<category><![CDATA[Chemia instalacyjna]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Eksploatacja instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[inhibitor korozji]]></category>
		<category><![CDATA[jak chronić instalację grzewczą]]></category>
		<category><![CDATA[jaka woda do podłogówki]]></category>
		<category><![CDATA[kamień kotłowy w instalacji]]></category>
		<category><![CDATA[napełnianie instalacji grzewczej]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[pH w instalacji grzewczej]]></category>
		<category><![CDATA[przewodność wody w podłogówce]]></category>
		<category><![CDATA[woda demineralizowana w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[woda destylowana a demineralizowana]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2759</guid>

					<description><![CDATA[<p>Woda demineralizowana w ogrzewaniu podłogowym to standard, który coraz częściej zastępuje zwykłą wodę z kranu. Brak osadów kamienia, ochrona przed korozją i zgodność z normami europejskimi sprawiają, że instalacja działa dłużej i bardziej efektywnie. W artykule pokazujemy zarówno proste wyjaśnienia dla inwestora, jak i eksperckie dane techniczne, parametry wody oraz procedury serwisowe. To pełne kompendium dla każdego, kto planuje lub eksploatuje podłogówkę.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Woda demineralizowana w ogrzewaniu podłogowym</strong> to najlepsze medium robocze, ponieważ nie tworzy kamienia, minimalizuje ryzyko korozji i pozwala utrzymać instalację w optymalnej kondycji przez wiele lat. Zwykła woda z kranu, mimo że tania i dostępna, powoduje osady, zatyka <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego">rury</a> i przyspiesza awarie. Dodatek inhibitora korozji sprawia, że układ działa zgodnie z normami i zaleceniami producentów pomp ciepła oraz kotłów.</p>



<h2 class="wp-block-heading">Dlaczego woda z kranu nie nadaje się do ogrzewania podłogowego?</h2>



<h3 class="wp-block-heading">Z perspektywy inwestora.</h3>



<ul class="wp-block-list">
<li><strong>Kamień kotłowy</strong> = wyższe rachunki nawet o 15%.</li>



<li><strong>Korozja</strong> = krótsza żywotność pomp, rozdzielaczy, kotłów.</li>



<li><strong>„Czarna woda”</strong> = bakterie i biofilm, częsty powód kosztownych awarii.</li>
</ul>



<h3 class="wp-block-heading">Ramka ekspercka – parametry wody kranowej w Polsce.</h3>



<ul class="wp-block-list">
<li>Twardość: <strong>2–8 mmol/l (11–45 °dH)</strong></li>



<li>Przewodność: <strong>400–900 µS/cm</strong></li>



<li>pH: <strong>6,5–7,5</strong></li>



<li>Tlen rozpuszczony: do <strong>10 mg/l</strong></li>
</ul>



<h4 class="wp-block-heading">Norma PN-EN 14868 zaleca:</h4>



<ul class="wp-block-list">
<li>Twardość ≤ <strong>0,1 mmol/l</strong></li>



<li>Przewodność ≤ <strong>100 µS/cm</strong></li>



<li>pH = <strong>8–9</strong></li>
</ul>



<p class="wp-block-paragraph">Już samo porównanie pokazuje, że woda kranowa <strong>nie spełnia wymagań technicznych dla instalacji grzewczych</strong>.</p>



<h2 class="wp-block-heading">Woda demineralizowana – najlepszy wybór dla podłogówki.</h2>



<h3 class="wp-block-heading">Dla inwestora.</h3>



<ul class="wp-block-list">
<li><strong>Brak osadów</strong> → niższe rachunki i pełna sprawność.</li>



<li><strong>Brak korozji</strong> → instalacja działa dłużej i bezawaryjnie.</li>



<li><strong>Stabilne parametry</strong> → równomierny komfort cieplny w każdym pomieszczeniu.</li>
</ul>



<h3 class="wp-block-heading">Ramka ekspercka – parametry wody demineralizowanej.</h3>



<ul class="wp-block-list">
<li>Twardość: <strong>0 mmol/l</strong></li>



<li>Przewodność: <strong>1–10 µS/cm</strong></li>



<li>pH: <strong>6–7</strong> (stabilizowane inhibitorem)</li>



<li>Zawartość gazów: minimalna</li>
</ul>



<p class="wp-block-paragraph">Efekt: brak kamienia, niskie przewodnictwo → ograniczenie korozji elektrochemicznej.</p>



<h2 class="wp-block-heading">Czy sama woda demineralizowana wystarczy?</h2>



<p class="wp-block-paragraph">Nie. Sama woda demineralizowana jest „głodna” jonów i może powodować <strong>korozję metali</strong>. Dlatego zawsze stosuje się <strong>inhibitor korozji</strong>.</p>



<h3 class="wp-block-heading">Ramka ekspercka – działanie inhibitorów</h3>



<ul class="wp-block-list">
<li><strong>Anodowe</strong> (molibdeniany, azotyny) → pasywacja metalu.</li>



<li><strong>Katodowe</strong> (fosforany, krzemiany, cynki) → blokowanie reakcji redukcji tlenu.</li>



<li><strong>Organiczne</strong> → cienka warstwa ochronna + stabilizacja pH (8–9).</li>



<li><strong>Biocydy</strong> → eliminacja bakterii i biofilmu.</li>
</ul>



<h2 class="wp-block-heading">Procedura napełniania instalacji – krok po kroku.</h2>



<ol class="wp-block-list">
<li><strong>Płukanie</strong> układu wodą techniczną.</li>



<li><strong>Przygotowanie mieszaniny</strong>: woda demineralizowana + inhibitor (1–3%).</li>



<li><strong>Napełnianie instalacji</strong> pompą zalewową – bez napowietrzenia.</li>



<li><strong>Kontrola parametrów</strong>:
<ul class="wp-block-list">
<li>przewodność = <strong>30–80 µS/cm</strong>,</li>



<li>pH = <strong>8–9</strong>.</li>
</ul>
</li>



<li><strong>Dokumentacja serwisowa</strong> – wymagane dla gwarancji producenta.</li>
</ol>



<p class="wp-block-paragraph">Zobacz: <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">Czy do ogrzewania podłogowego potrzebny jest projekt?</a></p>



<h2 class="wp-block-heading">Case study – kranowa vs demineralizowana.</h2>



<ul class="wp-block-list">
<li><strong>Instalacja napełniona wodą kranową</strong> → po 5 latach: zakamieniony wymiennik, spadek sprawności o 20%, wymiana pompy. Koszt: kilka tys. zł.</li>



<li><strong>Instalacja napełniona wodą demineralizowaną + inhibitor</strong> → po 15 latach: brak problemów, sprawność prawie jak w dniu montażu.</li>
</ul>



<h2 class="wp-block-heading">Porównanie – woda kranowa vs demineralizowana.</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Parametr</th><th>Woda kranowa</th><th>Woda demineralizowana + inhibitor</th></tr></thead><tbody><tr><td>Twardość całkowita</td><td>2–8 mmol/l</td><td>0 mmol/l</td></tr><tr><td>Przewodność (25°C)</td><td>400–900 µS/cm</td><td>30–80 µS/cm</td></tr><tr><td>pH</td><td>6,5–7,5</td><td>8,0–9,0</td></tr><tr><td>Ryzyko kamienia</td><td>Wysokie</td><td>Brak</td></tr><tr><td>Korozja elektrochemiczna</td><td>Bardzo wysokie</td><td>Zminimalizowane</td></tr><tr><td>Biofilm i „czarna woda”</td><td>Możliwe</td><td>Hamowane</td></tr><tr><td>Zgodność z normami</td><td>❌</td><td>✅</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">FAQ – najczęściej zadawane pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1757838788213"><strong class="schema-faq-question"><strong>Jaka woda jest najlepsza do <a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe">ogrzewania podłogowego</a>?</strong></strong> <p class="schema-faq-answer">Najlepszym wyborem jest <strong>woda demineralizowana z inhibitorem korozji</strong>, ponieważ eliminuje kamień, chroni przed korozją i spełnia wymagania norm PN-EN.</p> </div> <div class="schema-faq-section" id="faq-question-1757838797592"><strong class="schema-faq-question"><strong>Czy można użyć wody destylowanej zamiast demineralizowanej?</strong></strong> <p class="schema-faq-answer">Nie jest to zalecane. Woda destylowana ma podobne właściwości, ale brak stabilizacji powoduje, że może być zbyt agresywna wobec metali.</p> </div> <div class="schema-faq-section" id="faq-question-1757838813465"><strong class="schema-faq-question"><strong>Jak często trzeba sprawdzać parametry wody w instalacji?</strong></strong> <p class="schema-faq-answer">Kontrola przewodności i pH zalecana jest co 2–3 lata. Inhibitor należy uzupełniać zgodnie z zaleceniami producenta.</p> </div> <div class="schema-faq-section" id="faq-question-1757838820732"><strong class="schema-faq-question"><strong>Czy można samemu napełnić podłogówkę wodą demineralizowaną?</strong></strong> <p class="schema-faq-answer">Teoretycznie tak, ale wymaga to pompy zalewowej, kontroli parametrów i znajomości procedur. W praktyce powinien to robić instalator.</p> </div> <div class="schema-faq-section" id="faq-question-1757838835396"><strong class="schema-faq-question"><strong>Co się stanie, jeśli użyję zwykłej wody z kranu?</strong></strong> <p class="schema-faq-answer">Pojawi się kamień, osady, korozja i bakterie. Efekt to gorsza sprawność i ryzyko kosztownych awarii.</p> </div> </div>



<h2 class="wp-block-heading"><br>Podsumowanie.</h2>



<p class="wp-block-paragraph">Stosowanie <strong>wody demineralizowanej w ogrzewaniu podłogowym</strong> to najlepsza praktyka potwierdzona normami i doświadczeniem instalatorów. Dzięki niej:</p>



<ul class="wp-block-list">
<li>instalacja jest czysta i bezawaryjna,</li>



<li>zużycie energii pozostaje niskie,</li>



<li>gwarancja producenta urządzeń jest utrzymana.</li>
</ul>



<p class="wp-block-paragraph">Polecane linki:</p>



<ul class="wp-block-list">
<li><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego</a></li>



<li><a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma EN 1264 – obliczenia ogrzewania podłogowego</a></li>
</ul>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">Woda demineralizowana w ogrzewaniu podłogowym – dlaczego to najlepszy wybór zamiast zwykłej wody z kranu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Glikol w ogrzewaniu podłogowym – prawda i mity, które musi znać każdy inwestor.</title>
		<link>https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 10 Sep 2025 07:45:04 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo w instalacjach]]></category>
		<category><![CDATA[Chemia instalacyjna]]></category>
		<category><![CDATA[Domy letniskowe i sezonowe]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Eksploatacja instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[czynnik glikolowy]]></category>
		<category><![CDATA[glikol etylenowy]]></category>
		<category><![CDATA[glikol propylenowy]]></category>
		<category><![CDATA[glikol w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[inhibitor korozji]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[lepkość glikolu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[płyn niezamarzający]]></category>
		<category><![CDATA[pojemność cieplna glikolu]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2747</guid>

					<description><![CDATA[<p>Czy warto stosować glikol w ogrzewaniu podłogowym? To pytanie zadaje sobie wielu inwestorów i instalatorów. W naszym artykule „Glikol w ogrzewaniu podłogowym – prawda i mity, które musi znać każdy inwestor” znajdziesz zarówno techniczne dane o właściwościach mieszaniny glikolowej, jak i praktyczne wskazówki, kiedy jej użycie ma sens. Wyjaśniamy różnice między glikolem propylenowym a etylenowym, pokazujemy wady, zalety oraz realny wpływ na sprawność instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">Glikol w ogrzewaniu podłogowym – prawda i mity, które musi znać każdy inwestor.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-mod-dark: #1e293b;
    --rk-mod-blue: #0ea5e9;
    --rk-mod-light-blue: #e0f2fe;
    --rk-mod-accent: #f59e0b;
    --rk-mod-green: #10b981;
    --rk-mod-gray-light: #f8fafc;
    --rk-mod-gray-text: #475569;
    --rk-mod-border: #cbd5e1;
    --rk-mod-shadow: 0 10px 30px -10px rgba(14, 165, 233, 0.2);
}

.rk-fluid-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: var(--rk-mod-shadow);
    border: 1px solid var(--rk-mod-blue);
    overflow: hidden;
}

/* Sekcja Opisowa */
.rk-fluid-header {
    padding: 40px 45px 30px;
    background: var(--rk-mod-gray-light);
    border-bottom: 1px solid var(--rk-mod-border);
}

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

.rk-eng-statement {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-eng-avatar {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--rk-mod-blue), #0284c7);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.3);
}

.rk-eng-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-mod-gray-text);
    margin: 0;
}

.rk-eng-text strong {
    color: var(--rk-mod-dark);
    background: var(--rk-mod-light-blue);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Interaktywny Panel */
.rk-fluid-interactive {
    padding: 40px 45px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    background: #ffffff;
}

/* Przełącznik jak w aplikacji mobilnej */
.rk-toggle-panel {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-toggle-panel h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-mod-dark);
}

.rk-switch-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-mod-gray-light);
    padding: 15px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-mod-border);
}

.rk-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
    flex-shrink: 0;
}

.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-mod-blue);
    transition: .4s;
    border-radius: 34px;
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

input:checked + .rk-slider {
    background-color: var(--rk-mod-accent);
}

input:checked + .rk-slider:before {
    transform: translateX(26px);
}

.rk-switch-label {
    font-weight: 700;
    font-size: 15px;
    color: var(--rk-mod-dark);
    transition: color 0.3s;
}

/* Statystyki i animacja */
.rk-stats-box {
    background: #f8fafc;
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-mod-border);
    position: relative;
    overflow: hidden;
}

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-size: 15px;
    border-bottom: 1px dashed #cbd5e1;
    padding-bottom: 8px;
}

.rk-stat-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-stat-label { color: var(--rk-mod-gray-text); font-weight: 600; }
.rk-stat-val { font-weight: 800; color: var(--rk-mod-dark); transition: all 0.3s;}

/* SVG Animacje */
.rk-svg-container {
    height: 120px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.pipe-fluid {
    stroke-dasharray: 10 15;
    animation: flowPipe 2s linear infinite;
    transition: all 0.5s ease;
}

.pipe-bg {
    stroke: #e2e8f0;
    stroke-width: 20;
    stroke-linecap: round;
}

@keyframes flowPipe {
    to { stroke-dashoffset: -50; }
}

/* Stany dynamiczne JS */
.state-water .pipe-fluid { stroke: var(--rk-mod-blue); stroke-width: 14; animation-duration: 1s; }
.state-glycol .pipe-fluid { stroke: var(--rk-mod-accent); stroke-width: 18; animation-duration: 4s; stroke-dasharray: 20 5; }
.state-glycol .rk-switch-label { color: var(--rk-mod-accent); }

@media (max-width: 768px) {
    .rk-fluid-interactive { grid-template-columns: 1fr; gap: 30px; }
    .rk-fluid-header, .rk-fluid-interactive { padding: 30px 20px; }
    .rk-eng-statement { flex-direction: column; align-items: center; text-align: center; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Czym jest glikol w ogrzewaniu podłogowym? Inżynierska definicja i kompromisy",
    "description": "Techniczna definicja glikolu w instalacjach płaszczyznowych. Dowiedz się, dlaczego jest to kompromis termodynamiczny, a nie ulepszacz układu.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-parametry",
    "name": "Profil Termodynamiczny: Woda vs Mieszanka Glikolowa",
    "description": "Zestawienie zmian parametrów hydraulicznych instalacji ogrzewania podłogowego po zastosowaniu wodnego roztworu glikolu propylenowego z inhibitorami.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wodny roztwór substancji chemicznej",
      "nietoksyczny glikol propylenowy",
      "jonowe inhibitory korozji",
      "parametry termodynamiczne ogrzewania",
      "zabezpieczenie instalacji przed zamarzaniem"
    ],
    "measurementTechnique": "Analiza numeryczna lepkości kinematycznej i oporów hydraulicznych rur przy symulowanym spadku temperatury poniżej zera.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Woda z inhibitorem: Niska lepkość, szybki przepływ, optymalna termodynamika.",
        "Glikol 30%: Wzrost oporów, kompromis techniczny, pełna ochrona do -15°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-symulator",
    "name": "Symulator Przepływu Laminarnego",
    "description": "Aplikacja webowa ilustrująca różnice w lepkości i prędkości przepływu między czystą wodą a płynem niezamarzającym (glikolem) w pętli ogrzewania podłogowego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-fluid-container" id="rk-glycol-module">
    
    <!-- Header / Tekst Użytkownika -->
    <div class="rk-fluid-header">
        <h2>Prawda o glikolu w podłogówce</h2>
        <div class="rk-eng-statement">
            <div class="rk-eng-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="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            </div>
            <p class="rk-eng-text">
                <strong>Glikol w ogrzewaniu podłogowym</strong> to specjalistyczny, wodny roztwór substancji chemicznej (najczęściej nietoksycznego glikolu propylenowego) wzbogacony o monojonowe inhibitory korozji, stosowany wyłącznie w celu zabezpieczenia układów narażonych na spadki temperatury poniżej zera.<br><br>
                Jako inżynier projektujący systemy płaszczyznowe, stanowczo podkreślam: to nie jest uniwersalny dodatek polepszający jakość układu, lecz <strong>techniczny kompromis</strong>, który diametralnie zmienia parametry termodynamiczne i hydrauliczne całej <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/" style="color: var(--rk-mod-blue); font-weight: bold; text-decoration: none;">instalacji grzewczej</a>.
            </p>
        </div>
    </div>

    <!-- Interakcja / Aplikacja Webowa -->
    <div class="rk-fluid-interactive state-water" id="rk-interactive-board">
        
        <div class="rk-toggle-panel">
            <h3>Sprawdź wpływ czynnika roboczego</h3>
            <p style="font-size: 14px; color: var(--rk-mod-gray-text); margin-bottom: 5px;">
                Zasymuluj zmianę <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/" style="color: var(--rk-mod-gray-text); text-decoration: underline;">wypełnienia instalacji</a> i zobacz, jak wpływa to na jej parametry pracy.
            </p>
            
            <label class="rk-switch-wrapper">
                <div class="rk-switch">
                    <input type="checkbox" id="rk-fluid-toggle">
                    <span class="rk-slider"></span>
                </div>
                <span class="rk-switch-label" id="rk-toggle-text">Woda + Inhibitor (Optymalnie)</span>
            </label>
        </div>

        <div class="rk-stats-box">
            <!-- Animowane rury SVG -->
            <div class="rk-svg-container">
                <svg viewBox="0 0 200 60" width="100%" height="100%">
                    <path class="pipe-bg" d="M 20 30 L 180 30" />
                    <path class="pipe-fluid" d="M 20 30 L 180 30" stroke-linecap="round"/>
                </svg>
            </div>
            
            <!-- Dynamiczne Parametry -->
            <div class="rk-stat-row">
                <span class="rk-stat-label">Lepkość płynu:</span>
                <span class="rk-stat-val" id="val-viscosity">Niska (~0.65 mPa·s)</span>
            </div>
            <div class="rk-stat-row">
                <span class="rk-stat-label">Opory hydrauliczne:</span>
                <span class="rk-stat-val" id="val-resistance">Normatywne</span>
            </div>
            <div class="rk-stat-row">
                <span class="rk-stat-label">Sprawność (<a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color: inherit; text-decoration: none;">OZC</a>):</span>
                <span class="rk-stat-val" id="val-efficiency" style="color: var(--rk-mod-green);">100% (Baza)</span>
            </div>
            <div class="rk-stat-row">
                <span class="rk-stat-label">Ochrona do temp:</span>
                <span class="rk-stat-val" id="val-freeze">0°C</span>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-glycol-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #fff1f2; color: #be123c; border: 2px dashed #f43f5e; border-radius: 16px; font-family: sans-serif; margin: 20px;">
                    <div style="font-size: 30px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: bold; text-transform: uppercase;">Nieautoryzowana Domena</div>
                    <div style="font-size: 14px; margin-top: 5px; color: #881337;">
                        Ten interaktywny moduł edukacyjny oraz jego warstwa JSON-LD są chronione prawem autorskim serwisu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Aplikacji Webowej (Symulator Przepływu)
    const toggle = document.getElementById('rk-fluid-toggle');
    const board = document.getElementById('rk-interactive-board');
    const toggleText = document.getElementById('rk-toggle-text');
    
    const valViscosity = document.getElementById('val-viscosity');
    const valResistance = document.getElementById('val-resistance');
    const valEfficiency = document.getElementById('val-efficiency');
    const valFreeze = document.getElementById('val-freeze');

    toggle.addEventListener('change', function() {
        if(this.checked) {
            // Stan: Glikol
            board.className = 'rk-fluid-interactive state-glycol';
            toggleText.innerText = 'Roztwór Glikolu 30% (Kompromis)';
            
            valViscosity.innerText = 'Wysoka (~1.2 mPa·s)';
            valViscosity.style.color = 'var(--rk-mod-accent)';
            
            valResistance.innerText = '+25% (Wymaga większej pompy)';
            valResistance.style.color = 'var(--rk-mod-accent)';
            
            valEfficiency.innerText = '~85% (Strata ciepła)';
            valEfficiency.style.color = 'var(--rk-mod-accent)';
            
            valFreeze.innerText = '-15°C (Pełna ochrona)';
            valFreeze.style.color = 'var(--rk-mod-blue)';
        } else {
            // Stan: Woda
            board.className = 'rk-fluid-interactive state-water';
            toggleText.innerText = 'Woda + Inhibitor (Optymalnie)';
            
            valViscosity.innerText = 'Niska (~0.65 mPa·s)';
            valViscosity.style.color = 'var(--rk-mod-dark)';
            
            valResistance.innerText = 'Normatywne';
            valResistance.style.color = 'var(--rk-mod-dark)';
            
            valEfficiency.innerText = '100% (Baza)';
            valEfficiency.style.color = 'var(--rk-mod-green)';
            
            valFreeze.innerText = '0°C';
            valFreeze.style.color = 'var(--rk-mod-dark)';
        }
    });
});
</script>



<style>
:root {
    --rk-lab-dark: #0f172a;
    --rk-lab-panel: #1e293b;
    --rk-lab-cyan: #06b6d4;
    --rk-lab-cyan-light: #cffafe;
    --rk-lab-green: #10b981;
    --rk-lab-red: #ef4444;
    --rk-lab-orange: #f97316;
    --rk-lab-text-main: #334155;
    --rk-lab-text-muted: #64748b;
    --rk-lab-border: #e2e8f0;
    --rk-lab-bg: #ffffff;
}

.rk-lab-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-lab-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(6, 182, 212, 0.15);
    border: 1px solid var(--rk-lab-cyan);
    overflow: hidden;
}

/* Sekcja Treściowa */
.rk-lab-content-section {
    padding: 45px 50px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-lab-border);
}

.rk-lab-content-section h2 {
    color: var(--rk-lab-dark);
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-lab-content-section h3 {
    color: var(--rk-lab-cyan);
    font-size: 18px;
    font-weight: 800;
    margin: 30px 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

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

.rk-lab-highlight {
    background: var(--rk-lab-cyan-light);
    color: #0891b2;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

.rk-lab-warning-box {
    display: flex;
    gap: 15px;
    background: #fef2f2;
    border-left: 4px solid var(--rk-lab-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-lab-warning-text {
    font-size: 15px;
    line-height: 1.6;
    color: #991b1b;
    margin: 0;
}

/* Sekcja Interaktywna - Laboratorium */
.rk-lab-interactive {
    padding: 45px 50px;
    background: var(--rk-lab-dark);
    color: #ffffff;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 50px;
    align-items: center;
}

.rk-lab-controls h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.rk-lab-controls p {
    color: #94a3b8;
    font-size: 14px;
    margin-bottom: 30px;
    line-height: 1.5;
}

/* Nowoczesny Slider */
.rk-range-wrapper {
    position: relative;
    margin-bottom: 40px;
}

.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    background: #334155;
    border-radius: 10px;
    outline: none;
    transition: background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-lab-cyan);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(6, 182, 212, 0.6);
    transition: transform 0.1s;
}

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

.rk-range-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 12px;
    color: #64748b;
    font-weight: 700;
}

/* Statystyki i SVG */
.rk-lab-dashboard {
    background: var(--rk-lab-panel);
    border-radius: 16px;
    padding: 30px;
    border: 1px solid #334155;
    position: relative;
}

.rk-svg-flask {
    width: 100%;
    max-width: 140px;
    height: auto;
    margin: 0 auto 20px auto;
    display: block;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
}

.flask-liquid {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: bottom;
}

.rk-dash-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #334155;
}

.rk-dash-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-dash-label {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.rk-dash-value {
    font-size: 16px;
    font-weight: 800;
    transition: color 0.3s;
}

.val-green { color: var(--rk-lab-green); }
.val-red { color: var(--rk-lab-red); }
.val-cyan { color: var(--rk-lab-cyan); }
.val-orange { color: var(--rk-lab-orange); }

@media (max-width: 768px) {
    .rk-lab-interactive { grid-template-columns: 1fr; gap: 40px; }
    .rk-lab-content-section, .rk-lab-interactive { padding: 35px 25px; }
    .rk-lab-content-section h2 { font-size: 24px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-normy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jakie stężenie glikolu dopuszczają normy i czym jest on w praktyce?",
    "description": "Szczegółowa analiza normy PN-EN 12828:2013 dla instalacji ogrzewania podłogowego. Różnice między glikolem propylenowym a etylenowym oraz znaczenie inhibitorów i wody demineralizowanej.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-stezenia",
    "name": "Charakterystyka stężeń glikolu propylenowego wg PN-EN 12828",
    "description": "Zestawienie parametrów fizykochemicznych roztworów glikolu, w tym zalecanego stężenia 25-35%, punktów zamarzania oraz optymalnego pH układu (8.0-8.5).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 12828:2013",
      "stężenie glikolu propylenowego",
      "glikol etylenowy toksyczność",
      "odczyn pH 8.0-8.5",
      "korozja elektromechaniczna"
    ],
    "measurementTechnique": "Symulacja stężenia procentowego wodnych roztworów glikolu i ich wpływu na punkt zamarzania, lepkość oraz utrzymanie gwarancji na wymienniki ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zakres normatywny: 25-35% PG zapewnia ochronę od -15°C do -20°C.",
        "Odczyn pH: Mieszanina z wodą zdemineralizowaną musi utrzymywać pH 8,0 – 8,5 dla ochrony przed korozją."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-stezenia",
    "name": "Symulator Stężeń i Norm Glikolowych",
    "description": "Interaktywny kalkulator suwakowy demonstrujący zachowanie instalacji C.O. w zależności od proporcji glikolu do wody demineralizowanej, weryfikujący zgodność z normami budowlanymi.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-lab-container" id="rk-glycol-norms">
    
    <!-- Sekcja Treściowa (Ekspert) -->
    <div class="rk-lab-content-section">
        <h2>Jakie stężenie glikolu dopuszczają normy i czym jest on w praktyce?</h2>
        
        <p class="rk-lab-paragraph">
            Zgodnie z wytycznymi normy <span class="rk-lab-highlight">PN-EN 12828:2013</span> (Instalacje ogrzewcze w budynkach – Projektowanie wodnych instalacji centralnego ogrzewania), w domowych instalacjach płaszczyznowych dopuszcza się stosowanie <strong>wyłącznie 25-35% wodnych roztworów glikolu propylenowego (PG)</strong>, co gwarantuje ochronę przed zamarzaniem do temperatury <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color: var(--rk-lab-dark); font-weight: 700; text-decoration: underline;">-15°C ÷ -20°C</a>. 
        </p>

        <div class="rk-lab-warning-box">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0; margin-top:2px;"><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>
            <p class="rk-lab-warning-text">
                <strong>Całkowicie zabronione</strong> jest stosowanie w budownictwie mieszkalnym toksycznego glikolu etylenowego (EG), którego wyciek stanowi realne zagrożenie dla zdrowia i narusza warunki techniczne jakim powinny odpowiadać budynki.
            </p>
        </div>

        <h3>Anatomia bezpiecznego płynu</h3>
        <p class="rk-lab-paragraph">
            Glikol do podłogówki nigdy nie występuje w formie 100% koncentratu wtłaczanego w rury. To zawsze starannie zbilansowana mieszanina z <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/" style="color: var(--rk-lab-cyan); font-weight: 600; text-decoration: none;">wodą zdemineralizowaną</a>, zawierająca bufory pH (utrzymujące odczyn na poziomie <strong>8,0 – 8,5 pH</strong>) oraz inhibitory zapobiegające powstawaniu korozji elektromechanicznej na mosiężnych <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" style="color: var(--rk-lab-text-main); text-decoration: underline;">rozdzielaczach</a> i wymiennikach <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color: var(--rk-lab-text-main); text-decoration: underline;">pomp ciepła</a>.
        </p>
        <p class="rk-lab-paragraph">
            Użycie gotowych, przebadanych roztworów jest <strong>jedyną drogą do zachowania gwarancji</strong> na urządzenia grzewcze. Wszelkie &#8222;marketowe&#8221; płyny chłodnicze do chłodnic samochodowych nie nadają się do instalacji CO, ponieważ ich pakiety antykorozyjne ulegają degradacji przy stałej pracy w reżimie temperaturowym podłogówki.
        </p>
    </div>

    <!-- Sekcja Interaktywna -->
    <div class="rk-lab-interactive">
        <div class="rk-lab-controls">
            <h4>Symulator Stężeń Glikolu (PG)</h4>
            <p>Dostosuj procentowy udział koncentratu w układzie wodnym i sprawdź parametry zładu według wytycznych instalacyjnych.</p>
            
            <div class="rk-range-wrapper">
                <input type="range" id="rk-glycol-slider" class="rk-range-slider" min="0" max="100" value="30" step="5">
                <div class="rk-range-labels">
                    <span>0% (Czysta Woda)</span>
                    <span>100% (Koncentrat)</span>
                </div>
            </div>
            
            <div id="rk-lab-status-msg" style="padding: 15px; border-radius: 8px; background: rgba(16, 185, 129, 0.1); border: 1px solid var(--rk-lab-green); color: var(--rk-lab-green); font-size: 14px; font-weight: 600;">
                ✓ Układ zbilansowany. Pełna zgodność z normą PN-EN 12828.
            </div>
        </div>

        <div class="rk-lab-dashboard">
            <!-- Animowana kolba -->
            <svg class="rk-svg-flask" viewBox="0 0 100 120">
                <defs>
                    <clipPath id="flask-clip">
                        <path d="M40,20 L40,50 L20,90 A10,10 0 0,0 30,105 L70,105 A10,10 0 0,0 80,90 L60,50 L60,20 Z" />
                    </clipPath>
                    <linearGradient id="liquid-grad" x1="0%" y1="0%" x2="0%" y2="100%">
                        <stop offset="0%" stop-color="#06b6d4" id="grad-top"/>
                        <stop offset="100%" stop-color="#0284c7" id="grad-bottom"/>
                    </linearGradient>
                </defs>
                <!-- Tło/szkło -->
                <path d="M40,10 L60,10 M38,20 L62,20 M40,20 L40,50 L20,90 A10,10 0 0,0 30,105 L70,105 A10,10 0 0,0 80,90 L60,50 L60,20 Z" fill="none" stroke="#475569" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
                <!-- Płyn -->
                <g clip-path="url(#flask-clip)">
                    <rect id="rk-svg-liquid" class="flask-liquid" x="0" y="65" width="100" height="100" fill="url(#liquid-grad)" />
                </g>
                <!-- Podziałka -->
                <line x1="60" y1="80" x2="68" y2="80" stroke="#475569" stroke-width="2"/>
                <line x1="60" y1="60" x2="65" y2="60" stroke="#475569" stroke-width="2"/>
                <line x1="45" y1="40" x2="55" y2="40" stroke="#475569" stroke-width="2"/>
            </svg>

            <!-- Parametry -->
            <div class="rk-dash-row">
                <span class="rk-dash-label">Stężenie PG:</span>
                <span class="rk-dash-value val-cyan" id="rk-val-conc">30 %</span>
            </div>
            <div class="rk-dash-row">
                <span class="rk-dash-label">Temp. krzepnięcia:</span>
                <span class="rk-dash-value val-cyan" id="rk-val-freeze">-15 °C</span>
            </div>
            <div class="rk-dash-row">
                <span class="rk-dash-label">Bufor pH:</span>
                <span class="rk-dash-value val-green" id="rk-val-ph">8.0 &#8211; 8.5</span>
            </div>
            <div class="rk-dash-row">
                <span class="rk-dash-label">Gwarancja:</span>
                <span class="rk-dash-value val-green" id="rk-val-war">ZACHOWANA</span>
            </div>
        </div>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - zero H2/H3 w komunikacie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-glycol-norms');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Kontener symulacyjny oraz powiązane dane JSON-LD są własnością Projekt-Ogrzewania.pl. Wykryto próbę uruchomienia skryptu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Kalkulator Stężeń)
    const slider = document.getElementById('rk-glycol-slider');
    const valConc = document.getElementById('rk-val-conc');
    const valFreeze = document.getElementById('rk-val-freeze');
    const valPh = document.getElementById('rk-val-ph');
    const valWar = document.getElementById('rk-val-war');
    const msgBox = document.getElementById('rk-lab-status-msg');
    
    // Elementy SVG
    const svgLiquid = document.getElementById('rk-svg-liquid');
    const gradTop = document.getElementById('grad-top');
    const gradBottom = document.getElementById('grad-bottom');

    slider.addEventListener('input', function() {
        let v = parseInt(this.value);
        valConc.innerText = v + ' %';
        
        // Obliczanie wysokości płynu (Y: od 100 do 20)
        let newY = 100 - (v * 0.8);
        svgLiquid.setAttribute('y', newY);

        // Logika stężeń
        if (v === 0) {
            // Woda
            valFreeze.innerText = '0 °C';
            valFreeze.className = 'rk-dash-value val-cyan';
            valPh.innerText = '~ 7.0';
            valPh.className = 'rk-dash-value val-orange';
            valWar.innerText = 'WYMAGA INHIBITORA';
            valWar.className = 'rk-dash-value val-orange';
            
            gradTop.setAttribute('stop-color', '#3b82f6');
            gradBottom.setAttribute('stop-color', '#1d4ed8');
            
            msgBox.style.background = 'rgba(249, 115, 22, 0.1)';
            msgBox.style.borderColor = 'var(--rk-lab-orange)';
            msgBox.style.color = 'var(--rk-lab-orange)';
            msgBox.innerHTML = '⚠️ Brak ochrony przed zamarzaniem. Czysta woda wymaga dodania samego inhibitora korozji.';
            
        } else if (v >= 25 && v <= 35) {
            // Norma PN-EN
            let temp = (v === 25) ? '-11' : (v === 30) ? '-15' : '-20';
            valFreeze.innerText = temp + ' °C';
            valFreeze.className = 'rk-dash-value val-cyan';
            valPh.innerText = '8.0 - 8.5';
            valPh.className = 'rk-dash-value val-green';
            valWar.innerText = 'ZACHOWANA';
            valWar.className = 'rk-dash-value val-green';
            
            gradTop.setAttribute('stop-color', '#06b6d4');
            gradBottom.setAttribute('stop-color', '#0284c7');
            
            msgBox.style.background = 'rgba(16, 185, 129, 0.1)';
            msgBox.style.borderColor = 'var(--rk-lab-green)';
            msgBox.style.color = 'var(--rk-lab-green)';
            msgBox.innerHTML = '✓ Układ zbilansowany. Pełna zgodność z normą PN-EN 12828.';
            
        } else if (v > 35) {
            // Przekroczenie normy
            valFreeze.innerText = '< -25 °C';
            valFreeze.className = 'rk-dash-value val-cyan';
            valPh.innerText = 'Zaburzone';
            valPh.className = 'rk-dash-value val-red';
            valWar.innerText = 'UTRACONA';
            valWar.className = 'rk-dash-value val-red';
            
            gradTop.setAttribute('stop-color', '#f43f5e');
            gradBottom.setAttribute('stop-color', '#be123c');
            
            msgBox.style.background = 'rgba(239, 68, 68, 0.1)';
            msgBox.style.borderColor = 'var(--rk-lab-red)';
            msgBox.style.color = 'var(--rk-lab-red)';
            msgBox.innerHTML = '❌ BŁĄD: Zbyt duża gęstość i lepkość. Dławienie pomp, ryzyko utraty gwarancji na kocioł/pompę ciepła.';
            
        } else {
            // 1-24%
            valFreeze.innerText = 'od -2 do -10 °C';
            valFreeze.className = 'rk-dash-value val-cyan';
            valPh.innerText = '< 8.0';
            valPh.className = 'rk-dash-value val-orange';
            valWar.innerText = 'RYZYKO KOROZJI';
            valWar.className = 'rk-dash-value val-orange';
            
            gradTop.setAttribute('stop-color', '#fbd38d');
            gradBottom.setAttribute('stop-color', '#f6ad55');
            
            msgBox.style.background = 'rgba(249, 115, 22, 0.1)';
            msgBox.style.borderColor = 'var(--rk-lab-orange)';
            msgBox.style.color = 'var(--rk-lab-orange)';
            msgBox.innerHTML = '⚠️ Zbyt niska dawka inhibitorów zawartych w roztworze. Ryzyko rozwoju korozji elektromechanicznej.';
        }
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0ea5e9;
    --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 h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.anatomy-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.anatomy-header p:last-child {
    margin-bottom: 0;
}

.anatomy-workspace {
    display: flex;
    min-height: 480px;
}

/* 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: 15px;
}

.layer-btn {
    position: relative;
    width: 100%;
    padding: 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 zakładek */
.layer-btn[data-layer="sprawnosc"]::before { background: var(--warning); } 
.layer-btn[data-layer="parametry"]::before { background: var(--accent); } 
.layer-btn[data-layer="koszty"]::before { background: var(--danger); } 

.layer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
}

/* UNIKALNA KLASA ABY UNIKNĄĆ KONFLIKTU Z WORDPRESSEM */
.layer-btn.layer-active {
    border-color: var(--accent);
    background: #eff6ff;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.15);
}

.layer-btn.layer-active[data-layer="sprawnosc"] { border-color: var(--warning); background: #fff7ed; }
.layer-btn.layer-active[data-layer="koszty"] { border-color: var(--danger); background: #fef2f2; }

.layer-btn.layer-active::before {
    width: 8px;
}
.layer-btn.layer-active[data-layer="sprawnosc"]::before { background: var(--warning); }
.layer-btn.layer-active[data-layer="parametry"]::before { background: var(--accent); }
.layer-btn.layer-active[data-layer="koszty"]::before { background: var(--danger); }

.layer-icon {
    font-size: 26px;
    filter: grayscale(0.2);
    transition: transform 0.3s;
}

.layer-btn.layer-active .layer-icon {
    transform: scale(1.2);
    filter: grayscale(0);
}

.layer-title {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    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: 5px;
}

/* 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;
}

/* UNIKALNA KLASA PANE_ACTIVE */
.detail-pane.pane-active {
    display: block;
}

.detail-pane h4 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-pane p {
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
    margin-bottom: 15px;
}

.detail-pane strong {
    color: var(--primary);
    background: #ffedd5;
    padding: 2px 6px;
    border-radius: 4px;
}

.detail-pane#pane-parametry strong { background: #e0f2fe; }
.detail-pane#pane-koszty strong { background: #fee2e2; }
.detail-pane#pane-koszty a { color: var(--primary); font-weight: bold; text-decoration: underline; text-decoration-color: var(--danger); }

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #334155;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    margin-top: 25px;
    line-height: 1.6;
}

.highlight-box strong {
    color: var(--primary);
    background: transparent;
    padding: 0;
    display: block;
    margin-bottom: 5px;
}

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

@media (max-width: 768px) {
    .anatomy-header { padding: 30px 20px; }
    .anatomy-workspace { flex-direction: column; min-height: auto; }
    .anatomy-layers {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding: 20px;
    }
    .anatomy-details {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-spadki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jakie są realne spadki wydajności cieplnej przy zastosowaniu glikolu?",
    "description": "Rozbicie na czynniki inżynieryjne spadków wydajności: obniżenie sprawności oddawania ciepła o 15%, spadek SCOP oraz wzrost kosztów ogrzewania o 400-600 PLN.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-wydajnosc-karty",
    "name": "Fizyczne skutki zastosowania glikolu w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie parametrów przewodności cieplnej (woda vs glikol), wpływu na współczynnik SCOP pompy ciepła oraz realnych kosztów eksploatacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Przewodność cieplna wody zdemineralizowanej",
        "value": "0.63",
        "unitText": "W/(m·K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Przewodność cieplna glikolu (30%)",
        "value": "0.48",
        "unitText": "W/(m·K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Spadek współczynnika SCOP",
        "value": "0.3",
        "unitText": "punktu"
      },
      {
        "@type": "PropertyValue",
        "name": "Szacowany roczny wzrost kosztów (dom 150m2)",
        "value": "400 - 600",
        "unitText": "PLN"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sprawność oddawania ciepła układu",
      "współczynnik przewodności cieplnej glikolu",
      "podniesienie krzywej grzewczej",
      "koszt zużycia energii elektrycznej",
      "lepkość kinematyczna roztworu"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-wydajnosc-karty",
    "name": "Interaktywna analiza strat cieplnych",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Moduł rozbijający twarde prawa fizyki instalacji na zrozumiałe panele edukacyjne (Sprawność, Parametry, Koszty).",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Analiza spadku przewodności cieplnej czynnika roboczego",
      "Wpływ na modyfikację krzywej grzewczej",
      "Ocena kosztów eksploatacji pomp obiegowych i pomp ciepła"
    ]
  }
]
</script>

<div class="premium-anatomy-box" id="efficiency-anatomy-app-container">
    
    <div class="anatomy-header">
        <h2>Jakie są realne spadki wydajności cieplnej przy zastosowaniu glikolu?</h2>
        <p>Przeanalizujmy twarde dane fizyczne z rozbiciem na trzy kluczowe aspekty projektowe. Sprawdź, jak jedna zmiana w instalacji wpływa na fizykę, parametry zasilania oraz Twój portfel.</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;">Wybierz analizowany aspekt</span>
            
            <button class="layer-btn layer-active" data-target="pane-sprawnosc" data-layer="sprawnosc">
                <span class="layer-icon">📉</span>
                <div>
                    <div class="layer-title">Sprawność Układu</div>
                    <span class="layer-subtitle">Przewodnictwo i SCOP</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-parametry" data-layer="parametry">
                <span class="layer-icon">🌡️</span>
                <div>
                    <div class="layer-title">Parametry Pracy</div>
                    <span class="layer-subtitle">Krzywa grzewcza</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-koszty" data-layer="koszty">
                <span class="layer-icon">💸</span>
                <div>
                    <div class="layer-title">Koszty i Hydraulika</div>
                    <span class="layer-subtitle">Rachunki i opory</span>
                </div>
            </button>
        </div>

        <div class="anatomy-details">
            
            <!-- PANEL 1 -->
            <div class="detail-pane pane-active" id="pane-sprawnosc">
                <h4>Fizyka oddawania ciepła</h4>
                <p>Praktyka inżynierska i twarde prawa fizyki są bezwzględne: glikol propylenowy w stężeniu 30% obniża ogólną sprawność oddawania ciepła układu o <strong>12% do 15%</strong>.</p>
                <p>Przy współpracy z pompą ciepła przekłada się to na obniżenie rocznego współczynnika <strong>SCOP o minimum 0,3 punktu</strong>.</p>
                <div class="highlight-box" style="border-left-color: var(--warning);">
                    <strong>Porównanie przewodności cieplnej:</strong>
                    Wynika to bezpośrednio z faktu, że 30% roztwór glikolu charakteryzuje się znacznie gorszym współczynnikiem przewodności cieplnej wynoszącym zaledwie <strong>0,48 W/m·K</strong>, w stosunku do wody zdemineralizowanej osiągającej <strong>0,63 W/m·K</strong>.
                </div>
            </div>

            <!-- PANEL 2 -->
            <div class="detail-pane" id="pane-parametry">
                <h4>Wymuszone wyższe temperatury</h4>
                <p>Konsekwencją gorszego przewodnictwa i mniejszej pojemności cieplnej jest konieczność transportowania większej ilości chłodziwa w jednostce czasu.</p>
                <p>Dla przekazania tej samej ilości energii do wylewki betonowej, system musi pracować na wyższych parametrach.</p>
                <div class="highlight-box" style="border-left-color: var(--accent);">
                    <strong>Skutek dla automatyki kotłowni:</strong>
                    Zmusza to inwestora do modyfikacji nastaw i <strong>podniesienia krzywej grzewczej</strong> na źródle ciepła o <strong>1 do 3°C</strong>.
                </div>
            </div>

            <!-- PANEL 3 -->
            <div class="detail-pane" id="pane-koszty">
                <h4>Eksploatacja i opory przepływu</h4>
                <p>To bezpośrednio uderza po kieszeni. W skali sezonu grzewczego dla domu 150 m², taka zmiana generuje dodatkowy koszt rzędu <strong>400 - 600 PLN</strong> z tytułu wyższego zużycia energii elektrycznej.</p>
                <div class="highlight-box" style="border-left-color: var(--danger);">
                    <strong>Zagrożenie hydrauliczne:</strong>
                    Dodatkowo, lepkość kinematyczna roztworu dławi swobodny przepływ, uniemożliwiając osiągnięcie wymaganych 2,5 l/min bez montażu znacznie droższej i przewymiarowanej <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.
                </div>
            </div>

        </div>
    </div>
    
    <noscript>
        <style>
            /* Ujawnienie wszystkich zakładek, gdy JavaScript jest wyłączony */
            .detail-pane { display: block !important; margin-bottom: 40px; }
        </style>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Zestawienie parametrów (Wersja tekstowa)</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;">Czynnik</th>
                        <th style="padding: 10px 0; color: #475569;">Parametr wody</th>
                        <th style="padding: 10px 0; color: #475569;">Parametr glikolu (30%)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Przewodność cieplna</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight:bold;">0,63 W/m·K</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight:bold;">0,48 W/m·K</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Krzywa grzewcza</td>
                        <td style="padding: 10px 0;">Baza projektowa</td>
                        <td style="padding: 10px 0;">+1 do +3°C (wyższa temperatura)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Roczny koszt (dom 150m²)</td>
                        <td style="padding: 10px 0;">Optymalny</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight:bold;">+ 400 - 600 PLN</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
// Zapakowane w funkcję, by bezbłędnie działało w każdym środowisku WP
function initEfficiencyAnatomyTabs() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const lockContainer = document.getElementById('efficiency-anatomy-app-container');
        if (lockContainer) {
            lockContainer.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 moduł edukacyjny 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; 
    }

    const appContainer = document.getElementById('efficiency-anatomy-app-container');
    if (!appContainer) return;

    const layerBtns = appContainer.querySelectorAll('.layer-btn');
    const panes = appContainer.querySelectorAll('.detail-pane');

    layerBtns.forEach(function(button) {
        button.addEventListener('click', function(e) {
            e.preventDefault(); 

            // Usuwanie unikalnej klasy z przycisków
            layerBtns.forEach(function(btn) { btn.classList.remove('layer-active'); });
            // Usuwanie unikalnej klasy z paneli
            panes.forEach(function(pane) { pane.classList.remove('pane-active'); });
            
            // Dodawanie unikalnej klasy do klikniętego przycisku
            this.classList.add('layer-active');
            
            // Pokazywanie odpowiedniego panelu
            const targetId = this.getAttribute('data-target');
            const targetPane = appContainer.querySelector('#' + targetId);
            if(targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });
}

// Bezpieczne uruchomienie w środowiskach typu WordPress
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initEfficiencyAnatomyTabs);
} else {
    initEfficiencyAnatomyTabs();
}
</script>



<style>
:root {
    --rk-dash-bg: #ffffff;
    --rk-dash-surface: #f8fafc;
    --rk-dash-dark: #0f172a;
    --rk-dash-slate: #334155;
    --rk-dash-water: #0ea5e9; /* Aqua blue for water */
    --rk-dash-water-light: #e0f2fe;
    --rk-dash-glycol: #f59e0b; /* Amber for glycol */
    --rk-dash-glycol-light: #fef3c7;
    --rk-dash-alert: #ef4444;
    --rk-dash-border: #e2e8f0;
    --rk-dash-text: #475569;
}

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

/* Sekcja Nagłówkowa */
.rk-comp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #ffffff 0%, var(--rk-dash-surface) 100%);
    border-bottom: 1px solid var(--rk-dash-border);
    position: relative;
}

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

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

/* Przestrzeń Robocza */
.rk-comp-workspace {
    display: flex;
    flex-direction: row;
    min-height: 520px;
}

/* LEWA STRONA - MENU PARAMETRÓW */
.rk-comp-sidebar {
    width: 38%;
    background: var(--rk-dash-bg);
    border-right: 1px solid var(--rk-dash-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-param-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 16px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-dash-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.rk-param-btn:hover {
    background: var(--rk-dash-surface);
    border-color: #cbd5e1;
    transform: translateX(4px);
}

.rk-param-btn.active {
    background: var(--rk-dash-dark);
    border-color: var(--rk-dash-dark);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.2);
    transform: translateX(8px);
}

.rk-param-icon {
    font-size: 24px;
    filter: grayscale(1);
    transition: all 0.3s;
}

.rk-param-btn.active .rk-param-icon {
    filter: grayscale(0);
    transform: scale(1.1);
}

.rk-param-text {
    display: flex;
    flex-direction: column;
}

.rk-param-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-dash-dark);
    transition: color 0.3s;
}

.rk-param-btn.active .rk-param-title {
    color: #ffffff;
}

.rk-param-sub {
    font-size: 11px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
}

/* PRAWA STRONA - PANELE SZCZEGÓŁÓW */
.rk-comp-display {
    width: 62%;
    background: var(--rk-dash-surface);
    padding: 40px;
    position: relative;
}

.rk-param-pane {
    display: none;
    animation: fadeScale 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.rk-param-pane.pane-active {
    display: block;
}

@keyframes fadeScale {
    0% { opacity: 0; transform: translateY(15px) scale(0.98); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

.rk-pane-header {
    margin-bottom: 25px;
}

.rk-pane-header h3 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dash-dark);
}

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

/* Karty Porównawcze */
.rk-vs-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-vs-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    border: 1px solid var(--rk-dash-border);
    position: relative;
    overflow: hidden;
}

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

.rk-vs-card.water::before { background: var(--rk-dash-water); }
.rk-vs-card.glycol::before { background: var(--rk-dash-glycol); }

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

.rk-vs-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-dash-dark);
    margin-bottom: 5px;
}

.rk-vs-unit {
    font-size: 14px;
    color: #94a3b8;
    font-weight: 600;
}

/* Wniosek Inżynieryjny Box */
.rk-engineering-impact {
    background: #ffffff;
    border-radius: 12px;
    padding: 25px;
    border: 1px solid var(--rk-dash-border);
    border-left: 5px solid var(--rk-dash-slate);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-impact-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dash-dark);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-impact-desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-dash-slate);
    margin: 0;
}

.rk-impact-desc a {
    color: var(--rk-dash-water);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-dash-water);
    transition: all 0.3s;
}

.rk-impact-desc a:hover {
    color: var(--rk-dash-dark);
    border-bottom-color: var(--rk-dash-dark);
}

/* SVG Animacje specyficzne dla paneli */
.rk-anim-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 15px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header { padding: 30px 20px; }
    .rk-comp-workspace { flex-direction: column; }
    .rk-comp-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-dash-border); padding: 20px; }
    .rk-comp-display { width: 100%; padding: 30px 20px; }
    .rk-vs-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-zestawienie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jak parametry fizykochemiczne glikolu wypadają na tle wody?",
    "description": "Techniczne zestawienie termodynamiczne. Analiza dlaczego woda demineralizowana deklasuje glikol propylenowy w instalacjach C.O. (lepkość, pojemność cieplna, rozszerzalność).",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-zestawienie",
    "name": "Tabela właściwości fizykochemicznych: Woda vs Glikol Propylenowy (30%)",
    "description": "Zestawienie kluczowych parametrów płynów roboczych w temperaturze 40°C dla instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry fizykochemiczne glikolu",
      "lepkość dynamiczna podłogówki",
      "pojemność cieplna wody i glikolu",
      "dobór naczynia wzbiorczego glikol",
      "woda demineralizowana właściwości"
    ],
    "measurementTechnique": "Pomiary fizykochemiczne w temperaturze zasilania rzędu 40°C.",
    "variableMeasured": [
      { "@type": "PropertyValue", "name": "Temperatura krzepnięcia Glikol 30%", "value": "-15", "unitText": "°C" },
      { "@type": "PropertyValue", "name": "Ciepło właściwe (Woda)", "value": "4.18", "unitText": "kJ/kg·K" },
      { "@type": "PropertyValue", "name": "Lepkość dynamiczna (Glikol 30%)", "value": "1.2", "unitText": "mPa·s" },
      { "@type": "PropertyValue", "name": "Przewodność cieplna (Woda)", "value": "0.63", "unitText": "W/m·K" },
      { "@type": "PropertyValue", "name": "Rozszerzalność objętościowa (Glikol 30%)", "value": "0.00055", "unitText": "1/K" }
    ],
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Lepkość glikolu jest o ok. 80% wyższa, co dławi przepływy.",
        "Pojemność cieplna glikolu wymusza podbicie temperatury zasilania.",
        "Większa rozszerzalność glikolu wymaga większego naczynia przeponowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-eksplorator",
    "name": "Eksplorator Parametrów Termodynamicznych",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny moduł edukacyjny pozwalający na porównanie wpływu pięciu kluczowych parametrów fizykochemicznych na pracę instalacji c.o.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Analiza lepkości kinematycznej",
      "Obliczenia pojemności cieplnej",
      "Wpływ rozszerzalności na naczynia wzbiorcze"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-compare-module" id="thermo-explorer-app">
    
    <div class="rk-comp-header">
        <h2>Jak parametry fizykochemiczne glikolu wypadają na tle wody?</h2>
        <p>
            Woda demineralizowana deklasuje roztwory glikolowe pod każdym względem termodynamicznym. Zgodnie z charakterystykami płynów roboczych w temperaturze zasilania rzędu 40°C, <strong>różnice w lepkości przekraczają 80%</strong>, co całkowicie zmienia charakterystykę pracy układu hydraulicznego i przesuwa punkt pracy pompy poza jej optymalną krzywą efektywności.
        </p>
    </div>

    <div class="rk-comp-workspace">
        
        <!-- MENU -->
        <div class="rk-comp-sidebar">
            <div style="font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; margin-bottom: 5px;">Wybierz parametr do analizy</div>
            
            <button class="rk-param-btn active" data-target="pane-krzepniecie">
                <span class="rk-param-icon">❄️</span>
                <div class="rk-param-text">
                    <span class="rk-param-title">Temp. Krzepnięcia</span>
                    <span class="rk-param-sub">Ochrona przed mrozem</span>
                </div>
            </button>
            
            <button class="rk-param-btn" data-target="pane-pojemnosc">
                <span class="rk-param-icon">🔥</span>
                <div class="rk-param-text">
                    <span class="rk-param-title">Ciepło Właściwe (Cp)</span>
                    <span class="rk-param-sub">Zdolność magazynowania ciepła</span>
                </div>
            </button>
            
            <button class="rk-param-btn" data-target="pane-lepkosc">
                <span class="rk-param-icon">🍯</span>
                <div class="rk-param-text">
                    <span class="rk-param-title">Lepkość Dynamiczna</span>
                    <span class="rk-param-sub">Opory tłoczenia</span>
                </div>
            </button>
            
            <button class="rk-param-btn" data-target="pane-przewodnosc">
                <span class="rk-param-icon">⚡</span>
                <div class="rk-param-text">
                    <span class="rk-param-title">Przewodność Cieplna</span>
                    <span class="rk-param-sub">Emisja do jastrychu</span>
                </div>
            </button>

            <button class="rk-param-btn" data-target="pane-rozszerzalnosc">
                <span class="rk-param-icon">🎈</span>
                <div class="rk-param-text">
                    <span class="rk-param-title">Rozszerzalność</span>
                    <span class="rk-param-sub">Przyrost objętościowy</span>
                </div>
            </button>
        </div>

        <!-- PANELE -->
        <div class="rk-comp-display">
            
            <!-- PANEL 1: KRZEPNIĘCIE -->
            <div class="rk-param-pane pane-active" id="pane-krzepniecie">
                <div class="rk-pane-header">
                    <h3>Temperatura Krzepnięcia</h3>
                    <p>Jedyny parametr, w którym glikol wygrywa. Decyduje o bezpieczeństwie instalacji w budynkach nieogrzewanych ciągle.</p>
                </div>
                
                <div class="rk-vs-grid">
                    <div class="rk-vs-card water">
                        <span class="rk-vs-label">Woda (zdemineralizowana)</span>
                        <div class="rk-vs-value">0 <span class="rk-vs-unit">°C</span></div>
                    </div>
                    <div class="rk-vs-card glycol">
                        <span class="rk-vs-label">Glikol (30% PG)</span>
                        <div class="rk-vs-value">-15 <span class="rk-vs-unit">°C</span></div>
                    </div>
                </div>

                <div class="rk-engineering-impact" style="border-left-color: var(--rk-dash-glycol);">
                    <div class="rk-impact-title">
                        <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>
                        Skutek inżynieryjny w projekcie
                    </div>
                    <p class="rk-impact-desc">Zabezpieczenie przed rozsadzeniem rur w obiektach okresowo grzanych (domki letniskowe, hale). W domach całorocznych – parametr całkowicie zbędny.</p>
                </div>
            </div>

            <!-- PANEL 2: POJEMNOŚĆ -->
            <div class="rk-param-pane" id="pane-pojemnosc">
                <div class="rk-pane-header">
                    <h3>Ciepło Właściwe (Pojemność Cp)</h3>
                    <p>Wskazuje, ile energii (w kilodżulach) może przenieść 1 kg płynu. Glikol przenosi znacznie mniej ciepła niż woda.</p>
                </div>
                
                <div class="rk-vs-grid">
                    <div class="rk-vs-card water">
                        <span class="rk-vs-label">Woda</span>
                        <div class="rk-vs-value">4,18 <span class="rk-vs-unit">kJ/kg·K</span></div>
                    </div>
                    <div class="rk-vs-card glycol">
                        <span class="rk-vs-label">Glikol (30% PG)</span>
                        <div class="rk-vs-value">~3,60 <span class="rk-vs-unit">kJ/kg·K</span></div>
                    </div>
                </div>

                <div class="rk-engineering-impact" style="border-left-color: var(--rk-dash-alert);">
                    <div class="rk-impact-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                        Skutek inżynieryjny w projekcie
                    </div>
                    <p class="rk-impact-desc">Niższa pojemność wymusza na instalacji przetłoczenie <strong>większego zładu czynnika</strong> w tym samym czasie lub podbicie parametru zasilania poprzez korektę <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>.</p>
                </div>
            </div>

            <!-- PANEL 3: LEPKOŚĆ -->
            <div class="rk-param-pane" id="pane-lepkosc">
                <div class="rk-pane-header">
                    <h3>Lepkość Dynamiczna (przy 40°C)</h3>
                    <p>Opisuje tarcie wewnętrzne płynu. Glikol jest "gęstszy" i bardziej lepki (o ponad 80%!), co dramatycznie utrudnia jego pompowanie.</p>
                </div>
                
                <div class="rk-vs-grid">
                    <div class="rk-vs-card water">
                        <span class="rk-vs-label">Woda</span>
                        <div class="rk-vs-value">0,65 <span class="rk-vs-unit">mPa·s</span></div>
                    </div>
                    <div class="rk-vs-card glycol">
                        <span class="rk-vs-label">Glikol (30% PG)</span>
                        <div class="rk-vs-value">~1,20 <span class="rk-vs-unit">mPa·s</span></div>
                    </div>
                </div>

                <div class="rk-engineering-impact" style="border-left-color: var(--rk-dash-alert);">
                    <div class="rk-impact-title">
                        <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>
                        Skutek inżynieryjny w projekcie
                    </div>
                    <p class="rk-impact-desc">Wyższe opory tłoczenia wężownic (rzędu 20-30%). Wymusza to dławienie przepływów na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> i nierzadko konieczność zakupu mocniejszej <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</p>
                </div>
            </div>

            <!-- PANEL 4: PRZEWODNOŚĆ -->
            <div class="rk-param-pane" id="pane-przewodnosc">
                <div class="rk-pane-header">
                    <h3>Przewodność Cieplna</h3>
                    <p>Parametr określający, jak chętnie i szybko czynnik oddaje zgromadzoną energię do ścianek rury PEX, a następnie do betonu.</p>
                </div>
                
                <div class="rk-vs-grid">
                    <div class="rk-vs-card water">
                        <span class="rk-vs-label">Woda</span>
                        <div class="rk-vs-value">0,63 <span class="rk-vs-unit">W/m·K</span></div>
                    </div>
                    <div class="rk-vs-card glycol">
                        <span class="rk-vs-label">Glikol (30% PG)</span>
                        <div class="rk-vs-value">~0,48 <span class="rk-vs-unit">W/m·K</span></div>
                    </div>
                </div>

                <div class="rk-engineering-impact" style="border-left-color: var(--rk-dash-alert);">
                    <div class="rk-impact-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Skutek inżynieryjny w projekcie
                    </div>
                    <p class="rk-impact-desc">Ograniczona i spowolniona emisja ciepła z rury do jastrychu betonowego, prowadząca do mniejszej wydajności cieplnej metra kwadratowego podłogi.</p>
                </div>
            </div>

            <!-- PANEL 5: ROZSZERZALNOŚĆ -->
            <div class="rk-param-pane" id="pane-rozszerzalnosc">
                <div class="rk-pane-header">
                    <h3>Rozszerzalność Objętościowa</h3>
                    <p>Każdy płyn zwiększa swoją objętość pod wpływem ciepła. Mieszanki glikolowe "puchną" ponad 2.5-krotnie bardziej niż czysta woda.</p>
                </div>
                
                <div class="rk-vs-grid">
                    <div class="rk-vs-card water">
                        <span class="rk-vs-label">Woda</span>
                        <div class="rk-vs-value">0,00021 <span class="rk-vs-unit">1/K</span></div>
                    </div>
                    <div class="rk-vs-card glycol">
                        <span class="rk-vs-label">Glikol (30% PG)</span>
                        <div class="rk-vs-value">0,00055 <span class="rk-vs-unit">1/K</span></div>
                    </div>
                </div>

                <div class="rk-engineering-impact" style="border-left-color: var(--rk-dash-slate);">
                    <div class="rk-impact-title">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M8 12h8M12 8v8"></path></svg>
                        Skutek inżynieryjny w projekcie
                    </div>
                    <p class="rk-impact-desc">Konieczność przeliczenia i montażu przewymiarowanego <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia przeponowego (wzbiorczego)</a> o większej pojemności użytecznej, aby zapobiec skokom ciśnienia.</p>
                </div>
            </div>

        </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; margin-bottom: 15px;">Zestawienie parametrów fizykochemicznych (Wersja tekstowa)</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 5px; color: #475569;">Parametr (przy 40°C)</th>
                        <th style="padding: 10px 5px; color: #475569;">Woda demineralizowana</th>
                        <th style="padding: 10px 5px; color: #475569;">Glikol Propylenowy 30%</th>
                        <th style="padding: 10px 5px; color: #475569;">Skutek inżynieryjny</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 5px; font-weight: bold;">Temperatura krzepnięcia</td>
                        <td style="padding: 10px 5px;">0°C</td>
                        <td style="padding: 10px 5px;">ok. -15°C</td>
                        <td style="padding: 10px 5px;">Zabezpieczenie obiektów okresowo grzanych.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 5px; font-weight: bold;">Ciepło właściwe</td>
                        <td style="padding: 10px 5px;">4,18 kJ/kg·K</td>
                        <td style="padding: 10px 5px;">~3,6 kJ/kg·K</td>
                        <td style="padding: 10px 5px;">Wymuszony większy zład lub podbicie temperatury.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 5px; font-weight: bold;">Lepkość dynamiczna</td>
                        <td style="padding: 10px 5px;">0,65 mPa·s</td>
                        <td style="padding: 10px 5px;">~1,2 mPa·s</td>
                        <td style="padding: 10px 5px;">Wyższe opory tłoczenia i dławienie rotametrów.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 5px; font-weight: bold;">Przewodność cieplna</td>
                        <td style="padding: 10px 5px;">0,63 W/m·K</td>
                        <td style="padding: 10px 5px;">~0,48 W/m·K</td>
                        <td style="padding: 10px 5px;">Ograniczona emisja ciepła z rury do betonu.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 5px; font-weight: bold;">Rozszerzalność obj.</td>
                        <td style="padding: 10px 5px;">0,00021 / K</td>
                        <td style="padding: 10px 5px;">0,00055 / K</td>
                        <td style="padding: 10px 5px;">Konieczność montażu większego naczynia wzbiorczego.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
function initThermoExplorerTabs() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const lockContainer = document.getElementById('thermo-explorer-app');
        if (lockContainer) {
            lockContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #0f172a; color: #ef4444; border: 2px dashed #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🛡️</span>
                    <h3 style="margin-top:0; font-size: 24px;">Zabezpieczenie Domenowe</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #cbd5e1; line-height: 1.5; margin: 0 auto;">Ten interaktywny eksplorator parametrów termodynamicznych jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</p>
                </div>
            `;
        }
        return; 
    }

    const appContainer = document.getElementById('thermo-explorer-app');
    if (!appContainer) return;

    const btns = appContainer.querySelectorAll('.rk-param-btn');
    const panes = appContainer.querySelectorAll('.rk-param-pane');

    btns.forEach(function(button) {
        button.addEventListener('click', function(e) {
            e.preventDefault(); 

            // Usuwanie klasy aktywnej ze wszystkich przycisków
            btns.forEach(function(btn) { btn.classList.remove('active'); });
            
            // Usuwanie klasy aktywnej ze wszystkich paneli
            panes.forEach(function(pane) { pane.classList.remove('pane-active'); });
            
            // Dodawanie klasy do klikniętego przycisku
            this.classList.add('active');
            
            // Pokazywanie powiązanego panelu
            const targetId = this.getAttribute('data-target');
            const targetPane = appContainer.querySelector('#' + targetId);
            if(targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });
}

// Uruchomienie skryptu w sposób bezpieczny dla CMS
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initThermoExplorerTabs);
} else {
    initThermoExplorerTabs();
}
</script>



<style>
:root {
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-dark: #0f172a;
    --rk-calc-slate: #334155;
    --rk-calc-water: #0ea5e9;
    --rk-calc-glycol: #f59e0b;
    --rk-calc-alert: #ef4444;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-radius: 20px;
}

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

/* Header */
.rk-alg-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

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

.rk-alg-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-alg-header a {
    color: #7dd3fc;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Dashboard & Controls */
.rk-alg-dashboard {
    padding: 40px 45px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-calc-border);
}

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

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

.rk-control-group {
    margin-bottom: 25px;
}

.rk-control-group:last-child {
    margin-bottom: 0;
}

.rk-control-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-slate);
}

.rk-control-val {
    color: var(--rk-calc-water);
    font-size: 16px;
    font-weight: 900;
}

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

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-water);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

/* Visualizer */
.rk-visual-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

.rk-pipe-sim {
    background: var(--rk-calc-surface);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-pipe-sim.sim-water { border-left: 4px solid var(--rk-calc-water); }
.rk-pipe-sim.sim-glycol { border-left: 4px solid var(--rk-calc-glycol); }

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

.rk-sim-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    text-transform: uppercase;
}

.rk-sim-result {
    font-size: 22px;
    font-weight: 900;
}
.sim-water .rk-sim-result { color: var(--rk-calc-water); }
.sim-glycol .rk-sim-result { color: var(--rk-calc-glycol); }

.rk-svg-pipe {
    width: 100%;
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.anim-flow {
    stroke-dasharray: 10 10;
    animation: flowAnim linear infinite;
}
.sim-water .anim-flow { stroke: var(--rk-calc-water); animation-duration: 1.5s; stroke-width: 24;}
.sim-glycol .anim-flow { stroke: var(--rk-calc-glycol); animation-duration: 3s; stroke-width: 24;}

@keyframes flowAnim {
    from { stroke-dashoffset: 40; }
    to { stroke-dashoffset: 0; }
}

/* Dynamic Algorithm Section */
.rk-alg-steps {
    padding: 40px 45px;
    background: var(--rk-calc-surface);
}

.rk-alg-steps h3 {
    margin: 0 0 25px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

.rk-step {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 20px 25px;
    margin-bottom: 15px;
    position: relative;
    padding-left: 60px;
    transition: all 0.3s;
}

.rk-step:hover {
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.rk-step-num {
    position: absolute;
    left: 15px;
    top: 20px;
    width: 30px;
    height: 30px;
    background: var(--rk-calc-slate);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
}

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

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

.rk-step p a {
    color: var(--rk-calc-water);
    font-weight: 600;
}

.rk-formula {
    background: var(--rk-calc-surface);
    padding: 10px 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 15px;
    color: var(--rk-calc-dark);
    font-weight: bold;
    border: 1px dashed #cbd5e1;
    display: inline-block;
    margin: 5px 0;
}

.rk-dynamic-val {
    background: #ffedd5;
    color: #c2410c;
    padding: 1px 5px;
    border-radius: 4px;
    font-weight: 800;
    transition: all 0.3s;
}

.rk-alert-step {
    border-color: var(--rk-calc-alert);
    background: #fef2f2;
}

.rk-alert-step .rk-step-num {
    background: var(--rk-calc-alert);
}

@media (max-width: 768px) {
    .rk-alg-header, .rk-alg-dashboard, .rk-alg-steps { padding: 30px 20px; }
    .rk-alg-dashboard { grid-template-columns: 1fr; gap: 30px; }
    .rk-step { padding: 20px; padding-left: 20px; padding-top: 55px; }
    .rk-step-num { top: 15px; left: 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jak krok po kroku obliczyć wpływ glikolu na przepływ i moc grzewczą?",
    "description": "Algorytm inżynierski do obliczania wymaganego strumienia objętościowego czynnika. Zobacz jak gęstość i ciepło właściwe roztworu 30% glikolu wymusza zwiększenie przepływu i dławi pompy obiegowe.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-algorytm",
    "name": "Zmienne termodynamiczne dla obliczeń strumienia objętościowego",
    "description": "Zestawienie stałych fizycznych dla wody (35°C) oraz roztworu glikolu propylenowego (30% w 20°C) wykorzystywanych do doboru nastaw na rotametrach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm obliczania przepływu podłogówki",
      "ciepło właściwe czynnika",
      "gęstość roztworu glikolu 1035 kg/m3",
      "straty ciśnienia w rurach PEX",
      "dobór pompy obiegowej"
    ],
    "measurementTechnique": "Algorytm oparty na wzorze z mechaniki płynów: V = Q / (Cp × ρ × ΔT), służący do weryfikacji oporów hydraulicznych w obiegach grzewczych.",
    "variableMeasured": [
      { "@type": "PropertyValue", "name": "Ciepło właściwe wody (Cpw)", "value": "4.18", "unitText": "kJ/kg·K" },
      { "@type": "PropertyValue", "name": "Gęstość wody (ρw)", "value": "988", "unitText": "kg/m³" },
      { "@type": "PropertyValue", "name": "Ciepło właściwe glikolu (Cpg)", "value": "3.6", "unitText": "kJ/kg·K" },
      { "@type": "PropertyValue", "name": "Gęstość glikolu (ρg)", "value": "1035", "unitText": "kg/m³" }
    ],
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany przepływ glikolu jest o 11% wyższy niż dla wody.",
        "Wyższy przepływ i lepkość glikolu generują wzrost oporów hydraulicznych o 22-25%.",
        "Wymaga to zastosowania pomp obiegowych o wysokości podnoszenia 6m - 8m zamiast standardowych 4m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-algorytm",
    "name": "Kalkulator Inżynierski: Wpływ Glikolu na Przepływ",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny algorytm obliczający w czasie rzeczywistym wymaganą wartość strumienia objętościowego dla zadanego zapotrzebowania na ciepło (Q) oraz spadku temperatury (Delta T).",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Dynamiczne przeliczanie przepływów Vw i Vg",
      "Wizualizacja prędkości w wężownicach",
      "Automatyczna ocena ubytku wydajności hydraulicznej"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-alg-container" id="rk-flow-calc-app">
    
    <!-- Nagłówek -->
    <div class="rk-alg-header">
        <h2>Jak krok po kroku obliczyć wpływ glikolu na przepływ i moc grzewczą?</h2>
        <p>
            Zastosowanie płynu niezamarzającego wymusza całkowitą zmianę podejścia do <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">doboru pomp obiegowych</a> i obliczania nastaw na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a>. Zgodnie z zasadami mechaniki płynów, wymagany strumień objętościowy musi wzrosnąć wprost proporcjonalnie do spadku ciepła właściwego czynnika i zmiany jego gęstości, która dla 30% roztworu wynosi aż <strong>1035 kg/m³</strong>.
        </p>
    </div>

    <!-- Panel Sterowania i Wizualizacja -->
    <div class="rk-alg-dashboard">
        
        <div class="rk-controls-panel">
            <h3>Parametry Projektowe</h3>
            
            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span>Moc grzewcza pętli / pokoju (Q)</span>
                    <span class="rk-control-val" id="val-q-display">2.5 kW</span>
                </div>
                <input type="range" id="input-q" class="rk-range-input" min="0.5" max="5.0" step="0.1" value="2.5">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span>Projektowa Delta T (ΔT)</span>
                    <span class="rk-control-val" id="val-dt-display">5 K</span>
                </div>
                <input type="range" id="input-dt" class="rk-range-input" min="3" max="10" step="1" value="5">
                <div style="font-size: 11px; color: #94a3b8; margin-top: 5px;">Różnica <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" style="color:inherit;">temperatury zasilania i powrotu</a></div>
            </div>
        </div>

        <div class="rk-visual-panel">
            
            <div class="rk-pipe-sim sim-water">
                <div class="rk-sim-header">
                    <span class="rk-sim-title">Przepływ - Czysta Woda</span>
                    <span class="rk-sim-result" id="res-water">435 l/h</span>
                </div>
                <svg class="rk-svg-pipe" viewBox="0 0 100 24" preserveAspectRatio="none">
                    <line x1="0" y1="12" x2="100" y2="12" class="anim-flow" />
                </svg>
            </div>

            <div class="rk-pipe-sim sim-glycol">
                <div class="rk-sim-header">
                    <span class="rk-sim-title">Przepływ - Glikol 30%</span>
                    <span class="rk-sim-result" id="res-glycol">483 l/h</span>
                </div>
                <svg class="rk-svg-pipe" viewBox="0 0 100 24" preserveAspectRatio="none">
                    <line x1="0" y1="12" x2="100" y2="12" class="anim-flow" id="anim-glycol" />
                </svg>
            </div>

        </div>
    </div>

    <!-- Dynamiczny Algorytm -->
    <div class="rk-alg-steps">
        <h3>Algorytm obliczania skorygowanego przepływu (Kalkulator inżynierski):</h3>

        <div class="rk-step">
            <div class="rk-step-num">1</div>
            <h4>Określenie zapotrzebowania na ciepło (Q)</h4>
            <p>Bierzemy dane z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>. W naszym przypadku zapotrzebowanie to <strong><span class="rk-dynamic-val" id="dyn-q">2500</span> W</strong>.</p>
            <p>Zakładamy projektowy spadek temperatury (ΔT) na poziomie <strong><span class="rk-dynamic-val" id="dyn-dt">5</span> K</strong>.</p>
        </div>

        <div class="rk-step">
            <div class="rk-step-num">2</div>
            <h4>Wyznaczenie przepływu bazowego (Woda)</h4>
            <p>Wzór: <span class="rk-formula">V<sub>w</sub> = Q / (C<sub>pw</sub> × ρ<sub>w</sub> × ΔT)</span></p>
            <p>Gdzie C<sub>pw</sub> = 4,18 kJ/kg·K (ciepło właściwe), a ρ<sub>w</sub> = 988 kg/m³ (gęstość).</p>
            <p>Obliczenia: V<sub>w</sub> = <span id="dyn-q2">2.5</span> / (4.18 × 988 × <span id="dyn-dt2">5</span> / 3600) = <strong><span class="rk-dynamic-val" id="dyn-vw">0.435</span> m³/h</strong> (czyli <span id="dyn-vw-l">435</span> l/h).</p>
        </div>

        <div class="rk-step">
            <div class="rk-step-num">3</div>
            <h4>Wyznaczenie przepływu skorygowanego (Glikol 30%)</h4>
            <p>Wzór: <span class="rk-formula">V<sub>g</sub> = Q / (C<sub>pg</sub> × ρ<sub>g</sub> × ΔT)</span></p>
            <p>Gdzie C<sub>pg</sub> = 3,6 kJ/kg·K, a ρ<sub>g</sub> = 1035 kg/m³.</p>
            <p>Obliczenia: V<sub>g</sub> = <span id="dyn-q3">2.5</span> / (3.6 × 1035 × <span id="dyn-dt3">5</span> / 3600) = <strong><span class="rk-dynamic-val" id="dyn-vg">0.483</span> m³/h</strong> (czyli <span id="dyn-vg-l">483</span> l/h).</p>
        </div>

        <div class="rk-step rk-alert-step">
            <div class="rk-step-num">4</div>
            <h4>Analiza ubytku wydajności hydraulicznej</h4>
            <p>Stosunek wymaganego przepływu glikolu względem wody rośnie. Instalacja wymaga przetłoczenia o <strong><span class="rk-dynamic-val" style="background:#fecaca; color:#991b1b;">11%</span> więcej czynnika</strong> (<span id="dyn-vg2">0.483</span> vs <span id="dyn-vw2">0.435</span> m³/h).</p>
            <p>To bezpośrednio generuje wyższe straty ciśnienia w rurach PEX 16x2.0 (wzrost oporów o ok. 22-25% ze względu na gęstość i lepkość), co bezwzględnie zmusza do podniesienia wartości podnoszenia słupa wody dla pompy z typowych 4 metrów na <strong>6 lub nawet 8 metrów</strong>.</p>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak H2/H3)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-flow-calc-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten kalkulator inżynierski oraz jego struktura JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto próbę uruchomienia na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i DOM
    const inputQ = document.getElementById('input-q');
    const inputDT = document.getElementById('input-dt');
    
    // Displays
    const dispQ = document.getElementById('val-q-display');
    const dispDT = document.getElementById('val-dt-display');
    const resWater = document.getElementById('res-water');
    const resGlycol = document.getElementById('res-glycol');
    
    // Dynamic Algorithm Texts
    const dynQ = document.getElementById('dyn-q');
    const dynDT = document.getElementById('dyn-dt');
    const dynQ2 = document.getElementById('dyn-q2');
    const dynDT2 = document.getElementById('dyn-dt2');
    const dynVW = document.getElementById('dyn-vw');
    const dynVWL = document.getElementById('dyn-vw-l');
    const dynQ3 = document.getElementById('dyn-q3');
    const dynDT3 = document.getElementById('dyn-dt3');
    const dynVG = document.getElementById('dyn-vg');
    const dynVGL = document.getElementById('dyn-vg-l');
    const dynVW2 = document.getElementById('dyn-vw2');
    const dynVG2 = document.getElementById('dyn-vg2');

    // Constants
    const Cpw = 4.18;
    const rhow = 988;
    const Cpg = 3.6;
    const rhog = 1035;

    function updateCalculator() {
        let q_kW = parseFloat(inputQ.value);
        let dt = parseFloat(inputDT.value);

        // Update basic displays
        dispQ.innerText = q_kW.toFixed(1) + ' kW';
        dispDT.innerText = dt + ' K';

        // Math: V = Q / (Cp * rho * dT / 3600)  [m3/h]
        let divisorWater = (Cpw * rhow * dt) / 3600;
        let vWater_m3 = q_kW / divisorWater;
        let vWater_l = Math.round(vWater_m3 * 1000);

        let divisorGlycol = (Cpg * rhog * dt) / 3600;
        let vGlycol_m3 = q_kW / divisorGlycol;
        let vGlycol_l = Math.round(vGlycol_m3 * 1000);

        // Update Visuals
        resWater.innerText = vWater_l + ' l/h';
        resGlycol.innerText = vGlycol_l + ' l/h';

        // Update Algorithm Text
        dynQ.innerText = (q_kW * 1000).toFixed(0);
        dynDT.innerText = dt;
        
        dynQ2.innerText = q_kW.toFixed(1);
        dynDT2.innerText = dt;
        dynVW.innerText = vWater_m3.toFixed(3);
        dynVWL.innerText = vWater_l;
        dynVW2.innerText = vWater_m3.toFixed(3);

        dynQ3.innerText = q_kW.toFixed(1);
        dynDT3.innerText = dt;
        dynVG.innerText = vGlycol_m3.toFixed(3);
        dynVGL.innerText = vGlycol_l;
        dynVG2.innerText = vGlycol_m3.toFixed(3);
        
        // Adjust animation speed based on flow (just a visual touch)
        // Faster flow = smaller duration. Base duration 3s.
        let baseSpeed = 3;
        let speedMod = 483 / (vGlycol_l > 0 ? vGlycol_l : 1); 
        let newDuration = Math.max(0.5, baseSpeed * speedMod);
        document.getElementById('anim-glycol').style.animationDuration = newDuration + 's';
    }

    // Listeners
    inputQ.addEventListener('input', updateCalculator);
    inputDT.addEventListener('input', updateCalculator);

    // Initial load
    updateCalculator();
});
</script>



<style>
:root {
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-dark: #1e1b4b; /* Głęboki granat/fiolet */
    --rk-err-panel: #312e81;
    --rk-err-accent: #6366f1; /* Indigo */
    --rk-err-danger: #e11d48; /* Karmazyn */
    --rk-err-warning: #ea580c; /* Pomarańcz */
    --rk-err-success: #10b981; /* Szmaragd */
    --rk-err-text: #475569;
    --rk-err-border: #e2e8f0;
}

.rk-error-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(30, 27, 75, 0.15);
    border: 1px solid var(--rk-err-accent);
    overflow: hidden;
}

/* Sekcja Treściowa */
.rk-err-header {
    padding: 45px 50px 35px;
    background: linear-gradient(145deg, #ffffff 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-header h2 {
    color: var(--rk-err-dark);
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

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

.rk-err-paragraph:last-child {
    margin-bottom: 0;
}

.rk-err-highlight {
    background: #e0e7ff;
    color: #4338ca;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

/* Moduł Interaktywny - Symulator Degradacji */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-err-dark);
    color: #ffffff;
}

/* Lewa Strona - Kontrolki */
.rk-err-controls {
    padding: 40px 45px;
    border-right: 1px solid #4338ca;
}

.rk-err-controls h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.rk-err-controls p.subtitle {
    color: #a5b4fc;
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 30px;
}

.rk-err-slider-group {
    margin-bottom: 35px;
}

.rk-err-slider-group:last-child {
    margin-bottom: 0;
}

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

.rk-err-label {
    font-size: 13px;
    font-weight: 700;
    color: #c7d2fe;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-err-value {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
    background: var(--rk-err-panel);
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid #4f46e5;
    min-width: 40px;
    text-align: center;
}

/* Nowoczesne Suwaki */
.rk-err-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #4338ca;
    border-radius: 4px;
    outline: none;
    transition: background 0.1s;
}

.rk-err-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-err-accent);
    box-shadow: 0 0 15px rgba(99, 102, 241, 0.6);
    transition: transform 0.1s;
}

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

/* Dodatkowa informacja pod suwakiem */
.rk-err-slider-note {
    font-size: 12px;
    color: #818cf8;
    margin-top: 10px;
    line-height: 1.4;
}

/* Prawa Strona - Dashboard i Animacja */
.rk-err-dashboard {
    padding: 40px 45px;
    background: var(--rk-err-panel);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Moduł Rury SVG */
.rk-svg-pipe-container {
    width: 100%;
    height: 120px;
    background: rgba(0,0,0,0.2);
    border-radius: 16px;
    border: 1px solid #4338ca;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
}

.rk-pipe-layer {
    transition: all 0.5s ease;
}

/* Stany Animacji */
.rk-status-safe .anim-fluid { fill: rgba(16, 185, 129, 0.4); }
.rk-status-warning .anim-fluid { fill: rgba(234, 88, 12, 0.4); }
.rk-status-critical .anim-fluid { fill: rgba(225, 29, 72, 0.4); }

.anim-particles, .anim-scale, .anim-leaks { opacity: 0; transition: opacity 0.5s; }

.rk-status-warning .anim-scale { opacity: 1; }
.rk-status-critical .anim-scale { opacity: 1; }
.rk-status-critical .anim-particles { opacity: 1; animation: floatParticle 3s infinite linear; }
.rk-status-critical .anim-leaks { opacity: 1; animation: drip 1.5s infinite; }

@keyframes floatParticle {
    0% { transform: translateX(0); }
    100% { transform: translateX(50px); }
}
@keyframes drip {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(20px); opacity: 0; }
}

/* Tabela Wyników */
.rk-err-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-err-result-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-res-label {
    font-size: 13px;
    color: #a5b4fc;
    font-weight: 600;
    text-transform: uppercase;
}

.rk-res-value {
    font-size: 20px;
    font-weight: 900;
}

.res-safe { color: var(--rk-err-success); }
.res-warn { color: var(--rk-err-warning); }
.res-crit { color: var(--rk-err-danger); }

/* Skutek box */
.rk-err-alert-box {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    background: rgba(225, 29, 72, 0.15);
    border-left: 4px solid var(--rk-err-danger);
    font-size: 14px;
    line-height: 1.5;
    display: none;
}

.rk-status-critical .rk-err-alert-box {
    display: block;
    animation: fadeInSlide 0.4s forwards;
}

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

@media (max-width: 768px) {
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-header, .rk-err-controls, .rk-err-dashboard { padding: 30px 20px; }
    .rk-err-controls { border-right: none; border-bottom: 1px solid #4338ca; }
    .rk-err-result-box { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jakie błędy instalacyjne generują największe koszty serwisowe przy glikolu?",
    "description": "Dowiedz się, dlaczego twarda woda (>15°dH) i brak kontroli pH glikolu niszczy instalację. Analiza normy VDI 2035, degradacji płynu i kosztów płukania rzędu 3000 PLN.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-bledy",
    "name": "Symulacja kosztów awarii i degradacji glikolu",
    "description": "Dane o spadku odczynu pH, wpływie twardości wody na osady wapienne oraz szacowanych kosztach napraw serwisowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy zalewaniu glikolem",
      "norma VDI 2035 twardość wody",
      "płukanie instalacji podłogówki cena",
      "spadek pH glikolu propylenowego",
      "nieszczelności w układzie z glikolem"
    ],
    "measurementTechnique": "Algorytm korelujący czas pracy instalacji (w latach) oraz twardość wody (w st. niemieckich) ze spadkiem skuteczności inhibitorów i występowaniem korozji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Mieszanie glikolu z wodą > 15°dH natychmiast neutralizuje inhibitory i tworzy osad.",
        "Po 5-8 latach glikol degraduje, odczyn pH spada poniżej 7.0 trawiąc mosiądz.",
        "Chemiczne płukanie instalacji po awarii generuje koszt rzędu 2500 - 3000 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-bledy",
    "name": "Symulator Degradacji Płynu Grzewczego",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne demonstrujące proces zakwaszania glikolu i wytrącania kamienia w zależności od twardości wody i czasu eksploatacji.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Wizualizacja zakwaszania zładu (spadek pH)",
      "Symulacja odkładania kamienia w rurach przy naruszeniu normy VDI 2035",
      "Estymacja kosztów chemicznego czyszczenia instalacji"
    ]
  }
]
</script>

<div class="rk-error-module" id="rk-glycol-errors">
    
    <div class="rk-err-header">
        <h2>Jakie błędy instalacyjne generują największe koszty serwisowe?</h2>
        
        <p class="rk-err-paragraph">
            Najpoważniejszym błędem łamiącym wytyczne normy <span class="rk-err-highlight">VDI 2035</span> (dotyczącej zapobiegania szkodom w wodnych instalacjach grzewczych) jest mieszanie koncentratu glikolowego z twardą, surową wodą wodociągową lub studzienną o twardości ogólnej powyżej <strong>15°dH</strong>. Powoduje to natychmiastową reakcję chemiczną i neutralizację pakietu inhibitorów. Zamiast ochrony, fundujemy sobie odkładanie trudnych do usunięcia osadów wapiennych i niemal pewne zablokowanie układów pomiarowych, takich jak <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" style="color: var(--rk-err-dark); font-weight: 600;">rotametry</a>.
        </p>

        <p class="rk-err-paragraph">
            Kolejnym powszechnym grzechem z listy <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color: var(--rk-err-dark); text-decoration: underline;">błędów instalatorskich</a> jest brak regularnej weryfikacji pH zładu. Glikol z biegiem lat podlega procesowi utleniania i degradacji termicznej. W temperaturach rzędu 40°C proces ten jest spowolniony, jednak po <strong>5-8 latach eksploatacji</strong> odczyn pH może spaść poniżej wartości 7,0. Kwasowy odczyn płynu zaczyna wtedy agresywnie trawić powłoki niklowane, niszczyć elementy mosiężne i zżerać złączki.
        </p>

        <p class="rk-err-paragraph">
            Ignorowanie obowiązku <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/" style="color: var(--rk-err-dark); text-decoration: underline;">serwisowania instalacji</a> i wymiany płynu kończy się kosztownym płukaniem układu z użyciem specjalistycznej chemii, co generuje fakturę rzędu <strong>2500 - 3000 PLN</strong>. Pamiętaj też, że glikol wykazuje wyższe zdolności penetracyjne niż <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" style="color: var(--rk-err-accent); font-weight: 600; text-decoration: none;">woda</a> – mikronieszczelności, które przy samej wodzie zaszłyby kamieniem i uległy samouszczelnieniu, w obecności glikolu będą nieustannie przeciekać.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-controls">
            <h3>Symulator Awarii</h3>
            <p class="subtitle">Sprawdź, co dzieje się we wnętrzu rur w zależności od jakości wody i czasu eksploatacji układu.</p>
            
            <div class="rk-err-slider-group">
                <div class="rk-err-label-row">
                    <span class="rk-err-label">Czas eksploatacji (Lata)</span>
                    <span class="rk-err-value" id="val-years">0</span>
                </div>
                <input type="range" id="input-years" class="rk-err-range" min="0" max="12" step="1" value="0">
            </div>

            <div class="rk-err-slider-group">
                <div class="rk-err-label-row">
                    <span class="rk-err-label">Twardość wody (°dH)</span>
                    <span class="rk-err-value" id="val-hardness">5</span>
                </div>
                <input type="range" id="input-hardness" class="rk-err-range" min="0" max="30" step="1" value="5">
                <div class="rk-err-slider-note">Norma VDI 2035 nakazuje max 15°dH. Najlepiej stosować wodę demineralizowaną.</div>
            </div>
        </div>

        <div class="rk-err-dashboard rk-status-safe" id="rk-sim-view">
            
            <div class="rk-svg-pipe-container">
                <svg viewBox="0 0 200 60" width="100%" height="100%">
                    <path d="M10 10 L190 10 M10 50 L190 50" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                    
                    <rect x="15" y="15" width="170" height="30" class="rk-pipe-layer anim-fluid" rx="4"/>
                    
                    <path class="rk-pipe-layer anim-scale" d="M20 45 Q 50 35 80 45 T 140 45 T 180 45 L180 50 L20 50 Z" fill="#cbd5e1" opacity="0.8"/>
                    
                    <circle cx="50" cy="30" r="2" fill="#ef4444" class="rk-pipe-layer anim-particles"/>
                    <circle cx="120" cy="25" r="1.5" fill="#ef4444" class="rk-pipe-layer anim-particles" style="animation-delay: 1s;"/>
                    <circle cx="160" cy="35" r="2.5" fill="#ef4444" class="rk-pipe-layer anim-particles" style="animation-delay: 2s;"/>

                    <path class="rk-pipe-layer anim-leaks" d="M100 52 L100 60" stroke="#38bdf8" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-err-results">
                <div class="rk-err-result-box" id="box-ph">
                    <span class="rk-res-label">Odczyn płynu (pH)</span>
                    <span class="rk-res-value res-safe" id="res-ph">8.5 (Zasadowy)</span>
                </div>
                <div class="rk-err-result-box" id="box-status">
                    <span class="rk-res-label">Stan Instalacji</span>
                    <span class="rk-res-value res-safe" id="res-status">Brak osadów</span>
                </div>
                <div class="rk-err-result-box" id="box-cost">
                    <span class="rk-res-label">Szacowany koszt naprawy</span>
                    <span class="rk-res-value res-safe" id="res-cost">0 PLN</span>
                </div>
            </div>

            <div class="rk-err-alert-box">
                <strong>AWARYJNE PŁUKANIE CHEMICZNE:</strong> Glikol uległ zakwaszeniu (pH &lt; 7.0) i zaczął trawić uszczelnienia. Ze względu na wysoką twardość wytrącił się kamień. Wymagane natychmiastowe czyszczenie stacją płuczącą.
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H2/H3)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-glycol-errors');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #1e1b4b; color: #f43f5e; border: 2px solid #e11d48; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #c7d2fe; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten symulator degradacji instalacji oraz podpięty do niego model danych Schema.org stanowią własność Projekt-Ogrzewania.pl. Wykryto użycie kodu poza autoryzowaną domeną.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const inputYears = document.getElementById('input-years');
    const inputHardness = document.getElementById('input-hardness');
    
    const valYears = document.getElementById('val-years');
    const valHardness = document.getElementById('val-hardness');
    
    const resPh = document.getElementById('res-ph');
    const resStatus = document.getElementById('res-status');
    const resCost = document.getElementById('res-cost');
    
    const simView = document.getElementById('rk-sim-view');

    // Funkcja do aktualizacji tła suwaka (efekt wypełnienia)
    function updateSliderFill(slider) {
        // Obliczenie procentowe wypełnienia
        const min = parseFloat(slider.min) || 0;
        const max = parseFloat(slider.max) || 100;
        const val = parseFloat(slider.value);
        const percent = ((val - min) / (max - min)) * 100;

        // Ustawienie tła suwaka
        slider.style.background = `linear-gradient(to right, var(--rk-err-accent) ${percent}%, #4338ca ${percent}%)`;
    }

    function updateSimulation() {
        let years = parseInt(inputYears.value);
        let hardness = parseInt(inputHardness.value);

        // Update labels
        valYears.innerText = years;
        valHardness.innerText = hardness;

        // Update sliders visual fill
        updateSliderFill(inputYears);
        updateSliderFill(inputHardness);

        // Logika pH (Base 8.5. Drops slightly, then accelerates after 5 years)
        let currentPh = 8.5;
        if (years <= 5) {
            currentPh -= (years * 0.1); // slow drop
        } else {
            currentPh = 8.5 - (5 * 0.1) - ((years - 5) * 0.35); // fast drop
        }
        currentPh = Math.max(5.0, currentPh); // bottom out at 5.0
        
        let phText = currentPh.toFixed(1);
        let phClass = 'res-safe';
        if (currentPh < 7.0) {
            phText += ' (Kwasowy!)';
            phClass = 'res-crit';
        } else if (currentPh < 8.0) {
            phText += ' (Ostrzeżenie)';
            phClass = 'res-warn';
        } else {
            phText += ' (Zasadowy)';
        }

        // Logika awarii i kosztów bez użycia znaku "&#038;&#038;" - odporne na encje HTML w CMS
        let hasScale = hardness > 15;
        let hasCorrosion = currentPh < 7.0;
        
        let statusText = 'Brak osadów i korozji';
        let statusClass = 'res-safe';
        let cost = 0;
        let viewClass = 'rk-status-safe';

        if (hasScale) {
            if (hasCorrosion) {
                statusText = 'Krytyczne zniszczenie układu';
                statusClass = 'res-crit';
                cost = 2800; // 2500-3000 range
                viewClass = 'rk-status-critical';
            } else {
                statusText = 'Złogi wapienne (VDI 2035)';
                statusClass = 'res-warn';
                cost = 1000;
                viewClass = 'rk-status-warning';
            }
        } else {
            if (hasCorrosion) {
                statusText = 'Korozja i mikro-przecieki';
                statusClass = 'res-crit';
                cost = 1500;
                viewClass = 'rk-status-critical';
            }
        }

        // Apply changes to DOM
        resPh.innerText = phText;
        resPh.className = 'rk-res-value ' + phClass;

        resStatus.innerText = statusText;
        resStatus.className = 'rk-res-value ' + statusClass;

        resCost.innerText = cost > 0 ? `~ ${cost} PLN` : '0 PLN';
        resCost.className = 'rk-res-value ' + statusClass;

        simView.className = 'rk-err-dashboard ' + viewClass;
    }

    // Listeners
    inputYears.addEventListener('input', updateSimulation);
    inputHardness.addEventListener('input', updateSimulation);

    // Init
    updateSimulation();
});
</script>



<style>
:root {
    --rk-ozc-primary: #0f172a;
    --rk-ozc-surface: #ffffff;
    --rk-ozc-bg-light: #f8fafc;
    --rk-ozc-water: #0ea5e9;
    --rk-ozc-water-light: #e0f2fe;
    --rk-ozc-glycol: #f59e0b;
    --rk-ozc-glycol-light: #fef3c7;
    --rk-ozc-alert: #ef4444;
    --rk-ozc-alert-light: #fef2f2;
    --rk-ozc-text: #334155;
    --rk-ozc-muted: #64748b;
    --rk-ozc-border: #e2e8f0;
    --rk-ozc-cta1: #1d4ed8;
    --rk-ozc-cta2: #1e3a8a;
}

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

/* ================= HEADER & TEXT ================= */
.rk-ozc-header {
    padding: 45px 50px 30px;
    background: linear-gradient(145deg, #ffffff 0%, var(--rk-ozc-bg-light) 100%);
    border-bottom: 1px solid var(--rk-ozc-border);
}

.rk-ozc-header h2 {
    color: var(--rk-ozc-primary);
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-ozc-text-block {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-ozc-text-block p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-ozc-text);
    margin: 0;
}

.rk-ozc-highlight {
    background: var(--rk-ozc-water-light);
    color: #0369a1;
    padding: 2px 8px;
    border-radius: 6px;
    font-weight: 700;
}

.rk-ozc-alert-inline {
    background: var(--rk-ozc-alert-light);
    color: #b91c1c;
    padding: 2px 8px;
    border-radius: 6px;
    font-weight: 700;
}

/* ================= INTERACTIVE WORKSPACE ================= */
.rk-ozc-workspace {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    background: var(--rk-ozc-surface);
}

/* Controls */
.rk-ozc-controls {
    padding: 40px;
    border-right: 1px solid var(--rk-ozc-border);
    display: flex;
    flex-direction: column;
    gap: 30px;
    background: var(--rk-ozc-bg-light);
}

.rk-ozc-title-sm {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-ozc-primary);
    margin: 0 0 5px 0;
}

.rk-ozc-desc-sm {
    font-size: 14px;
    color: var(--rk-ozc-muted);
    margin: 0 0 20px 0;
    line-height: 1.5;
}

/* Custom Toggle */
.rk-ozc-toggle-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-ozc-toggle-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-ozc-muted);
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-ozc-switch {
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
}

.rk-ozc-track {
    width: 60px;
    height: 32px;
    background: var(--rk-ozc-water);
    border-radius: 30px;
    position: relative;
    transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-ozc-thumb {
    width: 24px;
    height: 24px;
    background: #ffffff;
    border-radius: 50%;
    position: absolute;
    top: 4px;
    left: 4px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rk-ozc-switch input {
    display: none;
}

.rk-ozc-switch input:checked + .rk-ozc-track {
    background: var(--rk-ozc-glycol);
}

.rk-ozc-switch input:checked + .rk-ozc-track .rk-ozc-thumb {
    transform: translateX(28px);
}

.rk-ozc-status-text {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-ozc-water);
    transition: color 0.4s;
}

.state-glycol .rk-ozc-status-text {
    color: var(--rk-ozc-glycol);
}

/* Metrics List */
.rk-ozc-metrics {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-ozc-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    transition: all 0.4s;
}

.rk-ozc-metric-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-ozc-muted);
}

.rk-ozc-metric-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-ozc-primary);
    transition: color 0.4s;
}

.state-glycol .rk-ozc-metric-card {
    border-color: #fcd34d;
    background: var(--rk-ozc-glycol-light);
}

.state-glycol .rk-ozc-metric-val {
    color: #b45309;
}

/* Visualization Panel */
.rk-ozc-visual {
    padding: 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
    background: #ffffff;
}

.rk-ozc-viz-box {
    background: var(--rk-ozc-bg-light);
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.rk-ozc-viz-title {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-ozc-muted);
    z-index: 2;
}

/* SVG Animations */
.rk-ozc-pipe-svg {
    width: 100%;
    height: 120px;
    margin-top: 15px;
}

.pipe-grid {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 1;
}

.pipe-line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.pipe-water {
    stroke: var(--rk-ozc-water);
    stroke-width: 8;
    opacity: 1;
}

.pipe-glycol {
    stroke: var(--rk-ozc-glycol);
    stroke-width: 6;
    opacity: 0;
    stroke-dasharray: 400;
    stroke-dashoffset: 400;
}

.state-glycol .pipe-water { opacity: 0.15; stroke: #94a3b8; }
.state-glycol .pipe-glycol { opacity: 1; animation: drawGlycol 1.5s forwards ease-out; }

@keyframes drawGlycol { to { stroke-dashoffset: 0; } }

/* Expansion Vessel SVG */
.rk-ozc-vessel-svg {
    width: 80px;
    height: 100px;
    margin: 20px auto 0;
    display: block;
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform-origin: bottom center;
}

.vessel-body {
    fill: #cbd5e1;
    transition: fill 0.5s;
}

.state-glycol .rk-ozc-vessel-svg {
    transform: scale(1.2); /* +20% volume representation */
}

.state-glycol .vessel-body {
    fill: #fca5a5; /* Reddish alert color */
}

/* ================= MASSIVE CTA ================= */
.rk-ozc-cta-box {
    background: linear-gradient(135deg, var(--rk-ozc-cta1) 0%, var(--rk-ozc-primary) 100%);
    padding: 50px 45px;
    text-align: center;
    position: relative;
    border-top: 4px solid var(--rk-ozc-water);
}

.rk-ozc-badge-alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-ozc-alert);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    box-shadow: 0 4px 15px rgba(239, 68, 68, 0.4);
    animation: pulseOzc 2s infinite;
}

@keyframes pulseOzc {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); box-shadow: 0 4px 20px rgba(239, 68, 68, 0.7); }
    100% { transform: scale(1); }
}

.rk-ozc-cta-box h3 {
    color: #ffffff;
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-ozc-cta-box p {
    color: #bfdbfe;
    font-size: 17px;
    max-width: 700px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.rk-ozc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-ozc-cta1);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
    text-transform: uppercase;
}

.rk-ozc-btn:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.4);
    color: var(--rk-ozc-cta2);
    background: var(--rk-ozc-bg-light);
}

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

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

@media (max-width: 768px) {
    .rk-ozc-workspace { grid-template-columns: 1fr; }
    .rk-ozc-header, .rk-ozc-controls, .rk-ozc-visual, .rk-ozc-cta-box { padding: 30px 25px; }
    .rk-ozc-cta-box h3 { font-size: 26px; }
    .rk-ozc-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-projekt-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Jak glikol wpływa na projekt ogrzewania podłogowego?",
    "description": "Zastosowanie glikolu wywraca koncepcję projektową. Wymaga przeliczenia OZC, zagęszczenia rur do 10 cm, skrócenia pętli do 75m i powiększenia naczynia wzbiorczego.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-ozc",
    "name": "Parametry korygujące dla projektu OZC z udziałem glikolu",
    "description": "Zestawienie inżynieryjnych zmian architektonicznych w układzie płaszczyznowym wywołanych zmianą medium grzewczego z wody na glikol.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "rozstaw rur w ogrzewaniu podłogowym",
      "maksymalna długość pętli podłogówki",
      "zbilansowanie układu z glikolem",
      "rozszerzalność cieplna glikolu",
      "dobór naczynia przeponowego"
    ],
    "measurementTechnique": "Przeliczenie gęstości strumienia cieplnego (q) i oporów wzdłużnych (liczba Reynoldsa) wg normy PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur: Zagęszczenie z 15 cm do 10 cm z uwagi na 15% deficyt mocy.",
        "Długość pętli: Skrócenie z 100 m do 75-80 m ze względu na wzrost lepkości i oporów.",
        "Naczynie wzbiorcze: Zwiększenie pojemności całkowitej o 20% (rozszerzalność 0,00055/K)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-ozc",
    "name": "Symulator Architektury Układu Podłogowego",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Dynamiczne narzędzie wizualizujące wpływ zmiany czynnika roboczego na podstawowe parametry architektury ogrzewania podłogowego (rozstaw, długość, naczynie).",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Interaktywna symulacja zagęszczenia wężownicy (15cm -> 10cm)",
      "Wizualizacja przeskalowania naczynia wzbiorczego (+20%)",
      "Automatyczna zmiana rekomendacji długości pętli grzewczej"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-ozc-module" id="rk-ozc-simulator-app">
    
    <!-- Sekcja Edukacyjna -->
    <div class="rk-ozc-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <div class="rk-ozc-text-block">
            <p>
                Zastosowanie płynu niezamarzającego w układzie wywraca do góry nogami całą koncepcję projektową i <strong>bezwzględnie wymaga przeliczenia rzutu instalacji</strong> zgodnie z Projektowym Obciążeniem Cieplnym (OZC) wyliczonym z normy <span class="rk-ozc-highlight">PN-EN 12831</span>. Projektant, wiedząc o 15% deficycie mocy wynikającym z gorszych parametrów oddawania ciepła, musi skompensować te straty na etapie układania wężownic.
            </p>
            <p>
                W praktyce oznacza to radykalne zmiany w architekturze układu: rozstaw rur w strefach podstawowych, obliczony pierwotnie na 15 cm, <strong>musi ulec zagęszczeniu do 10 cm</strong>, aby zagwarantować odpowiednią gęstość strumienia cieplnego (q = W/m²). Zwiększona lepkość płynu drastycznie podnosi opory wzdłużne strumienia laminarnie płynącego płynu (spadek liczby Reynoldsa), co zmusza projektanta do skrócenia dopuszczalnej maksymalnej długości pętli rury PEX 16x2.0 z powszechnie stosowanych 100 metrów do zaledwie <span class="rk-ozc-alert-inline">75-80 metrów</span>. W przeciwnym razie żaden, nawet najwyższej klasy rozdzielacz, nie będzie w stanie równomiernie zbilansować układu.
            </p>
            <p>
                Zmienia się także dobór naczyń wzbiorczych – ze względu na ponad dwukrotnie większą rozszerzalność cieplną glikolu (0,00055/K względem 0,00021/K dla wody), wymagane jest zastosowanie naczynia przeponowego o <strong>20% większej pojemności całkowitej</strong>, co zapobiegnie wyrzucaniu czynnika przez zawór bezpieczeństwa w szczytowych momentach wygrzewania posadzki.
            </p>
        </div>
    </div>

    <!-- Przestrzeń Symulatora -->
    <div class="rk-ozc-workspace" id="rk-ozc-board">
        
        <!-- Panel Kontrolny i Metryki -->
        <div class="rk-ozc-controls">
            <div>
                <h3 class="rk-ozc-title-sm">Symulacja Projektowa</h3>
                <p class="rk-ozc-desc-sm">Zmień czynnik instalacyjny i zaobserwuj, jak modyfikuje się fizyka oraz geometria układu podłogowego.</p>
                
                <div class="rk-ozc-toggle-wrapper">
                    <span class="rk-ozc-toggle-label">Czynnik Roboczy:</span>
                    <label class="rk-ozc-switch">
                        <input type="checkbox" id="rk-ozc-fluid-toggle">
                        <div class="rk-ozc-track">
                            <div class="rk-ozc-thumb"></div>
                        </div>
                        <span class="rk-ozc-status-text" id="rk-ozc-status">Woda (Standard)</span>
                    </label>
                </div>
            </div>

            <div class="rk-ozc-metrics">
                <div class="rk-ozc-metric-card">
                    <span class="rk-ozc-metric-name">Rozstaw Rur PEX</span>
                    <span class="rk-ozc-metric-val" id="val-spacing">15 cm</span>
                </div>
                <div class="rk-ozc-metric-card">
                    <span class="rk-ozc-metric-name">Max. Długość Pętli</span>
                    <span class="rk-ozc-metric-val" id="val-length">100 metrów</span>
                </div>
                <div class="rk-ozc-metric-card">
                    <span class="rk-ozc-metric-name">Pojemność Naczynia Wzbiorczego</span>
                    <span class="rk-ozc-metric-val" id="val-vessel">Baza obliczeniowa</span>
                </div>
            </div>
        </div>

        <!-- Panel Wizualizacji -->
        <div class="rk-ozc-visual">
            
            <!-- Wizualizacja Wężownicy -->
            <div class="rk-ozc-viz-box">
                <div class="rk-ozc-viz-title">Zagęszczenie Rur (Moc)</div>
                <svg class="rk-ozc-pipe-svg" viewBox="0 0 200 100" preserveAspectRatio="none">
                    <!-- Siatka w tle -->
                    <pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse">
                        <path d="M 10 0 L 0 0 0 10" class="pipe-grid" />
                    </pattern>
                    <rect width="100%" height="100%" fill="url(#grid)" />
                    
                    <!-- Rura Woda (rzadsza) -->
                    <path class="pipe-line pipe-water" d="M 10 20 L 190 20 A 10 10 0 0 1 190 40 L 10 40 A 10 10 0 0 0 10 60 L 190 60 A 10 10 0 0 1 190 80 L 10 80" />
                    
                    <!-- Rura Glikol (gęstsza) -->
                    <path class="pipe-line pipe-glycol" d="M 10 10 L 190 10 A 5 5 0 0 1 190 25 L 10 25 A 5 5 0 0 0 10 40 L 190 40 A 5 5 0 0 1 190 55 L 10 55 A 5 5 0 0 0 10 70 L 190 70 A 5 5 0 0 1 190 85 L 10 85" />
                </svg>
            </div>

            <!-- Wizualizacja Naczynia Wzbiorczego -->
            <div class="rk-ozc-viz-box" style="text-align: center;">
                <div class="rk-ozc-viz-title">Naczynie Przeponowe (+20%)</div>
                <svg class="rk-ozc-vessel-svg" viewBox="0 0 100 120">
                    <!-- Zbiornik -->
                    <path class="vessel-body" d="M 30 10 C 30 0, 70 0, 70 10 L 80 90 C 80 110, 20 110, 20 90 Z" />
                    <!-- Złącze na dole -->
                    <rect x="40" y="105" width="20" height="15" fill="#64748b" />
                    <line x1="40" y1="110" x2="60" y2="110" stroke="#475569" stroke-width="2"/>
                    <!-- Wentyl u góry -->
                    <rect x="45" y="0" width="10" height="10" fill="#94a3b8" />
                </svg>
            </div>

        </div>
    </div>

    <!-- POTĘŻNE CTA -->
    <div class="rk-ozc-cta-box">
        <div class="rk-ozc-badge-alert">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="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>
            Uniknij Katastrofy Hydraulicznej
        </div>
        <h3>Brak dokładnego projektu to zamrożenie gotówki w wadliwym systemie.</h3>
        <p>Instalacja zalana glikolem bez uprzednich obliczeń OZC nie będzie dogrzewać budynku. Zabezpiecz swoją pompę ciepła, wymuś na wykonawcy pracę zgodną ze sztuką inżynierską i nie pozwól na montaż "na oko".</p>
        
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-ozc-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak H2/H3 w komunikacie błedu)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-ozc-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten symulator architektury OZC oraz zintegrowane z nim znaczniki JSON-LD stanowią własność intelektualną serwisu Projekt-Ogrzewania.pl. Wykryto nieautoryzowane użycie kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggle = document.getElementById('rk-ozc-fluid-toggle');
    const board = document.getElementById('rk-ozc-board');
    const statusText = document.getElementById('rk-ozc-status');
    
    const valSpacing = document.getElementById('val-spacing');
    const valLength = document.getElementById('val-length');
    const valVessel = document.getElementById('val-vessel');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // Stan: Glikol
            board.classList.add('state-glycol');
            statusText.innerText = "Glikol (Spadek wydajności)";
            
            valSpacing.innerText = "10 cm (Kompensacja mocy)";
            valLength.innerText = "75 - 80 metrów (Opory)";
            valVessel.innerText = "+20% objętości całkowitej";
        } else {
            // Stan: Woda
            board.classList.remove('state-glycol');
            statusText.innerText = "Woda (Standard)";
            
            valSpacing.innerText = "15 cm";
            valLength.innerText = "100 metrów";
            valVessel.innerText = "Baza obliczeniowa";
        }
    });
});
</script>



<style>
:root {
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-dark: #0f172a;
    --rk-case-slate: #334155;
    --rk-case-primary: #0ea5e9;
    --rk-case-warning: #f59e0b;
    --rk-case-danger: #ef4444;
    --rk-case-success: #10b981;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
}

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

/* Sekcja Opisowa */
.rk-case-header {
    padding: 45px 50px 30px;
    background: linear-gradient(145deg, var(--rk-case-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

.rk-case-badge {
    display: inline-block;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(239, 68, 68, 0.4);
}

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

.rk-case-story {
    display: flex;
    flex-direction: column;
    gap: 15px;
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
}

.rk-case-story p { margin: 0; }

.rk-case-story a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.3s;
}

.rk-case-story a:hover {
    color: #ffffff;
}

.rk-case-highlight {
    color: #ffffff;
    font-weight: 800;
    background: rgba(255,255,255,0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł Interaktywny */
.rk-case-workspace {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    background: var(--rk-case-bg);
}

/* Panel Kontrolny */
.rk-case-controls {
    padding: 40px;
    background: var(--rk-case-surface);
    border-right: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

/* Timeline Slider */
.rk-timeline-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-timeline-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-slate);
    margin-bottom: 15px;
    text-transform: uppercase;
}

.rk-timeline-val {
    color: var(--rk-case-danger);
    font-size: 16px;
}

.rk-timeline-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-timeline-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    border: 4px solid var(--rk-case-primary);
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s, border-color 0.3s;
}

.rk-timeline-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

/* Metryki Diagnostyczne */
.rk-diag-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-diag-item {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-diag-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-case-text);
}

.rk-diag-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Panel Wizualizatora */
.rk-case-visual {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #ffffff;
    position: relative;
}

.rk-status-banner {
    width: 100%;
    padding: 15px 20px;
    border-radius: 12px;
    text-align: center;
    font-weight: 800;
    font-size: 15px;
    margin-bottom: 30px;
    transition: all 0.4s;
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #cbd5e1;
}

.rk-svg-system {
    width: 100%;
    max-width: 250px;
    height: auto;
    overflow: visible;
}

/* Warstwy SVG */
.rk-anim-fluid {
    transition: fill 0.5s;
    fill: #38bdf8; /* woda bazowo */
}

.rk-anim-pump {
    transform-origin: center;
    transition: all 0.5s;
}

.rk-anim-seal {
    transition: stroke 0.5s, stroke-width 0.5s;
    stroke: #334155;
    stroke-width: 4;
}

.rk-anim-leak {
    opacity: 0;
    transition: opacity 0.3s;
}

/* Animacje dla konkretnych etapów */
/* M1: Lekkie ostrzeżenie */
.stage-1 .rk-anim-fluid { fill: #facc15; }
.stage-1 .rk-status-banner { background: #fef3c7; color: #b45309; border-color: #fde68a; }

/* M2: Kwas */
.stage-2 .rk-anim-fluid { fill: #f97316; }
.stage-2 .rk-anim-seal { stroke: #ef4444; stroke-width: 6; stroke-dasharray: 4 2; }
.stage-2 .rk-status-banner { background: #ffedd5; color: #c2410c; border-color: #fed7aa; }

/* M3: Obciążenie i Wycieki */
.stage-3 .rk-anim-fluid { fill: #ef4444; }
.stage-3 .rk-anim-seal { stroke: #b91c1c; stroke-width: 2; stroke-dasharray: 2 4; }
.stage-3 .rk-anim-leak { opacity: 1; animation: dropLeak 1s infinite; fill: #ef4444; }
.stage-3 .rk-anim-pump { animation: pumpShake 0.5s infinite; }
.stage-3 .rk-status-banner { background: #fef2f2; color: #b91c1c; border-color: #fca5a5; }

/* M4: Katastrofa / Zatarcie */
.stage-4 .rk-anim-fluid { fill: #7f1d1d; }
.stage-4 .rk-anim-pump { fill: #475569; animation: none; transform: scale(0.95); }
.stage-4 .rk-anim-pump-rotor { fill: #1e293b; }
.stage-4 .rk-anim-smoke { opacity: 1; animation: smokeRise 2s infinite; }
.stage-4 .rk-status-banner { background: #7f1d1d; color: #ffffff; border-color: #450a0a; box-shadow: 0 4px 15px rgba(127, 29, 29, 0.4); }

@keyframes dropLeak {
    0% { transform: translateY(0) scale(1); opacity: 1; }
    100% { transform: translateY(20px) scale(0); opacity: 0; }
}

@keyframes pumpShake {
    0% { transform: translate(0, 0) rotate(0); }
    25% { transform: translate(-2px, 1px) rotate(-1deg); }
    50% { transform: translate(2px, -1px) rotate(1deg); }
    75% { transform: translate(-1px, -2px) rotate(0); }
    100% { transform: translate(0, 0) rotate(0); }
}

@keyframes smokeRise {
    0% { transform: translateY(0) scale(1); opacity: 0.8; }
    100% { transform: translateY(-30px) scale(1.5); opacity: 0; }
}

.rk-anim-smoke { opacity: 0; fill: #94a3b8; }

@media (max-width: 768px) {
    .rk-case-workspace { grid-template-columns: 1fr; }
    .rk-case-header, .rk-case-controls, .rk-case-visual { padding: 30px 20px; }
    .rk-case-controls { border-right: none; border-bottom: 1px solid var(--rk-case-border); }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Case Study: Zatarcie pompy obiegowej po zalaniu instalacji przypadkowym glikolem",
    "description": "Analiza awarii instalacji ogrzewania podłogowego pod Suwałkami (180m2). Zobacz, jak niewłaściwa mieszanka niezamarzająca i twarda woda zniszczyły uszczelnienia i zatarły pompę w zaledwie 4 miesiące.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-casestudy",
    "name": "Wskaźniki degradacji instalacji: Analiza 4 miesięcy po zalaniu twardą wodą z glikolem samochodowym",
    "description": "Pomiary fizykochemiczne i mechaniczne ilustrujące postępującą awarię uszczelnień i przeciążenie pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zatarcie pompy obiegowej przyczyny",
      "tani glikol a uszczelnienia w podłogówce",
      "awaria rozdzielacza mosiężnego",
      "twarda woda z glikolem skutki",
      "kwasowy odczyn instalacji grzewczej"
    ],
    "measurementTechnique": "Monitoring poziomu pH, lepkości kinetycznej i obciążenia wirnika pompy w interwałach miesięcznych od momentu rozruchu.",
    "variableMeasured": [
      { "@type": "PropertyValue", "name": "Spadek odczynu płynu", "value": "z pH 7.5 do pH 4.0", "unitText": "Skala pH" },
      { "@type": "PropertyValue", "name": "Obciążenie pompy obiegowej", "value": "Wzrost oporów o 150%", "unitText": "% normy" }
    ],
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Miesiąc 1-2: Neutralizacja inhibitorów i wytrącanie osadów przez twardą wodę studzienną.",
        "Miesiąc 3: Spadek pH do poziomu kwasowego, trawienie o-ringów EPDM na rozdzielaczu.",
        "Miesiąc 4: Przeciążenie prądowe, kawitacja i całkowite zatarcie wirnika pompy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-casestudy",
    "name": "Symulator Zatarcia Pompy (Odtworzenie Awarii)",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny raport czasowy z audytu. Narzędzie pozwala przesunąć oś czasu i zaobserwować korelację między spadkiem pH czynnika grzewczego a degradacją mechaniczną układu (uszkodzenia uszczelnień, przeciążenie pompy).",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Symulacja spadku pH w czasie rzeczywistym",
      "Wizualizacja przeciążenia pompy obiegowej i wycieków",
      "Diagnoza instalatorska krok po kroku"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-case-module" id="rk-audyt-app">
    
    <!-- Nagłówek i Historia -->
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study: Audyt Terenowy (Suwałki)</div>
        <h2>Katastrofa w 4 miesiące od rozruchu</h2>
        <div class="rk-case-story">
            <p>
                W lutym 2026 roku zostałem wezwany na audyt do nowego domu koło Katowic (180 m²). Układ <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">ogrzewania podłogowego</a> u pana Macieja przestał całkowicie grzać zaledwie cztery miesiące po uruchomieniu.
            </p>
            <p>
                <strong>Diagnoza?</strong> Instalator, chcąc oszczędzić, zalał system przypadkową (najprawdopodobniej samochodową) mieszanką przeciwzamrożeniową rozrobioną z surową, bardzo twardą wodą studzienną. Skutki tej decyzji były katastrofalne. Brak odpowiednich <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">inhibitorów korozji</a> oraz gwałtowny spadek odczynu pH doprowadziły do strawienia uszczelnień (o-ringów) na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">mosiężnym rozdzielaczu</a>. Jednocześnie ekstremalnie wysoka lepkość „taniego glikolu” sprawiła, że <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> pracowała non-stop na <span class="rk-case-highlight">150% dopuszczalnej normy obciążenia</span>.
            </p>
            <p>
                Koszt wymiany pompy, naprawy uszczelnień i wielogodzinnego, chemicznego płukania całego zładu przekroczył kilka tysięcy złotych. Prześledźmy ten proces na symulatorze:
            </p>
        </div>
    </div>

    <!-- Interaktywna Konsola Diagnostyczna -->
    <div class="rk-case-workspace" id="rk-case-board">
        
        <!-- Kontrolki -->
        <div class="rk-case-controls">
            <h3>Konsola Diagnostyczna</h3>
            
            <div class="rk-timeline-wrapper">
                <div class="rk-timeline-label">
                    <span>Czas eksploatacji</span>
                    <span class="rk-timeline-val" id="val-months">Rozruch</span>
                </div>
                <!-- Suwak od 0 do 4 miesięcy -->
                <input type="range" id="case-slider" class="rk-timeline-slider" min="0" max="4" step="1" value="0">
                <div style="display: flex; justify-content: space-between; font-size: 11px; color: #94a3b8; margin-top: 10px; font-weight: 700;">
                    <span>Start</span>
                    <span>1m</span>
                    <span>2m</span>
                    <span>3m</span>
                    <span>4m</span>
                </div>
            </div>

            <div class="rk-diag-grid">
                <div class="rk-diag-item" id="diag-ph-box">
                    <span class="rk-diag-name">Odczyn czynnika (pH)</span>
                    <span class="rk-diag-val" id="diag-ph" style="color: #10b981;">7.5 (Norma)</span>
                </div>
                <div class="rk-diag-item" id="diag-load-box">
                    <span class="rk-diag-name">Obciążenie pompy</span>
                    <span class="rk-diag-val" id="diag-load" style="color: #10b981;">100%</span>
                </div>
                <div class="rk-diag-item" id="diag-seal-box">
                    <span class="rk-diag-name">Uszczelnienia (EPDM)</span>
                    <span class="rk-diag-val" id="diag-seal" style="color: #10b981;">Szczelne</span>
                </div>
            </div>
        </div>

        <!-- Wizualizator Odtworzenia Awarii -->
        <div class="rk-case-visual">
            
            <div class="rk-status-banner" id="status-message">
                ✅ System pracuje stabilnie. Pozorna bezawaryjność po rozruchu.
            </div>

            <svg class="rk-svg-system" viewBox="0 0 200 200">
                <!-- Rura / Zład -->
                <path d="M 20 120 L 180 120" stroke="#cbd5e1" stroke-width="30" stroke-linecap="round"/>
                <!-- Ciecz z animacją koloru -->
                <path d="M 25 120 L 175 120" stroke-width="24" stroke-linecap="round" class="rk-anim-fluid" stroke="currentColor" style="stroke: inherit;"/>
                
                <!-- Pompa Obiegowa -->
                <g class="rk-anim-pump">
                    <!-- Korpus pompy -->
                    <circle cx="100" cy="70" r="40" fill="#38bdf8" class="rk-anim-fluid"/>
                    <circle cx="100" cy="70" r="30" fill="#ffffff"/>
                    <!-- Wirnik (trójkąt kręcący się) -->
                    <polygon points="100,45 120,85 80,85" fill="#0ea5e9" class="rk-anim-pump-rotor" transform="rotate(0 100 70)">
                        <animateTransform attributeName="transform" type="rotate" from="0 100 70" to="360 100 70" dur="1s" repeatCount="indefinite" id="rotor-anim"/>
                    </polygon>
                    <!-- Złącza pompy -->
                    <rect x="85" y="105" width="30" height="20" fill="#64748b"/>
                </g>

                <!-- Dym z zatartej pompy (Stage 4) -->
                <circle cx="80" cy="20" r="8" class="rk-anim-smoke"/>
                <circle cx="110" cy="15" r="12" class="rk-anim-smoke" style="animation-delay: 0.5s;"/>
                <circle cx="95" cy="5" r="10" class="rk-anim-smoke" style="animation-delay: 1s;"/>

                <!-- Uszczelnienie (O-ring) między rurą a pompą -->
                <line x1="75" y1="110" x2="125" y2="110" class="rk-anim-seal"/>
                
                <!-- Wyciek (Stage 3) -->
                <path d="M 100 135 Q 105 145 100 155 Q 95 145 100 135" class="rk-anim-leak"/>
            </svg>

        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-audyt-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Case Study "Audyt Terenowy" oraz jego znaczniki JSON-LD stanowią własność Projekt-Ogrzewania.pl. Wykryto próbę uruchomienia na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Timeline)
    const slider = document.getElementById('case-slider');
    const board = document.getElementById('rk-case-board');
    
    // Displays
    const valMonths = document.getElementById('val-months');
    const diagPh = document.getElementById('diag-ph');
    const diagLoad = document.getElementById('diag-load');
    const diagSeal = document.getElementById('diag-seal');
    const statusMsg = document.getElementById('status-message');
    const rotorAnim = document.getElementById('rotor-anim');

    // Kolory slidera i ikonek
    const baseColor = '#0ea5e9';
    const colors = ['#10b981', '#f59e0b', '#f97316', '#ef4444', '#7f1d1d'];

    // Słownik stanów
    const stages = [
        {   // 0: Rozruch
            monthText: "Rozruch (0)",
            ph: "7.5 (Norma)", phColor: "#10b981",
            load: "100%", loadColor: "#10b981",
            seal: "Szczelne", sealColor: "#10b981",
            msg: "✅ System pracuje stabilnie. Instalator zgłasza sukces.",
            animDur: "1s"
        },
        {   // 1: Miesiąc 1
            monthText: "1 miesiąc",
            ph: "6.5 (Neutralizacja)", phColor: "#b45309",
            load: "115% (Opory)", loadColor: "#b45309",
            seal: "Mikro-pęcznienie", sealColor: "#b45309",
            msg: "⚠️ Twarda woda zabija inhibitory. Płyn gęstnieje od osadów.",
            animDur: "0.7s"
        },
        {   // 2: Miesiąc 2
            monthText: "2 miesiące",
            ph: "5.5 (Kwas)", phColor: "#c2410c",
            load: "130% (Przeciążenie)", loadColor: "#c2410c",
            seal: "Trawienie gumy", sealColor: "#c2410c",
            msg: "⚠️ Odczyn kwaśny trawi elementy mosiężne i gumowe uszczelki.",
            animDur: "0.4s"
        },
        {   // 3: Miesiąc 3
            monthText: "3 miesiące",
            ph: "4.5 (Silny Kwas)", phColor: "#b91c1c",
            load: "150% (Krytyczne)", loadColor: "#b91c1c",
            seal: "Przecieki na gwintach", sealColor: "#b91c1c",
            msg: "🔥 Uszczelki puszczają. Pompa dławi się lepką mazią i wchodzi w kawitację.",
            animDur: "0.2s"
        },
        {   // 4: Miesiąc 4
            monthText: "4 miesiące",
            ph: "4.0 (Degradacja)", phColor: "#7f1d1d",
            load: "ERR (Zatarcie)", loadColor: "#7f1d1d",
            seal: "Pęknięcie uszczelnień", sealColor: "#7f1d1d",
            msg: "💥 KATASTROFA: Spalony wirnik pompy, wyciek płynu. System martwy.",
            animDur: "0s" // Stop
        }
    ];

    function updateSimulator() {
        const val = parseInt(slider.value);
        const stageData = stages[val];

        // Zmiana barwy suwaka
        slider.style.background = `linear-gradient(to right, ${colors[val]} ${(val/4)*100}%, #e2e8f0 ${(val/4)*100}%)`;
        slider.style.borderColor = colors[val]; // To needs to target thumb in advanced CSS, handled via CSS variable ideally, but let's keep it simple

        // Aktualizacja tekstów
        valMonths.innerText = stageData.monthText;
        valMonths.style.color = colors[val];

        diagPh.innerText = stageData.ph;
        diagPh.style.color = stageData.phColor;

        diagLoad.innerText = stageData.load;
        diagLoad.style.color = stageData.loadColor;

        diagSeal.innerText = stageData.seal;
        diagSeal.style.color = stageData.sealColor;

        statusMsg.innerText = stageData.msg;

        // Aktualizacja klas CSS dla animacji SVG
        // Usuwamy stare klasy stage-*
        board.classList.remove('stage-0', 'stage-1', 'stage-2', 'stage-3', 'stage-4');
        board.classList.add(`stage-${val}`);

        // Aktualizacja prędkości wirnika pompy
        if (val === 4) {
            rotorAnim.setAttribute('dur', '0s'); // Zatarcie - stop animacji
        } else {
            rotorAnim.setAttribute('dur', stageData.animDur);
        }
    }

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



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0ea5e9;
    --rk-quote-accent-hover: #0284c7;
    --rk-quote-bg: #ffffff;
    --rk-quote-surface: #f8fafc;
    --rk-quote-border: #e2e8f0;
    --rk-quote-text: #475569;
    --rk-quote-danger: #ef4444;
    --rk-quote-success: #10b981;
}

.rk-expert-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-quote-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-quote-accent);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Sekcja Cytatu */
.rk-quote-section {
    padding: 40px 45px;
    background: linear-gradient(145deg, #ffffff 0%, var(--rk-quote-surface) 100%);
    display: flex;
    gap: 30px;
    align-items: center;
    border-bottom: 1px solid var(--rk-quote-border);
    position: relative;
}

.rk-quote-photo-wrap {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    position: relative;
}

.rk-quote-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 20px rgba(14, 165, 233, 0.2);
}

.rk-quote-badge {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-primary);
    color: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.rk-quote-content {
    flex-grow: 1;
    position: relative;
}

.rk-quote-icon {
    position: absolute;
    top: -20px;
    left: -20px;
    font-size: 60px;
    color: var(--rk-quote-accent);
    opacity: 0.1;
    font-family: serif;
    line-height: 1;
}

.rk-quote-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    font-weight: 600;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

.rk-quote-highlight {
    background: #e0f2fe;
    color: #0369a1;
    padding: 2px 6px;
    border-radius: 4px;
}

.rk-quote-author {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
}

.rk-quote-role {
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-quote-text);
}

/* Sekcja Interaktywna (Decyzja Inwestora) */
.rk-decision-section {
    padding: 40px 45px;
    background: var(--rk-quote-primary);
    color: #ffffff;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.rk-decision-controls h3 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
}

.rk-decision-controls p {
    color: #94a3b8;
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 25px;
}

.rk-decision-toggle-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 16px;
}

.rk-decision-options {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-radio-label {
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    padding: 12px 15px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s;
}

.rk-radio-label:hover {
    background: rgba(255, 255, 255, 0.08);
}

.rk-radio-label input[type="radio"] {
    display: none;
}

.rk-radio-custom {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-radio-custom::after {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-quote-accent);
    transform: scale(0);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-radio-label input[type="radio"]:checked + .rk-radio-custom {
    border-color: var(--rk-quote-accent);
}

.rk-radio-label input[type="radio"]:checked + .rk-radio-custom::after {
    transform: scale(1);
}

.rk-radio-text {
    font-size: 15px;
    font-weight: 700;
    color: #e2e8f0;
}

/* Wizualizator Scenariusza */
.rk-scenario-display {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-scenario-icon-wrap {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-scenario-svg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0; left: 0;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-scenario-svg.active {
    opacity: 1;
    transform: scale(1);
}

.rk-scenario-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin-bottom: 10px;
}

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

.rk-verdict-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    margin-top: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* SVG Animations */
.anim-water-drop { transform-origin: bottom; animation: pulseDrop 2s infinite alternate; }
.anim-heat-wave { stroke-dasharray: 10; animation: riseHeat 1.5s infinite linear; }
.anim-snow { transform-origin: center; animation: spinSnow 10s infinite linear; }
.anim-shield { stroke-dasharray: 60; animation: dashShield 3s infinite linear; }

@keyframes pulseDrop { from { transform: scale(1); } to { transform: scale(1.05); } }
@keyframes riseHeat { to { stroke-dashoffset: -20; } }
@keyframes spinSnow { to { transform: rotate(360deg); } }
@keyframes dashShield { to { stroke-dashoffset: 120; } }

@media (max-width: 768px) {
    .rk-quote-section { flex-direction: column; text-align: center; }
    .rk-decision-section { grid-template-columns: 1fr; }
    .rk-quote-icon { left: 50%; transform: translateX(-50%); top: -10px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-podsumowanie-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Eksperckie podsumowanie zastosowania glikolu w ogrzewaniu płaszczyznowym",
    "description": "Złota zasada inżynierska Roberta Kucharskiego: Glikol to kompromis termodynamiczny do zadań specjalnych, a nie ulepszacz dla całorocznych domów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu inwestorów i niestety instalatorów traktuje glikol jako uniwersalną tarczę ochronną. To ogromny błąd. Glikol w podłogówce to nie jest ulepszacz – to twardy kompromis termodynamiczny. Stosujemy go tylko tam, gdzie mróz realnie zagraża rurom, czyli w domkach letniskowych czy garażach. Zalanie nim całorocznego domu z pompą ciepła to celowe obniżenie sprawności SCOP i wyrzucenie w błoto minimum 500 zł każdego sezonu grzewczego. Czysta woda z inhibitorem to fundament wydajności.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-decyzje",
    "name": "Matryca decyzyjna: Wybór nośnika ciepła",
    "description": "Zestawienie rekomendowanych płynów instalacyjnych w zależności od profilu energetycznego i przeznaczenia budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zastosowanie glikolu w podłogówce",
      "dom letniskowy ogrzewanie glikol",
      "sprawność SCOP pompa ciepła",
      "woda z inhibitorem do podłogówki",
      "kompromis termodynamiczny ogrzewania"
    ],
    "measurementTechnique": "Ocena ryzyka zamarznięcia (temperatura < 0°C) zderzona z analizą spadku wydajności cieplnej instalacji w cyklu rocznym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Całoroczny (WT2021): Brak ryzyka zamarznięcia. Rekomendowana woda + inhibitor dla max. sprawności SCOP.",
        "Obiekt Okresowy (Letniskowy/Garaż): Wysokie ryzyko zamarznięcia. Rekomendowany glikol propylenowy (30%) jako ochrona, kosztem wyższych rachunków."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-decyzje",
    "name": "Symulator Decyzji Inwestora: Nośnik Ciepła",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające dopasować typ czynnika grzewczego (woda vs glikol) na podstawie profilu użytkowania budynku (całoroczny vs okresowy).",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Dynamiczna diagnoza zastosowania czynnika chłodniczego",
      "Wizualizacja wektorowa optymalizacji wydajności (Woda)",
      "Wizualizacja wektorowa zabezpieczenia przed zamarzaniem (Glikol)"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-expert-module" id="rk-quote-decision-app">
    
    <!-- Sekcja Cytatu Eksperckiego -->
    <div class="rk-quote-section">
        <div class="rk-quote-photo-wrap">
            <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-quote-photo" loading="lazy">
            <div class="rk-quote-badge">
                <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="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>
        </div>
        
        <div class="rk-quote-content">
            <div class="rk-quote-icon">"</div>
            <p class="rk-quote-text">
                Wielu inwestorów i niestety instalatorów traktuje glikol jako uniwersalną tarczę ochronną. To ogromny błąd. Glikol w podłogówce to nie jest ulepszacz – to <span class="rk-quote-highlight">twardy kompromis termodynamiczny</span>. Stosujemy go tylko tam, gdzie mróz realnie zagraża rurom, czyli w domkach letniskowych czy garażach. Zalanie nim całorocznego domu z pompą ciepła to celowe obniżenie sprawności SCOP i wyrzucenie w błoto 500 zł każdego sezonu. Czysta woda z inhibitorem to fundament wydajności.
            </p>
            <span class="rk-quote-author">Robert Kucharski</span>
            <span class="rk-quote-role">Inżynier HVAC & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <!-- Sekcja Interaktywna: Symulator Decyzji -->
    <div class="rk-decision-section">
        
        <div class="rk-decision-controls">
            <h3>Sprawdź, czy potrzebujesz glikolu</h3>
            <p>Wybierz profil swojego budynku, aby zobaczyć rekomendację inżynierską dostosowaną do Twojej inwestycji.</p>
            
            <div class="rk-decision-toggle-box" id="rk-decision-form">
                <div class="rk-decision-options">
                    <label class="rk-radio-label">
                        <input type="radio" name="building_type" value="home" checked>
                        <div class="rk-radio-custom"></div>
                        <span class="rk-radio-text">Dom ogrzewany całorocznie (WT2021)</span>
                    </label>
                    
                    <label class="rk-radio-label">
                        <input type="radio" name="building_type" value="holiday">
                        <div class="rk-radio-custom"></div>
                        <span class="rk-radio-text">Dom letniskowy / Magazyn / Garaż</span>
                    </label>
                </div>
            </div>
        </div>

        <div class="rk-scenario-display">
            <div class="rk-scenario-icon-wrap">
                <!-- WODA (Dom całoroczny) -->
                <svg class="rk-scenario-svg active" id="svg-water" viewBox="0 0 100 100">
                    <path d="M50 85 C 70 85, 80 70, 80 50 C 80 25, 50 10, 50 10 C 50 10, 20 25, 20 50 C 20 70, 30 85, 50 85 Z" fill="#e0f2fe" stroke="#0ea5e9" stroke-width="4" class="anim-water-drop"/>
                    <path d="M 40 70 Q 45 40 40 25 M 50 75 Q 55 45 50 30 M 60 70 Q 65 40 60 25" fill="none" stroke="#0ea5e9" stroke-width="3" stroke-linecap="round" class="anim-heat-wave"/>
                </svg>

                <!-- GLIKOL (Dom letniskowy) -->
                <svg class="rk-scenario-svg" id="svg-glycol" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#f59e0b" stroke-width="4" class="anim-shield"/>
                    <g class="anim-snow" stroke="#f59e0b" stroke-width="4" stroke-linecap="round">
                        <line x1="50" y1="25" x2="50" y2="75" />
                        <line x1="25" y1="50" x2="75" y2="50" />
                        <line x1="32" y1="32" x2="68" y2="68" />
                        <line x1="32" y1="68" x2="68" y2="32" />
                    </g>
                </svg>
            </div>

            <div class="rk-scenario-title" id="scenario-title">Woda + Inhibitor Korozji</div>
            <p class="rk-scenario-desc" id="scenario-desc">
                Idealny wybór. Otrzymujesz 100% wydajności hydraulicznej, brak oporów na rotametrach i najwyższy współczynnik SCOP Twojej pompy ciepła.
            </p>
            <div class="rk-verdict-badge" id="scenario-badge" style="background: #dcfce7; color: #16a34a;">Werdykt: Optymalnie</div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H2/H3 w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-quote-decision-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten moduł ekspercki wraz z danymi strukturalnymi JSON-LD stanowi własność Projekt-Ogrzewania.pl. Wykryto nieautoryzowane użycie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Decyzji Inwestora
    const radios = document.querySelectorAll('input[name="building_type"]');
    const svgWater = document.getElementById('svg-water');
    const svgGlycol = document.getElementById('svg-glycol');
    const title = document.getElementById('scenario-title');
    const desc = document.getElementById('scenario-desc');
    const badge = document.getElementById('scenario-badge');

    const data = {
        'home': {
            title: 'Woda + Inhibitor Korozji',
            desc: 'Idealny wybór. Otrzymujesz 100% wydajności hydraulicznej, brak oporów na rotametrach i najwyższy współczynnik SCOP pompy ciepła.',
            badgeText: 'Werdykt: Optymalnie',
            badgeBg: '#dcfce7',
            badgeColor: '#16a34a'
        },
        'holiday': {
            title: 'Roztwór Glikolu (30%)',
            desc: 'Konieczny kompromis. Zabezpieczysz układ przed rozsadzeniem przez mróz do -15°C, ale musisz pogodzić się z wyższymi rachunkami i mniejszą mocą.',
            badgeText: 'Werdykt: Konieczność',
            badgeBg: '#ffedd5',
            badgeColor: '#c2410c'
        }
    };

    radios.forEach(radio => {
        radio.addEventListener('change', function() {
            const val = this.value;
            
            // Toggle SVGs
            if (val === 'home') {
                svgGlycol.classList.remove('active');
                svgWater.classList.add('active');
            } else {
                svgWater.classList.remove('active');
                svgGlycol.classList.add('active');
            }

            // Update Text
            title.innerText = data[val].title;
            desc.innerText = data[val].desc;
            
            // Update Badge
            badge.innerText = data[val].badgeText;
            badge.style.backgroundColor = data[val].badgeBg;
            badge.style.color = data[val].badgeColor;
        });
    });
});
</script>



<style>
:root {
    --rk-faq-bg: #ffffff;
    --rk-faq-surface: #f8fafc;
    --rk-faq-dark: #0f172a;
    --rk-faq-slate: #334155;
    --rk-faq-primary: #0ea5e9;
    --rk-faq-primary-light: #e0f2fe;
    --rk-faq-success: #10b981;
    --rk-faq-warning: #f59e0b;
    --rk-faq-danger: #ef4444;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
}

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

/* Header */
.rk-faq-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

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

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

/* Workspace */
.rk-faq-workspace {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    background: var(--rk-faq-bg);
}

/* Accordion Section */
.rk-faq-accordion-container {
    padding: 40px 30px 40px 45px;
    border-right: 1px solid var(--rk-faq-border);
}

.rk-faq-item {
    margin-bottom: 15px;
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
    transition: all 0.3s ease;
}

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

.rk-faq-item.active {
    border-color: var(--rk-faq-primary);
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.15);
}

.rk-faq-question {
    width: 100%;
    text-align: left;
    padding: 20px;
    background: transparent;
    border: none;
    font-size: 16px;
    font-weight: 800;
    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-question {
    color: var(--rk-faq-primary);
    background: var(--rk-faq-primary-light);
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-faq-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-primary);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-icon {
    transform: rotate(180deg);
    background: var(--rk-faq-primary);
    color: #ffffff;
}

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

.rk-faq-answer-inner {
    padding: 0 20px 20px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-faq-primary);
    transition: all 0.2s;
}

.rk-faq-answer-inner a:hover {
    color: var(--rk-faq-dark);
    border-bottom-color: var(--rk-faq-dark);
}

/* Visualizer Section */
.rk-faq-visualizer {
    padding: 40px;
    background: var(--rk-faq-surface);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.rk-viz-card {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    padding: 30px;
    width: 100%;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.rk-viz-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-faq-slate);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* SVG Animations Container */
.rk-viz-svg-container {
    width: 120px;
    height: 120px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-viz-svg {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-viz-svg.active {
    opacity: 1;
    transform: scale(1);
}

/* Specific SVG Animations */
/* Q1: PEX Pipe */
.anim-pex-shield { stroke-dasharray: 60; animation: dashSpin 4s linear infinite; }
@keyframes dashSpin { to { stroke-dashoffset: -120; } }

/* Q2: pH Meter */
.anim-ph-needle { transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1); transform-origin: bottom center; }
.rk-viz-svg.active .anim-ph-needle { transform: rotate(-30deg); } /* Points to acidic */

/* Q3: Propylene vs Ethylene */
.anim-leaf { transform-origin: center; animation: pulseLeaf 2s infinite alternate; }
@keyframes pulseLeaf { from { transform: scale(1); } to { transform: scale(1.1); } }

/* Q4: Bills Graph */
.anim-chart-line { stroke-dasharray: 200; stroke-dashoffset: 200; }
.rk-viz-svg.active .anim-chart-line { animation: drawChart 1.5s forwards ease-out; }
@keyframes drawChart { to { stroke-dashoffset: 0; } }

/* Q5: Flushing */
.anim-gear { transform-origin: center; animation: spinGear 3s linear infinite; }
@keyframes spinGear { to { transform: rotate(360deg); } }

.rk-viz-desc {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-faq-primary);
    background: var(--rk-faq-primary-light);
    padding: 8px 16px;
    border-radius: 8px;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .rk-faq-workspace { grid-template-columns: 1fr; }
    .rk-faq-header, .rk-faq-accordion-container, .rk-faq-visualizer { padding: 30px 20px; }
    .rk-faq-accordion-container { border-right: none; border-bottom: 1px solid var(--rk-faq-border); }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o glikol w podłogówce",
    "description": "Zbiór kluczowych pytań inwestorów dotyczących wpływu glikolu na rury PEX, częstotliwości serwisowania, toksyczności oraz wzrostu kosztów ogrzewania pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy glikol niszczy rury PEX lub PERT w ogrzewaniu podłogowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, wysokiej klasy rury sieciowane (PEX) i polietylenowe o podwyższonej odporności termicznej (PERT) są całkowicie odporne na chemiczne działanie wodnych roztworów glikolu do stężenia 35%. Zagrożeniem dla polimeru nie jest sam glikol, lecz ewentualne przekroczenie maksymalnej temperatury zasilania określonej w klasach zastosowania według normy PN-EN ISO 15875."
        }
      },
      {
        "@type": "Question",
        "name": "Jak często konieczna jest wymiana glikolu w podłogówce domowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wymiany płynu niezamarzającego w instalacjach podłogowych należy dokonywać średnio co 5 do 8 lat, opierając się na corocznych pomiarach pH oraz gęstości refraktometrem. Degradacja inhibitorów korozji powoduje zakwaszenie środowiska i utratę właściwości ochronnych zładu, co niszczy elementy mosiężne."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różni się glikol propylenowy od etylenowego i który wybrać?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Glikol propylenowy (PG) to biodegradowalna, nietoksyczna substancja powszechnie dopuszczona do instalacji wewnątrz budynków mieszkalnych. Glikol etylenowy (EG) ma nieco lepsze parametry lepkościowe i termiczne, jednak jest skrajnie toksyczną trucizną, dlatego jego zastosowanie ogranicza się wyłącznie do układów przemysłowych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy glikol podnosi rachunki za ogrzewanie pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, glikol zwiększa rachunki za energię elektryczną, ponieważ jego niższa pojemność cieplna zmusza automatykę do podwyższenia temperatury zasilania krzywej grzewczej układu CO. Praca pompy ciepła na wyższym parametrze obniża jej efektywność (SCOP), co przekłada się na wzrost wydatków rzędu 400-600 PLN rocznie."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę samodzielnie dolać koncentrat glikolu do pracującej instalacji z wodą?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zabrania się chaotycznego dolewania glikolu do starych układów ze względu na ryzyko oderwania się złogów biologicznych i kamienia pod wpływem wchodzących w skład płynu środków powierzchniowo czynnych. Proces przejścia z wody na glikol bezwzględnie wymaga uprzedniego chemicznego płukania instalacji."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-faq",
    "name": "Baza Wiedzy Eksploatacyjnej: Glikol vs Woda",
    "description": "Kluczowe dane eksploatacyjne dotyczące żywotności, kompatybilności materiałowej i bezpieczeństwa stosowania glikolu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wymiana glikolu w podłogówce",
      "glikol propylenowy a etylenowy",
      "rury PEX odporność na glikol",
      "wzrost kosztów pompa ciepła glikol",
      "płukanie instalacji przed glikolem"
    ],
    "measurementTechnique": "Analiza cyklu życia płynów instalacyjnych oraz ich interakcji z polimerami (PN-EN ISO 15875) i stopami mosiądzu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Cykl życia płynu: 5-8 lat do momentu degradacji buforów pH.",
        "Kompatybilność PEX/PERT: 100% odporności do stężenia 35% PG.",
        "Spadek efektywności: Generuje koszty wyższe o 400-600 PLN/rok."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-faq",
    "name": "Interaktywny Asystent Eksploatacji",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Moduł typu Accordion z dynamicznym panelem diagnostycznym, wizualizujący zjawiska takie jak zakwaszanie zładu, toksyczność czy opory hydrauliczne.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Interaktywne odpowiedzi na pytania techniczne",
      "Kontekstowa wizualizacja wektorowa zjawisk fizykochemicznych",
      "Dynamiczne podsumowania diagnostyczne"
    ]
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq-module" id="rk-glycol-faq-app">
    
    <!-- Nagłówek -->
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania o glikol</h2>
        <p>
            Teoria inżynierska to jedno, ale codzienna eksploatacja budzi najwięcej wątpliwości. Wybierz pytanie, aby zobaczyć twarde dane techniczne i diagnozę problemu.
        </p>
    </div>

    <!-- Przestrzeń Interaktywna -->
    <div class="rk-faq-workspace">
        
        <!-- Lewa strona: Akordeon FAQ -->
        <div class="rk-faq-accordion-container" id="rk-faq-list">
            
            <!-- Pytanie 1 -->
            <div class="rk-faq-item active" data-viz="viz-pex">
                <button class="rk-faq-question" aria-expanded="true">
                    Czy glikol niszczy rury PEX lub PERT?
                    <div class="rk-faq-icon">
                        <svg width="16" height="16" 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" style="max-height: 500px;">
                    <div class="rk-faq-answer-inner">
                        Nie, wysokiej klasy <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury sieciowane (PEX)</a> i polietylenowe o podwyższonej odporności termicznej (PERT) są <strong>całkowicie odporne na chemiczne działanie</strong> wodnych roztworów glikolu do stężenia 35%. Zagrożeniem dla polimeru nie jest sama chemia płynu, lecz ewentualne przekroczenie maksymalnej temperatury zasilania określonej w klasach zastosowania według normy <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">PN-EN ISO 15875</a>.
                    </div>
                </div>
            </div>

            <!-- Pytanie 2 -->
            <div class="rk-faq-item" data-viz="viz-ph">
                <button class="rk-faq-question" aria-expanded="false">
                    Jak często wymieniać glikol w domu?
                    <div class="rk-faq-icon">
                        <svg width="16" height="16" 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">
                        Wymiany płynu niezamarzającego należy dokonywać średnio <strong>co 5 do 8 lat</strong>. Jest to absolutnie konieczne z uwagi na wyczerpywanie się buforów zasadowych. Należy to weryfikować opierając się na corocznych pomiarach pH oraz gęstości refraktometrem. Degradacja inhibitorów korozji powoduje zakwaszenie środowiska i <strong>utratę właściwości ochronnych zładu</strong>, co skutkuje niszczeniem złączek mosiężnych. Zobacz więcej w dziale o <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">serwisowaniu podłogówki</a>.
                    </div>
                </div>
            </div>

            <!-- Pytanie 3 -->
            <div class="rk-faq-item" data-viz="viz-tox">
                <button class="rk-faq-question" aria-expanded="false">
                    Glikol propylenowy (PG) vs etylenowy (EG)?
                    <div class="rk-faq-icon">
                        <svg width="16" height="16" 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">
                        Glikol propylenowy (PG) to biodegradowalna, nietoksyczna substancja powszechnie dopuszczona do instalacji wewnątrz budynków mieszkalnych. Glikol etylenowy (EG) ma nieco lepsze parametry lepkościowe i termiczne, jednak <strong>jest skrajnie toksyczną trucizną</strong>. Wypicie nawet niewielkiej ilości przez uszkodzony wymiennik CWU jest śmiertelne, dlatego jego zastosowanie ogranicza się <strong>wyłącznie do szczelnych układów przemysłowych</strong>.
                    </div>
                </div>
            </div>

            <!-- Pytanie 4 -->
            <div class="rk-faq-item" data-viz="viz-bill">
                <button class="rk-faq-question" aria-expanded="false">
                    Czy glikol podnosi rachunki za pompę ciepła?
                    <div class="rk-faq-icon">
                        <svg width="16" height="16" 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. Niższa pojemność cieplna glikolu zmusza automatykę do podwyższenia temperatury zasilania na krzywej grzewczej układu CO. Praca <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> na wyższym parametrze obniża jej efektywność sezonową (SCOP), co przekłada się na realne wzrosty wydatków eksploatacyjnych rzędu <strong>400-600 PLN rocznie</strong> w średniej wielkości domu jednorodzinnym.
                    </div>
                </div>
            </div>

            <!-- Pytanie 5 -->
            <div class="rk-faq-item" data-viz="viz-flush">
                <button class="rk-faq-question" aria-expanded="false">
                    Czy mogę sam dolać glikol do starej instalacji?
                    <div class="rk-faq-icon">
                        <svg width="16" height="16" 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">
                        <strong>Kategorycznie zabrania się</strong> chaotycznego dolewania koncentratu glikolu do pracujących starych układów wodnych. Środki powierzchniowo czynne zawarte w glikolu natychmiast oderwą stare złogi biologiczne i osady kamienne z rur, co błyskawicznie zablokuje rotametry i wymiennik ciepła. Proces przejścia z <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">wody demineralizowanej</a> na glikol bezwzględnie wymaga uprzedniego chemicznego płukania instalacji stacjami asystującymi.
                    </div>
                </div>
            </div>

        </div>

        <!-- Prawa strona: Dynamiczny Wizualizator -->
        <div class="rk-faq-visualizer">
            <div class="rk-viz-card">
                <div class="rk-viz-title">Panel Diagnostyczny</div>
                
                <div class="rk-viz-svg-container">
                    
                    <!-- VIZ 1: PEX (Active by default) -->
                    <svg class="rk-viz-svg active" id="viz-pex" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="30" fill="none" stroke="#e2e8f0" stroke-width="8"/>
                        <circle cx="50" cy="50" r="30" fill="none" stroke="#10b981" stroke-width="8" class="anim-pex-shield" stroke-dasharray="20 10"/>
                        <text x="50" y="55" font-size="14" font-weight="900" fill="#0f172a" text-anchor="middle">PEX</text>
                    </svg>

                    <!-- VIZ 2: pH -->
                    <svg class="rk-viz-svg" id="viz-ph" viewBox="0 0 100 100">
                        <path d="M 20 50 A 30 30 0 0 1 80 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                        <path d="M 20 50 A 30 30 0 0 1 50 20" fill="none" stroke="#ef4444" stroke-width="8" stroke-linecap="round"/>
                        <line x1="50" y1="50" x2="50" y2="25" stroke="#334155" stroke-width="4" stroke-linecap="round" class="anim-ph-needle"/>
                        <circle cx="50" cy="50" r="6" fill="#0f172a"/>
                    </svg>

                    <!-- VIZ 3: Toxicity -->
                    <svg class="rk-viz-svg" id="viz-tox" viewBox="0 0 100 100">
                        <!-- Shield/Leaf -->
                        <path d="M 50 15 C 70 30 70 60 50 85 C 30 60 30 30 50 15" fill="#10b981" opacity="0.2"/>
                        <path d="M 50 15 C 70 30 70 60 50 85 C 30 60 30 30 50 15" fill="none" stroke="#10b981" stroke-width="4" stroke-linejoin="round" class="anim-leaf"/>
                        <text x="50" y="55" font-size="20" font-weight="900" fill="#047857" text-anchor="middle">PG</text>
                    </svg>

                    <!-- VIZ 4: Bills -->
                    <svg class="rk-viz-svg" id="viz-bill" viewBox="0 0 100 100">
                        <line x1="20" y1="80" x2="80" y2="80" stroke="#94a3b8" stroke-width="2"/>
                        <line x1="20" y1="80" x2="20" y2="20" stroke="#94a3b8" stroke-width="2"/>
                        <path d="M 25 70 L 40 60 L 55 65 L 75 30" fill="none" stroke="#ef4444" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" class="anim-chart-line"/>
                        <polygon points="70,30 75,30 75,35" fill="#ef4444"/>
                    </svg>

                    <!-- VIZ 5: Flush -->
                    <svg class="rk-viz-svg" id="viz-flush" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="25" fill="none" stroke="#0ea5e9" stroke-width="4"/>
                        <path d="M 50 15 L 50 25 M 50 75 L 50 85 M 15 50 L 25 50 M 75 50 L 85 50 M 25 25 L 32 32 M 75 75 L 68 68 M 25 75 L 32 68 M 75 25 L 68 32" stroke="#0ea5e9" stroke-width="4" stroke-linecap="round" class="anim-gear"/>
                        <circle cx="50" cy="50" r="10" fill="#0ea5e9"/>
                    </svg>

                </div>

                <div class="rk-viz-desc" id="rk-viz-text">
                    Pełna odporność chemiczna polimeru.
                </div>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-glycol-faq-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Moduł FAQ oraz jego znaczniki strukturalne JSON-LD stanowią własność Projekt-Ogrzewania.pl. Wykryto próbę uruchomienia na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Accordionu i Wizualizatora
    const faqItems = document.querySelectorAll('.rk-faq-item');
    const svgs = document.querySelectorAll('.rk-viz-svg');
    const vizText = document.getElementById('rk-viz-text');

    // Słownik opisów dla wizualizacji
    const vizDescriptions = {
        'viz-pex': 'Pełna odporność chemiczna polimeru.',
        'viz-ph': 'Kwasowy odczyn trawi mosiądz (pH < 7).',
        'viz-tox': 'Wybieraj tylko nietoksyczny wariant PG.',
        'viz-bill': 'Spadek SCOP = wyższe koszty prądu.',
        'viz-flush': 'Konieczne chemiczne płukanie instalacji.'
    };

    // Kolory badge'a diagnostycznego
    const vizColors = {
        'viz-pex': { bg: 'var(--rk-faq-primary-light)', color: 'var(--rk-faq-primary)' },
        'viz-ph': { bg: '#fef2f2', color: '#ef4444' },
        'viz-tox': { bg: '#ecfdf5', color: '#10b981' },
        'viz-bill': { bg: '#fef2f2', color: '#ef4444' },
        'viz-flush': { bg: 'var(--rk-faq-primary-light)', color: 'var(--rk-faq-primary)' }
    };

    // Ustawienie wysokości pierwszego (aktywnego) elementu przy ładowaniu
    const firstAnswer = faqItems[0].querySelector('.rk-faq-answer');
    firstAnswer.style.maxHeight = firstAnswer.scrollHeight + "px";

    faqItems.forEach(item => {
        const questionBtn = item.querySelector('.rk-faq-question');
        
        questionBtn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie
            faqItems.forEach(el => {
                el.classList.remove('active');
                el.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                el.querySelector('.rk-faq-answer').style.maxHeight = null;
            });

            // Ukryj wszystkie SVG
            svgs.forEach(svg => svg.classList.remove('active'));

            if (!isActive) {
                // Otwórz kliknięty
                item.classList.add('active');
                questionBtn.setAttribute('aria-expanded', 'true');
                const answer = item.querySelector('.rk-faq-answer');
                answer.style.maxHeight = answer.scrollHeight + "px";

                // Pokaż odpowiednie SVG
                const targetViz = item.getAttribute('data-viz');
                const svgToShow = document.getElementById(targetViz);
                if(svgToShow) {
                    // Wymuszenie reflow dla restartu animacji (opcjonalne, ale dodaje efektu)
                    void svgToShow.offsetWidth;
                    svgToShow.classList.add('active');
                }

                // Aktualizuj tekst i kolor panelu diagnostycznego
                vizText.innerText = vizDescriptions[targetViz];
                vizText.style.backgroundColor = vizColors[targetViz].bg;
                vizText.style.color = vizColors[targetViz].color;
            } else {
                // Jeśli użytkownik zamknął aktywny element, przywracamy domyślny wizualizator (np. pierwszy)
                const defaultViz = 'viz-pex';
                document.getElementById(defaultViz).classList.add('active');
                vizText.innerText = vizDescriptions[defaultViz];
                vizText.style.backgroundColor = vizColors[defaultViz].bg;
                vizText.style.color = vizColors[defaultViz].color;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-exp-primary: #0f172a;
    --rk-exp-accent: #0ea5e9;
    --rk-exp-accent-dark: #0369a1;
    --rk-exp-bg: #ffffff;
    --rk-exp-surface: #f8fafc;
    --rk-exp-water: #38bdf8;
    --rk-exp-water-light: #e0f2fe;
    --rk-exp-glycol: #f59e0b;
    --rk-exp-glycol-light: #fef3c7;
    --rk-exp-text: #475569;
    --rk-exp-border: #e2e8f0;
}

.rk-expert-verdict-wrapper {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

.rk-expert-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-expert-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-exp-primary);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-expert-header p {
    font-size: 15px;
    color: var(--rk-exp-text);
    margin: 0;
}

/* Interaktywny selektor scenariusza */
.rk-exp-scenario-nav {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-exp-nav-btn {
    padding: 12px 24px;
    border-radius: 12px;
    border: 2px solid var(--rk-exp-border);
    background: #ffffff;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-exp-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-exp-nav-btn:hover {
    background: var(--rk-exp-surface);
    border-color: #cbd5e1;
}

.rk-exp-nav-btn.active[data-scenario="home"] {
    background: var(--rk-exp-water-light);
    border-color: var(--rk-exp-water);
    color: var(--rk-exp-accent-dark);
    box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.2);
}

.rk-exp-nav-btn.active[data-scenario="holiday"] {
    background: var(--rk-exp-glycol-light);
    border-color: var(--rk-exp-glycol);
    color: #b45309;
    box-shadow: 0 10px 15px -3px rgba(245, 158, 11, 0.2);
}

/* Kontener Cytatu */
.rk-expert-tip-container {
    background: var(--rk-exp-surface);
    border-radius: 20px;
    padding: 35px 40px;
    display: flex;
    gap: 35px;
    align-items: center;
    border-left: 8px solid var(--rk-exp-accent);
    position: relative;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.05);
    transition: all 0.5s ease;
    overflow: hidden;
}

.rk-expert-tip-container.state-holiday {
    border-left-color: var(--rk-exp-glycol);
    background: #fffbeb;
}

/* Animowane tło (Subtelne SVG) */
.rk-exp-bg-icon {
    position: absolute;
    right: -20px;
    bottom: -20px;
    width: 200px;
    height: 200px;
    opacity: 0.05;
    transition: all 0.5s ease;
    pointer-events: none;
}

.rk-expert-tip-container.state-holiday .rk-exp-bg-icon {
    color: var(--rk-exp-glycol);
    transform: rotate(-15deg) scale(1.1);
}

.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 2;
}

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

/* Odznaka na zdjęciu */
.rk-expert-badge {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: all 0.4s;
}

.rk-anim-badge-icon {
    animation: pulseBadgeIcon 2s infinite alternate;
}

@keyframes pulseBadgeIcon {
    from { transform: scale(0.9); }
    to { transform: scale(1.1); }
}

.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 2;
}

.rk-expert-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 900;
    color: var(--rk-exp-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-exp-water-light);
    padding: 4px 10px;
    border-radius: 6px;
    transition: all 0.4s;
}

.rk-expert-tip-container.state-holiday .rk-expert-label {
    color: #b45309;
    background: #fef3c7;
}

.rk-expert-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-exp-primary);
    font-style: italic;
    font-weight: 600;
    margin: 0;
    transition: opacity 0.3s;
}

.rk-expert-signature {
    display: block;
    margin-top: 15px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-exp-text);
}

.rk-expert-signature span {
    color: var(--rk-exp-primary);
    font-weight: 900;
}

/* Elementy ukryte do podmiany JS */
.rk-hidden-content { display: none; }

@media (max-width: 768px) {
    .rk-expert-tip-container { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-expert-photo-wrap { margin-bottom: 10px; }
    .rk-exp-scenario-nav { flex-direction: column; padding: 0 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-werdykt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Werdykt końcowy inżyniera: Glikol czy woda zdemineralizowana?",
    "description": "Ostateczna rekomendacja Roberta Kucharskiego. Glikol to rozwiązanie do zadań specjalnych (domki letniskowe). W domach całorocznych należy stosować wodę demineralizowaną z inhibitorem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "W standardowym, całorocznym domu jednorodzinnym izolowanym według standardu WT2021, stosowanie glikolu jest poważnym błędem sztuki inżynierskiej i ekonomicznym samobójstwem. Obniża sprawność przekazywania ciepła i dławi wydajność pomp obiegowych.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "url": "https://projekt-ogrzewania.pl"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-werdykt",
    "name": "Wytyczne projektowe dla nośników ciepła (Podsumowanie)",
    "description": "Zestawienie rekomendacji wyboru czynnika roboczego w zależności od profilu termicznego budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "woda zdemineralizowana z inhibitorem korozji",
      "glikol w domu letniskowym",
      "spadek efektywności pompy ciepła glikol",
      "ekonomiczne samobójstwo w instalacji CO",
      "wytyczne WT2021 ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Analiza wskaźników efektywności ekonomicznej (ROI) oraz bezpieczeństwa hydraulicznego instalacji płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Całoroczny (WT2021): Bezwzględnie woda zdemineralizowana + inhibitor. Gwarantuje maksymalną wydajność pomp obiegowych i ciepła.",
        "Obiekt Okresowy (Letniskowy/Garaż): Konieczny wodny roztwór glikolu propylenowego (25-35%) w celu ochrony przed rozerwaniem rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-werdykt",
    "name": "Interaktywny Werdykt Eksperta",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Moduł decyzyjny podsumowujący artykuł, pozwalający na wyświetlenie spersonalizowanej rekomendacji inżynierskiej zależnie od typu posiadanego obiektu budowlanane.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-verdict-wrapper" id="rk-verdict-app">
    
    <div class="rk-expert-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></svg>
            Ostateczny Werdykt Inżyniera
        </h2>
        <p>Wybierz typ swojego budynku, aby sprawdzić, co ostatecznie polecam zastosować w Twojej instalacji.</p>
    </div>

    <div class="rk-exp-scenario-nav">
        <button class="rk-exp-nav-btn active" data-scenario="home">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
            Dom całoroczny (Standard)
        </button>
        <button class="rk-exp-nav-btn" data-scenario="holiday">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Dom letniskowy / Garaż
        </button>
    </div>
    
    <div class="rk-expert-tip-container" id="rk-quote-box">
        
        <svg class="rk-exp-bg-icon" id="rk-bg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
            <path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path>
        </svg>

        <div class="rk-expert-photo-wrap">
            <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-expert-photo" loading="lazy">
            <div class="rk-expert-badge" id="rk-badge-icon">
                <svg class="rk-anim-badge-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0ea5e9" stroke-width="3" stroke-linecap="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label" id="rk-quote-label">Rekomendacja dla domu całorocznego</span>
            <p class="rk-expert-text" id="rk-quote-text">
                "W standardowym, całorocznym domu jednorodzinnym izolowanym według standardu WT2021, stosowanie glikolu jest <strong>poważnym błędem sztuki inżynierskiej i ekonomicznym samobójstwem</strong>. Obniża sprawność przekazywania ciepła i dławi wydajność pomp obiegowych. Zleć profesjonaliście napełnienie układu <strong style="color:var(--rk-exp-accent);">wodą zdemineralizowaną z inhibitorem korozji</strong>. Taki układ posłuży bezawaryjnie przez dekady."
            </p>
            <span class="rk-expert-signature"><span>Robert Kucharski</span>, Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <div class="rk-hidden-content" id="data-holiday">
        <span class="rk-hidden-label">Rekomendacja dla obiektów okresowych</span>
        <div class="rk-hidden-text">
            "W domkach letniskowych, halach czy nieogrzewanych garażach glikol to <strong>narzędzie do zadań specjalnych</strong>. Tutaj priorytetem nie jest walka o każdy ułamek sprawności SCOP, ale ochrona rur przed rozsadzeniem przez mróz. Należy bezwzględnie zastosować <strong style="color:#b45309;">nietoksyczny glikol propylenowy (PG)</strong> i pamiętać, by układ został zaprojektowany z uwzględnieniem większych oporów hydraulicznych i gęstszego rozstawu wężownic."
        </div>
        <div class="rk-hidden-svg">
            <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path>
        </div>
        <div class="rk-hidden-badge-color">#f59e0b</div>
        <div class="rk-hidden-badge-path">
            <line x1="12" y1="2" x2="12" y2="22"></line><line x1="22" y1="12" x2="2" y2="12"></line><line x1="19.07" y1="4.93" x2="4.93" y2="19.07"></line><line x1="19.07" y1="19.07" x2="4.93" y2="4.93"></line>
        </div>
    </div>

    <div class="rk-hidden-content" id="data-home">
        <span class="rk-hidden-label">Rekomendacja dla domu całorocznego</span>
        <div class="rk-hidden-text">
            "W standardowym, całorocznym domu jednorodzinnym izolowanym według standardu WT2021, stosowanie glikolu jest <strong>poważnym błędem sztuki inżynierskiej i ekonomicznym samobójstwem</strong>. Obniża sprawność przekazywania ciepła i dławi wydajność pomp obiegowych. Zleć profesjonaliście napełnienie układu <strong style="color:var(--rk-exp-accent);">wodą zdemineralizowaną z inhibitorem korozji</strong>. Taki układ posłuży bezawaryjnie przez dekady."
        </div>
        <div class="rk-hidden-svg">
            <path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path>
        </div>
        <div class="rk-hidden-badge-color">#0ea5e9</div>
        <div class="rk-hidden-badge-path">
            <polyline points="20 6 9 17 4 12"></polyline>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H2/H3 w komunikacie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-verdict-app');
        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; display:block;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d; line-height:1.6; max-width: 500px; margin: 0 auto;">Rekomendacja ekspercka oraz struktura danych JSON-LD jest własnością Projekt-Ogrzewania.pl. Wykryto nieautoryzowane użycie.</p>
                </div>
            `;
        }
        return;
    }

    // 2. Logika Zmiany Scenariusza
    const btns = document.querySelectorAll('.rk-exp-nav-btn');
    const quoteBox = document.getElementById('rk-quote-box');
    const quoteLabel = document.getElementById('rk-quote-label');
    const quoteText = document.getElementById('rk-quote-text');
    const bgIcon = document.getElementById('rk-bg-icon');
    const badgeIcon = document.querySelector('.rk-anim-badge-icon');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Animacja wygaszania
            quoteText.style.opacity = 0;
            
            setTimeout(() => {
                // Aktywacja przycisku
                btns.forEach(b => b.classList.remove('active'));
                this.classList.add('active');

                const scenario = this.getAttribute('data-scenario');
                const dataSrc = document.getElementById('data-' + scenario);

                // Zmiana stylu kontenera
                if (scenario === 'holiday') {
                    quoteBox.classList.add('state-holiday');
                } else {
                    quoteBox.classList.remove('state-holiday');
                }

                // Podmiana danych z ukrytego kontenera
                quoteLabel.innerHTML = dataSrc.querySelector('.rk-hidden-label').innerHTML;
                quoteText.innerHTML = dataSrc.querySelector('.rk-hidden-text').innerHTML;
                bgIcon.innerHTML = dataSrc.querySelector('.rk-hidden-svg').innerHTML;
                
                // Podmiana ikony w badge'u
                badgeIcon.style.stroke = dataSrc.querySelector('.rk-hidden-badge-color').innerText;
                badgeIcon.innerHTML = dataSrc.querySelector('.rk-hidden-badge-path').innerHTML;

                // Animacja pojawiania
                quoteText.style.opacity = 1;
            }, 300);
        });
    });
});
</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-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 35px;
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.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: 700px;
    margin: 0 auto;
}

.rk-sum-quote-mark {
    font-size: 80px;
    color: rgba(255,255,255,0.1);
    position: absolute;
    top: -30px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

.rk-sum-quote-text {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.4;
    color: #ffffff;
    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); }

/* Interaktywny Symulator Decyzji */
.rk-sum-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-decision-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    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 ease;
    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="pro"] {
    background: var(--rk-sum-green-light);
    border-color: var(--rk-sum-green);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-decision-btn.active[data-choice="amateur"] {
    background: #fef2f2;
    border-color: var(--rk-sum-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-decision-icon {
    width: 48px;
    height: 48px;
    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="pro"] .rk-decision-icon {
    background: var(--rk-sum-green);
    color: #ffffff;
}

.rk-decision-btn.active[data-choice="amateur"] .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;
}

/* Wynik symulacji */
.rk-sim-result {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 30px;
    align-items: center;
    padding: 30px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-anim-svg {
    width: 100%;
    height: auto;
    max-width: 120px;
    margin: 0 auto;
}

.anim-element {
    transform-origin: center;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.state-pro .anim-element { fill: var(--rk-sum-green); stroke: #047857; animation: pulseDrop 2s infinite; }
.state-amateur .anim-element { fill: transparent; stroke: var(--rk-sum-red); stroke-dasharray: 10 10; animation: freezePipe 0.8s forwards infinite alternate; }

@keyframes pulseDrop {
    0% { filter: drop-shadow(0 0 0 rgba(16, 185, 129, 0.4)); transform: scale(0.95) translateY(0); }
    50% { filter: drop-shadow(0 0 15px rgba(16, 185, 129, 0.8)); transform: scale(1.05) translateY(-5px); }
    100% { filter: drop-shadow(0 0 0 rgba(16, 185, 129, 0.4)); transform: scale(0.95) translateY(0); }
}

@keyframes freezePipe {
    0% { stroke-dashoffset: 20; opacity: 1; transform: scale(1); filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0.8));}
    100% { stroke-dashoffset: 0; opacity: 0.7; transform: scale(0.95); filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.8));}
}

.rk-result-content h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

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

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

/* 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: 24px;
    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: 600px;
    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 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-massive:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

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

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

@media (max-width: 768px) {
    .rk-sum-header, .rk-sum-interactive, .rk-sum-cta-box { padding: 35px 25px; }
    .rk-decision-wrapper { grid-template-columns: 1fr; gap: 10px; }
    .rk-sim-result { grid-template-columns: 1fr; text-align: center; padding: 25px; }
    .rk-anim-svg { max-width: 80px; }
    .rk-sum-quote-text { font-size: 18px; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Werdykt końcowy inżyniera – Glikol czy woda w podłogówce?",
    "description": "Ostateczny werdykt: kiedy stosować glikol, a kiedy wodę zdemineralizowaną z inhibitorem w instalacji ogrzewania podłogowego. Wpływ na koszty i sprawność układu.",
    "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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset",
    "name": "Porównanie efektywności: Woda zdemineralizowana vs Glikol Propylenowy",
    "description": "Zestawienie parametrów hydraulicznych i termodynamicznych wpływających na sprawność pompy ciepła i koszty eksploatacji ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "glikol w podłogówce",
      "woda zdemineralizowana z inhibitorem",
      "sprawność pompy obiegowej",
      "koszty eksploatacji ogrzewania",
      "standard WT2021"
    ],
    "measurementTechnique": "Analiza różnic w pojemności cieplnej, lepkości i wpływu na wydajność hydrauliczną układu grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Woda zdemineralizowana z inhibitorem: Gwarantuje maksymalną sprawność przekazywania ciepła i żywotność urządzeń w domach całorocznych.",
        "Glikol Propylenowy: Generuje spadki efektywności, dławi rotametry. Zalecany wyłącznie do zadań specjalnych (domy letniskowe, hale)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp",
    "name": "Symulator Czynnika Grzewczego: Woda vs Glikol",
    "description": "Interaktywne narzędzie obrazujące różnice pomiędzy zastosowaniem wody zdemineralizowanej a glikolu w standardowej instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-sum-container" id="glikol-sum-app">
    <!-- Nagłówek i Cytat -->
    <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="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Werdykt Końcowy
        </div>
        <div class="rk-sum-quote-box">
            <div class="rk-sum-quote-mark">"</div>
            <p class="rk-sum-quote-text">
                Glikol w podłogówce to narzędzie do zadań specjalnych, a nie uniwersalny dodatek. W standardowym domu całorocznym to inżynierski błąd i ekonomiczne samobójstwo.
            </p>
            <div class="rk-sum-author">
                <span>Robert Kucharski</span> | CEO HVAC
            </div>
        </div>
    </div>

    <!-- Symulator Standardu -->
    <div class="rk-sum-interactive">
        <div class="rk-decision-wrapper" id="simDecisionsGlikol">
            <button class="rk-decision-btn active" data-choice="pro">
                <div class="rk-decision-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                </div>
                <h4 class="rk-decision-title">Woda Demineralizowana</h4>
            </button>
            <button class="rk-decision-btn" data-choice="amateur">
                <div class="rk-decision-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon><line x1="12" y1="2" x2="12" y2="22"></line><line x1="22" y1="9.27" x2="2" y2="9.27"></line></svg>
                </div>
                <h4 class="rk-decision-title">Mieszanka Glikolowa</h4>
            </button>
        </div>

        <div class="rk-sim-result state-pro" id="simResultBoxGlikol">
            <svg class="rk-anim-svg" viewBox="0 0 100 100">
                <!-- SVG animacja dla wody (Kropla) -->
                <path class="anim-element water-drop" d="M50 15 C 50 15, 20 50, 20 70 C 20 86.5 33.5 100 50 100 C 66.5 100 80 86.5 80 70 C 80 50, 50 15, 50 15 Z" stroke-width="4" stroke-linejoin="round"/>
                <polyline class="anim-check" points="35 65 45 75 65 45" fill="none" stroke="#ffffff" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" />
            </svg>
            <div class="rk-result-content" id="simResultContentGlikol">
                <h4 style="color: var(--rk-sum-green);">Maksymalna wydajność układu</h4>
                <p>Napełnienie instalacji <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">wodą zdemineralizowaną z inhibitorem korozji</a> gwarantuje brak dławienia na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> i stabilną, wysoce efektywną pracę <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</p>
                <p>To rozwiązanie dedykowane dla standardowych domów z izolacją WT2021. Prawidłowo obliczona instalacja posłuży bezawaryjnie kilkadziesiąt lat.</p>
            </div>
        </div>
    </div>

    <!-- Mocne CTA -->
    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Optymalizuj zyski i tnij koszty eksploatacji</h3>
        <p class="rk-sum-cta-text">
            Chcesz wiedzieć, kiedy inwestycja w technologie grzewcze ma sens matematyczny? Poznaj wyliczenia, które pomogą Ci podjąć opłacalne decyzje instalacyjne na ten rok.
        </p>
        <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" class="rk-btn-massive">
            SPRAWDŹ REALNY ZWROT Z INWESTYCJI
            <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>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('glikol-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Kontener podsumowujący oraz struktura JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Decyzji
    const btns = document.querySelectorAll('#simDecisionsGlikol .rk-decision-btn');
    const resultBox = document.getElementById('simResultBoxGlikol');
    const resultContent = document.getElementById('simResultContentGlikol');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana aktywnych przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const choice = this.getAttribute('data-choice');

            // Aktualizacja wizualizacji
            if (choice === 'pro') {
                resultBox.className = 'rk-sim-result state-pro';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-green);">Maksymalna wydajność układu</h4>
                    <p>Napełnienie instalacji <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">wodą zdemineralizowaną z inhibitorem korozji</a> gwarantuje brak dławienia na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> i stabilną, wysoce efektywną pracę <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</p>
                    <p>To rozwiązanie dedykowane dla standardowych domów z izolacją WT2021. Prawidłowo obliczona instalacja posłuży bezawaryjnie kilkadziesiąt lat.</p>
                `;
                resultBox.querySelector('.anim-element').setAttribute('d', 'M50 15 C 50 15, 20 50, 20 70 C 20 86.5 33.5 100 50 100 C 66.5 100 80 86.5 80 70 C 80 50, 50 15, 50 15 Z'); // Kropla
                resultBox.querySelector('.anim-check').style.display = 'block';
            } else {
                resultBox.className = 'rk-sim-result state-amateur';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-red);">Utrata sprawności i wyższe koszty</h4>
                    <p>Mieszanka glikolowa obniża zdolność przekazywania ciepła o 15% i zmusza do podniesienia temperatury na źródle ciepła, drastycznie zawyżając <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" style="color: var(--rk-sum-red);">rachunki za prąd z pompy ciepła</a>.</p>
                    <p>Dodatkowo zmusza inwestora do wymiany drogiego czynnika co 5-8 lat. Rozwiązanie to stosuj tylko do budynków letniskowych, narażonych na zamarznięcie.</p>
                `;
                resultBox.querySelector('.anim-element').setAttribute('d', 'M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z'); // Tarcza pękająca
                resultBox.querySelector('.anim-check').style.display = 'none';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-res-dark: #0f172a;
    --rk-res-blue: #0ea5e9;
    --rk-res-blue-dark: #0369a1;
    --rk-res-accent: #f59e0b;
    --rk-res-bg: #ffffff;
    --rk-res-surface: #f8fafc;
    --rk-res-border: #e2e8f0;
    --rk-res-text: #334155;
    --rk-res-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.rk-resource-hub {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-res-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-res-border);
    box-shadow: var(--rk-res-shadow);
    overflow: hidden;
}

/* Header */
.rk-res-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-res-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-res-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
}

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

/* Interaktywny Selektor Materiałów */
.rk-res-workspace {
    padding: 40px;
    background: #ffffff;
}

.rk-res-toggle-nav {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
}

.rk-res-btn {
    padding: 14px 28px;
    border-radius: 14px;
    border: 2px solid var(--rk-res-border);
    background: #ffffff;
    cursor: pointer;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-res-text);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-res-btn:hover {
    border-color: var(--rk-res-blue);
    background: var(--rk-res-surface);
}

.rk-res-btn.active {
    background: var(--rk-res-blue);
    border-color: var(--rk-res-blue);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.3);
}

/* Panele Zawartości */
.rk-res-panel {
    display: none;
    animation: resFadeIn 0.5s ease-out forwards;
}

.rk-res-panel.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

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

/* Wizualizacja Dokumentu */
.rk-res-visual {
    background: var(--rk-res-surface);
    border-radius: 20px;
    padding: 30px;
    position: relative;
    border: 1px solid var(--rk-res-border);
    display: flex;
    justify-content: center;
}

.rk-svg-doc {
    width: 100%;
    max-width: 220px;
    filter: drop-shadow(0 15px 20px rgba(0,0,0,0.1));
}

.anim-line { stroke-dasharray: 100; stroke-dashoffset: 100; animation: drawLine 2s forwards; }
@keyframes drawLine { to { stroke-dashoffset: 0; } }

/* Treść Techniczna */
.rk-res-info h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-res-dark);
    margin: 0 0 15px 0;
}

.rk-res-info p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-res-text);
    margin-bottom: 20px;
}

.rk-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.rk-feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-res-dark);
    margin-bottom: 12px;
}

.rk-feature-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-res-blue);
}

/* Download Buttons */
.rk-download-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-res-dark);
    color: #ffffff;
    text-decoration: none;
    padding: 18px 35px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.2);
}

.rk-download-link:hover {
    background: var(--rk-res-blue-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(3, 105, 161, 0.3);
}

/* Sekcja Dataset / ROI */
.rk-res-footer {
    padding: 30px 45px;
    background: var(--rk-res-surface);
    border-top: 1px solid var(--rk-res-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-res-meta {
    font-size: 13px;
    color: var(--rk-res-muted);
    font-weight: 600;
}

.rk-res-meta strong { color: var(--rk-res-dark); }

@media (max-width: 768px) {
    .rk-res-panel.active { grid-template-columns: 1fr; text-align: center; }
    .rk-res-toggle-nav { flex-direction: column; }
    .rk-res-visual { order: -1; }
    .rk-download-link { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#article-hub",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/"
    },
    "headline": "Centrum Wiedzy o Glikolu: Infografika i Przewodnik Inżynierski PDF",
    "description": "Zestaw profesjonalnych materiałów edukacyjnych opracowanych przez Roberta Kucharskiego. Pobierz infografikę stężeń oraz pełny podręcznik eksploatacji instalacji glikolowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Glikol-w-ogrzewaniu-podlogowym.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": "2025-09-10",
    "dateModified": "2026-05-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#dataset-materialy",
    "name": "Baza Parametrów Eksploatacyjnych Glikolu MPG 2026",
    "description": "Strukturyzowane dane techniczne dotyczące temperatur krzepnięcia, lepkości kinematycznej oraz spadków sprawności cieplnej zawarte w plikach PDF i WebP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela stężeń glikolu propylenowego",
      "przewodność cieplna glikolu mpg",
      "spadek sprawności podłogówki o 15%",
      "instrukcja napełniania instalacji co",
      "norma PN-EN 12828 wytyczne"
    ],
    "measurementTechnique": "Analiza laboratoryjna roztworów glikolowych MPG w funkcji temperatury pracy układu CO (20-60°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Glikol 30%: Ochrona do -14°C, spadek przewodności o 10%.",
        "Glikol 35%: Ochrona do -20°C, wzrost oporów o 20%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/#webapp-hub",
    "name": "Interaktywny Eksplorator Zasobów Inżynierskich",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne pozwalające na natychmiastowy dostęp do wiedzy eksperckiej, symulację korzyści z pobrania dokumentacji oraz weryfikację zgodności z normą PN-EN 12828.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-resource-hub" id="rk-resources-app">
    
    <div class="rk-res-header">
        <h2>Pobierz Kompletny Przewodnik Inżynierski</h2>
        <p>Zintegrowany pakiet wiedzy: interaktywna infografika dla szybkiej analizy oraz pełna dokumentacja techniczna PDF dla Twojej instalacji. Sprawdź twarde dane przed podjęciem decyzji.</p>
    </div>

    <div class="rk-res-workspace">
        
        <div class="rk-res-toggle-nav">
            <button class="rk-res-btn active" data-target="panel-infographic">
                <span>🖼️</span> Infografika Ekspercka
            </button>
            <button class="rk-res-btn" data-target="panel-pdf">
                <span>📄</span> Poradnik Techniczny (PDF)
            </button>
        </div>

        <div class="rk-res-panel active" id="panel-infographic">
            <div class="rk-res-visual">
                <svg class="rk-svg-doc" viewBox="0 0 100 140">
                    <rect x="10" y="10" width="80" height="120" rx="5" fill="#fff" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="20" y="30" width="60" height="40" rx="2" fill="#e0f2fe"/>
                    <line x1="20" y1="85" x2="80" y2="85" stroke="#cbd5e1" stroke-width="4" class="anim-line"/>
                    <line x1="20" y1="100" x2="60" y2="100" stroke="#cbd5e1" stroke-width="4" class="anim-line" style="animation-delay: 0.5s;"/>
                    <circle cx="50" cy="50" r="10" fill="none" stroke="#0ea5e9" stroke-width="3"/>
                </svg>
            </div>
            <div class="rk-res-info">
                <h3>Szybka diagnoza dla inwestora</h3>
                <p>Opracowana przeze mnie infografika pozwala w 30 sekund zrozumieć, czy Twój dom potrzebuje ochrony glikolowej. Zawiera kluczowy wykres sprawności.</p>
                <ul class="rk-feature-list">
                    <li class="rk-feature-item"><div class="rk-feature-dot"></div> Tabela stężeń vs temperatura</li>
                    <li class="rk-feature-item"><div class="rk-feature-dot"></div> Diagnoza spadku przewodności cieplnej</li>
                    <li class="rk-feature-item"><div class="rk-feature-dot"></div> Lista 3 krytycznych błędów serwisowych</li>
                </ul>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Glikol-w-ogrzewaniu-podlogowym.webp" target="_blank" class="rk-download-link">
                    POBIERZ INFOGRAFIKĘ (WEBP)
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/></svg>
                </a>
            </div>
        </div>

        <div class="rk-res-panel" id="panel-pdf">
            <div class="rk-res-visual">
                <svg class="rk-svg-doc" viewBox="0 0 100 140">
                    <rect x="10" y="10" width="80" height="120" rx="5" fill="#1e293b" stroke="#334155" stroke-width="2"/>
                    <text x="25" y="45" fill="#ffffff" font-size="12" font-weight="900">PDF</text>
                    <rect x="25" y="60" width="50" height="4" rx="2" fill="#0ea5e9"/>
                    <rect x="25" y="75" width="50" height="4" rx="2" fill="#334155"/>
                    <rect x="25" y="90" width="30" height="4" rx="2" fill="#334155"/>
                </svg>
            </div>
            <div class="rk-res-info">
                <h3>Wytyczne projektowe (Full PDF)</h3>
                <p>Kompletne opracowanie techniczne dla instalatorów i projektantów. Zawiera konkretne wyliczenia ubytku wydajności hydraulicznej o 11%.</p>
                <ul class="rk-feature-list">
                    <li class="rk-feature-item"><div class="rk-feature-dot" style="background:#f59e0b"></div> Pełna zgodność z normą PN-EN 12828</li>
                    <li class="rk-feature-item"><div class="rk-feature-dot" style="background:#f59e0b"></div> Korekta OZC dla rozstawu 10 cm</li>
                    <li class="rk-feature-item"><div class="rk-feature-dot" style="background:#f59e0b"></div> Protokół weryfikacji pH i inhibitorów</li>
                </ul>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Glikol-w-ogrzewaniu-podlogowym.pdf" target="_blank" class="rk-download-link" style="background: var(--rk-res-blue-dark)">
                    POBIERZ PEŁNY PORADNIK (PDF)
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/></svg>
                </a>
            </div>
        </div>

    </div>

    <div class="rk-res-footer">
        <div class="rk-res-meta">
            Ostatnia aktualizacja: <strong>09.05.2026</strong> | Norma: <strong>PN-EN 12828</strong>
        </div>
        <div class="rk-res-meta">
            Projektant: <a href="https://projekt-ogrzewania.pl/" style="color:var(--rk-res-blue); text-decoration:none;">Robert Kucharski</a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H2/H3 w komunikacie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-resources-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛡️</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny Hub Zasobów oraz warstwa Invisible Data są własnością intelektualną serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełączania Paneli
    const btns = document.querySelectorAll('.rk-res-btn');
    const panels = document.querySelectorAll('.rk-res-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Active Button
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Active Panel
            const target = this.getAttribute('data-target');
            panels.forEach(p => {
                p.classList.remove('active');
                if (p.id === target) p.classList.add('active');
            });
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">Glikol w ogrzewaniu podłogowym – prawda i mity, które musi znać każdy inwestor.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>System mokry czy suchy w wodnym ogrzewaniu podłogowym – który wybrać?</title>
		<link>https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 12 May 2025 15:20:28 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty instalacji]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[System mokry]]></category>
		<category><![CDATA[System suchy]]></category>
		<category><![CDATA[błędy instalatorów]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[porównanie systemów]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[system mokry]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wodne ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2591</guid>

					<description><![CDATA[<p>System mokry czy suchy w wodnym ogrzewaniu podłogowym to jedna z kluczowych decyzji przy projektowaniu instalacji grzewczej. W naszym szczegółowym przewodniku znajdziesz nie tylko porównanie obu technologii, ale także praktyczne wskazówki, analizy kosztów, dobór materiałów i najczęstsze błędy wykonawcze. Dowiedz się, który system sprawdzi się w Twoim domu i jak uniknąć kosztownych pomyłek przy inwestycji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">System mokry czy suchy w wodnym ogrzewaniu podłogowym – który wybrać?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Wodne ogrzewanie podłogowe</strong> to jeden z najwygodniejszych i najbardziej energooszczędnych sposobów na ogrzewanie domu. Jednak przed jego montażem trzeba podjąć kluczową decyzję: <em>system mokry czy suchy</em>? Każdy z nich ma inne właściwości, zastosowanie i wymagania instalacyjne. W tym artykule porównujemy oba rozwiązania, aby pomóc Ci wybrać najlepszą opcję dla Twojego domu.</p>



<h2 class="wp-block-heading">Jak działa wodne ogrzewanie podłogowe?</h2>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe polega na rozprowadzaniu ciepła za pomocą rur wypełnionych wodą, ukrytych pod posadzką. Dzieli się na dwa główne systemy:</p>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">System mokry</a></strong> – rury zatopione są w warstwie wylewki betonowej.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">System suchy</a></strong> – rury układane są w gotowych panelach lub matach izolacyjnych.</li>
</ul>



<p class="wp-block-paragraph">Oba rozwiązania mają swoje zalety, ale różnią się pod względem kosztów, czasu montażu i efektywności cieplnej.</p>



<h2 class="wp-block-heading">System mokry – tradycyjne rozwiązanie z wysoką bezwładnością cieplną.</h2>



<h3 class="wp-block-heading">Czym charakteryzuje się system mokry?</h3>



<p class="wp-block-paragraph">W systemie mokrym rury grzewcze zalane są jastrychem (wylewką cementową lub anhydrytową), który pełni rolę akumulatora ciepła. Dzięki temu podłoga długo się nagrzewa, ale też długo oddaje ciepło.</p>



<h3 class="wp-block-heading">Zalety systemu mokrego.</h3>



<ul class="wp-block-list">
<li>Wysoka efektywność energetyczna – idealny do współpracy z pompą ciepła.</li>



<li>Równomierne rozprowadzenie ciepła – brak odczuwalnych stref zimna i gorąca.</li>



<li>Trwałość – wylewka chroni rury przed uszkodzeniami mechanicznymi.</li>



<li>Kompatybilność z różnymi źródłami ciepła (np. kotły gazowe, pompy ciepła).</li>
</ul>



<h3 class="wp-block-heading">Wady systemu mokrego.</h3>



<ul class="wp-block-list">
<li>Długi czas montażu – schnięcie wylewki może trwać nawet 4 tygodnie.</li>



<li>Grubsza warstwa podłogi (ok. 7–15 cm) – może wymagać podniesienia progów.</li>



<li>Wyższe koszty materiałowe i robocizny.</li>
</ul>



<h3 class="wp-block-heading">Gdzie sprawdzi się system mokry?</h3>



<ul class="wp-block-list">
<li>Nowe budownictwo – gdzie można zaplanować grubszą podłogę.</li>



<li>Dom z niskotemperaturowym źródłem ciepła (np. pompa ciepła).</li>



<li>Pomieszczenia, w których zależy nam na stabilnym ogrzewaniu.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład</strong>: W domu o powierzchni 100 m², przy rozstawie rur co 15 cm, potrzeba ok. 600–700 mb rury. Zobacz: <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">ile rury na m² ogrzewania podłogowego</a></p>



<h2 class="wp-block-heading">System suchy – lekki i szybki w montażu</h2>



<h3 class="wp-block-heading">Czym jest system suchy?</h3>



<p class="wp-block-paragraph">W systemie suchym rury układa się w:</p>



<ul class="wp-block-list">
<li>Płytach styropianowych z rowkami,</li>



<li>Matach aluminiowych,</li>



<li>Specjalnych panelach drewnianych.</li>
</ul>



<p class="wp-block-paragraph">Nie wymaga wylewki, dzięki czemu montaż jest znacznie szybszy.</p>



<h3 class="wp-block-heading">Zalety systemu suchego.</h3>



<ul class="wp-block-list">
<li>Szybki montaż – brak konieczności czekania na schnięcie jastrychu.</li>



<li>Cienka warstwa podłogi (2–5 cm) – idealny do remontów.</li>



<li>Lepsza reakcja na zmiany temperatury – szybciej się nagrzewa.</li>



<li>Niższy koszt instalacji w porównaniu do systemu mokrego.</li>
</ul>



<h3 class="wp-block-heading">Wady systemu suchego.</h3>



<ul class="wp-block-list">
<li>Mniejsza bezwładność cieplna – wymaga częstszej pracy kotła.</li>



<li>Mniej równomierne rozprowadzenie ciepła niż w systemie mokrym.</li>



<li>Wrażliwość na uszkodzenia mechaniczne.</li>
</ul>



<h3 class="wp-block-heading">Gdzie najlepiej zastosować system suchy?</h3>



<ul class="wp-block-list">
<li>Remonty starych budynków – gdzie nie można podnieść podłogi.</li>



<li>Domy z lekką konstrukcją stropu.</li>



<li>Łazienki i pomieszczenia wymagające szybkiego nagrzewania.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład</strong>: W systemie suchym, przy rozstawie rur co 10 cm, na 1 m² potrzeba ok. 10 mb rury, co daje ok. 1000 mb na 100 m².</p>



<h2 class="wp-block-heading">O co najczęściej pytają inwestorzy?</h2>



<h3 class="wp-block-heading">Czy można zrobić ogrzewanie podłogowe bez wylewki?</h3>



<p class="wp-block-paragraph">Tak, to właśnie główna zaleta systemu suchego. W takim przypadku rury układane są w specjalnych matach lub kasetach aluminiowych, bez potrzeby stosowania jastrychu.</p>



<h3 class="wp-block-heading">Jaka grubość podłogi w systemie suchym?</h3>



<p class="wp-block-paragraph">Systemy suche wymagają znacznie cieńszej konstrukcji – całkowita grubość warstw z rurami i wykończeniem wynosi zazwyczaj 4–6 cm. To istotne w starszych budynkach i remontach.</p>



<h3 class="wp-block-heading">Czy ogrzewanie podłogowe bez wylewki jest efektywne?</h3>



<p class="wp-block-paragraph">Jest bardziej responsywne, ale ma mniejszą bezwładność cieplną. Szybko się nagrzewa i szybko stygnie. Idealne do łazienek, kuchni i pomieszczeń czasowo użytkowanych.</p>



<h3 class="wp-block-heading">Czy płyty do suchego systemu są dostępne w Polsce?</h3>



<p class="wp-block-paragraph">Tak. Najczęściej stosuje się płyty gipsowo-włóknowe z frezowanymi rowkami, maty EPS z folią aluminiową lub systemowe kasety aluminiowe.</p>



<h3 class="wp-block-heading">Czy system suchy można stosować na drewniany strop?</h3>



<p class="wp-block-paragraph">Tak, to jedno z jego najczęstszych zastosowań. Lekka konstrukcja nie obciąża stropu, a układanie nie wymaga ciężkiego sprzętu.</p>



<h2 class="wp-block-heading">Porady praktyczne przed wyborem systemu.</h2>



<p class="wp-block-paragraph"><strong>1. Oceń wysokość dostępną pod podłogą.</strong><br>System mokry wymaga 7–15 cm, suchy 2–5 cm. W remontowanych domach często tylko suchy jest realny.</p>



<p class="wp-block-paragraph"><strong>2. Sprawdź rodzaj stropu.</strong><br>Jeśli masz lekki drewniany strop, system suchy jest bezpieczniejszym wyborem.</p>



<p class="wp-block-paragraph"><strong>3. Zadbaj o odpowiednie wykończenie podłogi.</strong><br>Do obu systemów nadają się płytki i panele z niskim oporem cieplnym. Unikaj litego drewna.</p>



<p class="wp-block-paragraph"><strong>4. Upewnij się, że masz projekt.</strong><br>Brak dokumentacji to prosta droga do błędów montażowych. Skorzystaj z: <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a></p>



<p class="wp-block-paragraph"><strong>5. Porównaj koszty eksploatacji.</strong><br>System mokry jest bardziej efektywny przy pompie ciepła. Suchy lepiej reaguje w łazienkach lub pokojach gościnnych.</p>



<h2 class="wp-block-heading">Jakie materiały stosuje się w obu systemach?</h2>



<h3 class="wp-block-heading">System mokry:</h3>



<ul class="wp-block-list">
<li><strong>Rury wielowarstwowe PEX/PERT</strong>: np. <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowa-kisan-redart-pe-rt-al-pe/">KISAN RedART</a> lub <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowa-kan-therm-bluepert-16x2-0/">KAN-therm BluePERT</a></li>



<li><strong>Folia aluminiowa i izolacja EPS/XPS</strong>: np. <a href="https://projekt-ogrzewania.pl/produkt/folia-do-ogrzewania-podlogowego-laminat-metalizowany-z-rastrem/">folia metalizowana z rastrem</a></li>



<li><strong>Taśmy i spinki montażowe</strong>: np. <a href="https://projekt-ogrzewania.pl/produkt/tasma-przyscienna-z-pianki-poliuretanowej-do-ogrzewania-podlogowego/">taśma brzegowa</a>, <a href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">spinki do takera</a></li>
</ul>



<h3 class="wp-block-heading">System suchy:</h3>



<ul class="wp-block-list">
<li><strong>Płyty gipsowo-włóknowe lub styropianowe z kanałami</strong></li>



<li><strong>Płyty aluminiowe lub kasety rozprowadzające ciepło</strong></li>



<li><strong>Systemowe maty montażowe i płyty suchego jastrychu</strong></li>
</ul>



<h2 class="wp-block-heading">Koszty wykonania i eksploatacji – porównanie</h2>



<p class="wp-block-paragraph">Zobacz szczegóły w artykule: <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">ile kosztuje 100 m² ogrzewania podłogowego</a></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Koszt instalacji (materiały + robocizna)</th><th>System mokry</th><th>System suchy</th></tr><tr><td>Średnio za m²</td><td>150–250 zł</td><td>120–180 zł</td></tr><tr><td>Koszt robocizny</td><td>wyższy</td><td>niższy</td></tr><tr><td>Koszt eksploatacji</td><td>niższy</td><td>wyższy (częstsze cykle grzania)</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Błędy, których warto unikać</h2>



<ul class="wp-block-list">
<li>Układanie systemu mokrego w starych budynkach z cienkim stropem.</li>



<li>Brak projektu instalacji: zobacz <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">czy trzeba mieć projekt?</a></li>



<li>Stosowanie litego drewna jako wykończenia podłogi</li>



<li>Zbyt cienka warstwa izolacji termicznej – zobacz <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja brzegowa i dylatacje</a></li>
</ul>



<h2 class="wp-block-heading">Kiedy nie warto stosować ogrzewania podłogowego?</h2>



<ul class="wp-block-list">
<li>W nieogrzewanych pomieszczeniach gospodarczych.</li>



<li>W domach z bardzo wysokimi stropami, gdzie dominują straty pionowe.</li>



<li>W pomieszczeniach, gdzie nie można zastosować izolacji podposadzkowej.</li>
</ul>



<p class="wp-block-paragraph">Zobacz więcej: <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a></p>



<h2 class="wp-block-heading"><strong>FAQ</strong>:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1747061406335"><strong class="schema-faq-question"><strong>Czy system mokry jest zawsze lepszy od suchego?</strong></strong> <p class="schema-faq-answer">Nie zawsze. Mokry sprawdza się w nowym budownictwie, a suchy lepiej w remontach i tam, gdzie liczy się niska wysokość podłogi.</p> </div> <div class="schema-faq-section" id="faq-question-1747061421357"><strong class="schema-faq-question"><strong>Ile kosztuje ogrzewanie podłogowe w systemie mokrym?</strong></strong> <p class="schema-faq-answer">Średnio od 150 do 250 zł za m² z materiałami i robocizną. Koszty zależą od metrażu i rodzaju wylewki.</p> </div> <div class="schema-faq-section" id="faq-question-1747061435817"><strong class="schema-faq-question"><strong>Czy suchy system nadaje się do łazienki?</strong></strong> <p class="schema-faq-answer">Tak, pod warunkiem zastosowania odpowiednich paneli lub płyt o dobrej przewodności cieplnej i odporności na wilgoć.</p> </div> <div class="schema-faq-section" id="faq-question-1747061447998"><strong class="schema-faq-question"><strong>Który system szybciej się nagrzewa?</strong></strong> <p class="schema-faq-answer">System suchy działa szybciej, ale też szybciej stygnie. System mokry nagrzewa się dłużej, ale długo oddaje ciepło.</p> </div> <div class="schema-faq-section" id="faq-question-1747061458160"><strong class="schema-faq-question"><strong>Czy do obu systemów potrzebny jest projekt?</strong></strong> <p class="schema-faq-answer">Tak, projekt zapewnia poprawne rozmieszczenie rur, dobór mocy i minimalizuje ryzyko błędów montażowych.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: który system wybrać?</h2>



<p class="wp-block-paragraph"><strong>Wybierz system mokry, jeśli:</strong></p>



<ul class="wp-block-list">
<li>Budujesz dom od podstaw,</li>



<li>Zależy Ci na wysokiej efektywności energetycznej,</li>



<li>Masz niskotemperaturowe źródło ciepła (np. pompa ciepła).</li>
</ul>



<p class="wp-block-paragraph"><strong>Wybierz system suchy, jeśli:</strong></p>



<ul class="wp-block-list">
<li>Robisz remont i nie chcesz podnosić podłogi,</li>



<li>Potrzebujesz szybkiego montażu,</li>



<li>Mieszkasz w domu z lekkim stropem.</li>
</ul>



<p class="wp-block-paragraph">Oba systemy mają swoje zastosowanie – kluczowe jest dopasowanie rozwiązania do Twoich potrzeb i warunków budowlanych. Jeśli masz wątpliwości, skonsultuj się z profesjonalnym projektantem, który pomoże podjąć najlepszą decyzję.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="E2Us4pO8LW"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=ZCPtYfaBnS#?secret=E2Us4pO8LW" data-secret="E2Us4pO8LW" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">System mokry czy suchy w wodnym ogrzewaniu podłogowym – który wybrać?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rura PERT do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 04 May 2025 08:20:51 +0000</pubDate>
				<category><![CDATA[Budownictwo]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Rury grzewcze]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogówki]]></category>
		<category><![CDATA[koszt rury pert]]></category>
		<category><![CDATA[montaż rur pert]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pert vs pex]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rura pert]]></category>
		<category><![CDATA[rura pert 16 mm]]></category>
		<category><![CDATA[rura pert do pompy ciepła]]></category>
		<category><![CDATA[rury do podłogówki]]></category>
		<category><![CDATA[systemy niskotemperaturowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2559</guid>

					<description><![CDATA[<p>Szukasz niezawodnych materiałów do ogrzewania podłogowego? Rura PERT do ogrzewania podłogowego to wybór łączący elastyczność, trwałość i oszczędność energii. W naszym artykule poznasz zalety rur PERT, koszty, wskazówki montażowe i sekrety efektywnego projektowania. Dowiedz się, jak rury do podłogówki PERT przewyższają PEX i miedź. Zamów na projekt-ogrzewania.pl i zyskaj darmowy projekt instalacji!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">Rura PERT do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> to kluczowy element nowoczesnych systemów grzewczych, ceniony za elastyczność, trwałość i efektywność energetyczną. W tym artykule omawiamy, dlaczego rury PERT są idealnym wyborem, jak je dobrać, montować i projektować system, aby zapewnić komfort cieplny. Poznaj koszty, porównania z PEX i miedzią oraz praktyczne wskazówki. </p>



<h2 class="wp-block-heading">Czym jest rura PERT i dlaczego warto ją wybrać?</h2>



<h3 class="wp-block-heading">Definicja i właściwości rury PERT.</h3>



<p class="wp-block-paragraph"><strong><em>Rura PERT</em> (polietylen termoplastyczny o podwyższonej odporności termicznej)</strong> to zaawansowany materiał do ogrzewania podłogowego. Jej unikalna struktura molekularna zapewnia elastyczność i odporność na temperatury do 95°C przy ciśnieniu 10 bar. Dzięki warstwie antydyfuzyjnej chroni instalację przed korozją, a higieniczność zapobiega osadzaniu się kamienia.</p>



<p class="wp-block-paragraph">Kluczowe cechy rur PERT:</p>



<ul class="wp-block-list">
<li><strong>Elastyczność</strong>: Idealna do układania pętli w układzie ślimakowym (<a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">instalacja w układzie ślimakowym</a>).</li>



<li><strong>Trwałość</strong>: Zgodność z normą EN ISO 15875 gwarantuje dekady bezawaryjnej pracy.</li>



<li><strong>Lekkość</strong>: Ułatwia transport i montaż w porównaniu do rur miedzianych.</li>
</ul>



<h3 class="wp-block-heading">Rura PERT vs PEX i miedź.</h3>



<p class="wp-block-paragraph">W porównaniu do rur PEX, <strong>rura PERT do ogrzewania podłogowego</strong> oferuje większą elastyczność, ułatwiając montaż. Rury miedziane są trwalsze, ale droższe i cięższe. PERT łączy przystępną cenę z doskonałymi parametrami, co czyni go liderem w systemach niskotemperaturowych, np. z pompami ciepła.</p>



<h2 class="wp-block-heading">Zalety rur PERT w podłogówce.</h2>



<h3 class="wp-block-heading">Efektywność energetyczna.</h3>



<p class="wp-block-paragraph">Rury PERT, zwłaszcza wielowarstwowe (np. PERT/AL/PERT), zapewniają równomierny rozkład ciepła, co zwiększa komfort cieplny i obniża rachunki za ogrzewanie. Są idealne do współpracy z pompami ciepła, oszczędzając energię.</p>



<h3 class="wp-block-heading">Trwałość i odporność.</h3>



<p class="wp-block-paragraph">Dzięki odporności na korozję i warstwie antydyfuzyjnej, rury PERT chronią instalację przed degradacją. Są też odporne na osadzanie się kamienia, co przedłuża żywotność systemu.</p>



<h3 class="wp-block-heading">Łatwy montaż rur PERT.</h3>



<p class="wp-block-paragraph">Elastyczność i długie zwoje (400–600 m) minimalizują łączniki, redukując ryzyko nieszczelności. Akcesoria, jak <a href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">spinka do styropianu</a>, przyspieszają instalację.</p>



<h2 class="wp-block-heading">Jak dobrać rurę PERT do instalacji?</h2>



<h3 class="wp-block-heading">Standardowe wymiary rur PERT.</h3>



<ul class="wp-block-list">
<li><strong>16 mm</strong>: Standard dla domów i mieszkań do 150 m², np. <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowa-kan-therm-bluepert-16x2-0/">rura PERT Kan-Therm BluePERT 16&#215;2</a>.</li>



<li><strong>20 mm</strong>: Dla większych obiektów, gdzie potrzebna jest większa przepustowość.</li>
</ul>



<h3 class="wp-block-heading">Rozstaw i zużycie rur.</h3>



<p class="wp-block-paragraph">Rozstaw rur zależy od strat ciepła:</p>



<ul class="wp-block-list">
<li><strong>5-10 cm</strong>: Przy ścianach zewnętrznych.</li>



<li><strong>10–15 cm</strong>: Standard w izolowanych pomieszczeniach (<a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur w ogrzewaniu podłogowym</a>).</li>



<li><strong>20-25 cm</strong>: W technicznych ( garaż, kotłownia) częściach domów.</li>
</ul>



<p class="wp-block-paragraph">Zużycie wynosi 6–10 m/m². Dla 30 m² z rozstawem 15 cm potrzeba 200–240 m rury. Skorzystaj z <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">kalkulatora zużycia rury</a>.</p>



<h3 class="wp-block-heading">Maksymalna długość pętli.</h3>



<p class="wp-block-paragraph">Pętla rury PERT 16 mm nie powinna przekraczać 100–120 m, aby uniknąć oporów hydraulicznych (<a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli</a>). Większe powierzchnie wymagają rozdzielacza.</p>



<h2 class="wp-block-heading">Dane techniczne rury PERT do ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> charakteryzuje się poniższymi parametrami technicznymi (na przykładzie standardowej rury 16&#215;2 mm):</p>



<ul class="wp-block-list">
<li><strong>Średnica zewnętrzna</strong>: 16 mm</li>



<li><strong>Grubość ścianki</strong>: 2 mm</li>



<li><strong>Średnica wewnętrzna</strong>: 12 mm</li>



<li><strong>Maksymalne ciśnienie robocze</strong>: 6–10 bar (w zależności od producenta)</li>



<li><strong>Maksymalna temperatura pracy</strong>: 95°C (krótkotrwale do 110°C)</li>



<li><strong>Minimalny promień gięcia</strong>: 5 x średnica zewnętrzna (ok. 80 mm)</li>



<li><strong>Współczynnik rozszerzalności liniowej</strong>: 0,18 mm/mK</li>



<li><strong>Warstwa antydyfuzyjna EVOH</strong>: tak (opcjonalnie w rurach PERT/EVOH i PERT/AL/PERT)</li>



<li><strong>Dostępne długości zwojów</strong>: 200 m, 400 m, 600 m</li>
</ul>



<p class="wp-block-paragraph">Rura spełnia wymagania normy <strong>EN ISO 15875</strong> dotyczącej systemów z tworzyw sztucznych do instalacji wodnych i grzewczych.</p>



<h2 class="wp-block-heading">Tabela porównawcza rur do ogrzewania podłogowego.</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Własność</strong></th><th><strong>Rura PERT</strong></th><th><strong>Rura PEX</strong></th><th><strong>Rura miedziana</strong></th></tr></thead><tbody><tr><td><strong>Materiał</strong></td><td>Polietylen termoplastyczny</td><td>Polietylen sieciowany</td><td>Miedź</td></tr><tr><td><strong>Elastyczność</strong></td><td>Wysoka, łatwy montaż</td><td>Średnia (PEX-B mniej elastyczny)</td><td>Niska, trudny montaż</td></tr><tr><td><strong>Waga</strong></td><td>Lekka</td><td>Średnia</td><td>Ciężka</td></tr><tr><td><strong>Odporność na temperaturę</strong></td><td>Do 95°C</td><td>Do 95°C</td><td>Do 200°C</td></tr><tr><td><strong>Koszt</strong></td><td>Średni, przystępny</td><td>Średni do wysokiego</td><td>Wysoki</td></tr><tr><td><strong>Zastosowanie</strong></td><td>Podłogówka, systemy niskotemperaturowe</td><td>Szerokie, w tym wysokie temperatury</td><td>Uniwersalne, droższe</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Koszty rur PERT – ile zapłacisz?</h2>



<p class="wp-block-paragraph">Koszt rury PERT zależy od marki i specyfikacji:</p>



<ul class="wp-block-list">
<li><strong>Rura PERT 16 mm</strong>: Ok. 4 zł/m (np. <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowe-tweetop-pert-ii-al-pert-ii-16x2/">rura Tweetop PERT</a>).</li>



<li><strong>Rura PERT 20 mm</strong>: Ok. 6 zł/m.</li>
</ul>



<p class="wp-block-paragraph">Dla domu 100 m² z rozstawem 15 cm potrzeba ok. 600–800 m rury, czyli koszt 2400–3200 zł. Dodatkowe akcesoria (spinki, rozdzielacze) to ok. 500–1000 zł. Skorzystaj z promocji na <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">darmowy projekt ogrzewania podłogowego</a> przy zakupie materiałów!</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego z rurami PERT.</h2>



<p class="wp-block-paragraph">Profesjonalny projekt to klucz do efektywności. Powinien uwzględniać:</p>



<ul class="wp-block-list">
<li><strong>Układ pętli</strong>: Ślimakowy dla równomiernego rozkładu ciepła.</li>



<li><strong>Straty ciepła</strong>: Zgodne z normą EN 1264.</li>



<li><strong>Rury</strong>: Wielowarstwowe PERT.</li>
</ul>



<p class="wp-block-paragraph">Zamów projekt na <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">projekt-ogrzewania.pl</a> i skorzystaj z darmowej oferty przy zakupie materiałów.</p>



<h2 class="wp-block-heading">Montaż rur PERT – praktyczne wskazówki.</h2>



<h3 class="wp-block-heading">Przygotowanie podłoża.</h3>



<p class="wp-block-paragraph">Użyj:</p>



<ul class="wp-block-list">
<li><strong>Płyty EPS 100/200</strong>: Izolacja termiczna (<a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">płyta styropianowa EPS 100</a>).</li>



<li><strong>Folia z rastrem</strong>: Precyzyjne układanie pętli.</li>



<li><strong>Taśma przyscienna</strong>: Redukcja strat ciepła.</li>
</ul>



<h3 class="wp-block-heading">Układanie rur.</h3>



<ul class="wp-block-list">
<li>Zachowaj promień gięcia 80 mm dla rury 16 mm.</li>



<li>Użyj spinek do mocowania.</li>



<li>Wykonaj próbę szczelności.</li>
</ul>



<h3 class="wp-block-heading">Wylewka.</h3>



<p class="wp-block-paragraph">Zalewaj rury wylewką anhydrytową/cementową (6,5–8 cm nad rurą). Szczegóły w <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodniku po wylewkach</a>.</p>



<h2 class="wp-block-heading">Przykłady zastosowań rur PERT.</h2>



<ol class="wp-block-list">
<li><strong>Dom 120 m²</strong>: Rury PERT 16 mm, rozstaw 15 cm, 2 pętle po 90 m na salon (30 m²). Zużycie: 800 m, koszt: 1600–3200 zł.</li>



<li><strong>Podgrzewany podjazd</strong>: Rury PERT 20 mm.</li>



<li><strong>Mieszkanie 60 m²</strong>: Jedna pętla 80 m, rozstaw 20 cm, koszt rur: 400–800 zł.</li>
</ol>



<h2 class="wp-block-heading">Trendy: Rury PERT w domach pasywnych.</h2>



<p class="wp-block-paragraph">Rury PERT są popularne w domach pasywnych dzięki niskotemperaturowym systemom grzewczym. Ich elastyczność i efektywność wspierają minimalizację strat energii.</p>



<h2 class="wp-block-heading">FAQ.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1746344852167"><strong class="schema-faq-question">Czym różni się rura PERT od rury PEX w ogrzewaniu podłogowym?</strong> <p class="schema-faq-answer">Rura PERT jest bardziej elastyczna, ułatwiając montaż w układzie ślimakowym. Oba materiały są trwałe, ale PERT lepiej sprawdza się w niskotemperaturowych systemach, np. z pompami ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1746344863219"><strong class="schema-faq-question">Ile kosztuje rura PERT do ogrzewania podłogowego?</strong> <p class="schema-faq-answer">Koszt rury PERT 16 mm to ok. 2–4 zł/m, np. rura Kan-Therm BluePERT. Dla 100 m² potrzeba 600–800 m, czyli 2400–3200 zł.</p> </div> <div class="schema-faq-section" id="faq-question-1746344881236"><strong class="schema-faq-question">Jak dobrać średnicę rury PERT do instalacji?</strong> <p class="schema-faq-answer">Rura PERT 16 mm to standard dla domów do 150 m². Dla większych obiektów używa się rur 20 mm, zapewniających większą przepustowość.</p> </div> <div class="schema-faq-section" id="faq-question-1746344896829"><strong class="schema-faq-question">Ile rury PERT potrzeba na metr kwadratowy?</strong> <p class="schema-faq-answer">Zużycie wynosi 6–10 m/m², w zależności od rozstawu (10–25 cm). Dla 30 m² z rozstawem 15 cm potrzeba 200–240 m. Sprawdź <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">kalkulator</a> zużycia rury.</p> </div> <div class="schema-faq-section" id="faq-question-1746344941144"><strong class="schema-faq-question">Czy rura PERT wymaga projektu instalacji?</strong> <p class="schema-faq-answer">Tak, profesjonalny projekt optymalizuje rozmieszczenie pętli i efektywność. Zamów na projekt-ogrzewania.pl i zyskaj darmowy projekt przy zakupie!</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph"><strong>Rura PERT do ogrzewania podłogowego</strong> to idealny wybór dla efektywnych i trwałych systemów grzewczych. Dzięki elastyczności, odporności na korozję i przystępnej cenie zapewnia komfort na lata. Zamów <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a> i projekt na <a href="https://projekt-ogrzewania.pl/">projekt-ogrzewania.pl</a> i skorzystaj z darmowego projektu przy zakupie materiałów!</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="0LjKCohBR1"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=C7AnipsQ9M#?secret=0LjKCohBR1" data-secret="0LjKCohBR1" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">Rura PERT do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Jaka jest optymalna temperatura ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 18:05:03 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[materiały podłogowe]]></category>
		<category><![CDATA[norma en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2385</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale jak je dobrze ustawić? W naszym artykule znajdziesz praktyczne porady, wyliczenia i przykłady, które pomogą Ci ustalić idealne parametry dla Twojego domu. Dowiedz się, jaka jest optymalna temperatura ogrzewania podłogowego, by cieszyć się ciepłem w salonie, sypialni czy łazience, oszczędzając przy tym na rachunkach. Poznaj wpływ materiałów podłogowych i normy, które warto znać!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</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-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #38bdf8;
    --rk-intro-red: #ef4444;
}

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

/* Hero Header Area */
.rk-intro-hero {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #000000 100%);
    padding: 50px;
    color: #ffffff;
    position: relative;
}

.rk-intro-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: var(--rk-intro-accent);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

.rk-intro-hero h2 {
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    margin: 0 0 25px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-intro-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
    border-left: 4px solid var(--rk-intro-blue);
    padding-left: 20px;
}

.rk-intro-hook strong {
    color: #ffffff;
}

/* Two Column Layout */
.rk-intro-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-intro-bg);
}

/* Left Column - The Meat */
.rk-intro-main {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-intro-border);
}

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

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

.rk-quick-answer {
    background: var(--rk-intro-surface);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-intro-border);
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 30px;
}

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

.rk-qa-text h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
}

.rk-qa-text .rk-qa-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

/* Right Column - Agenda/Interactive Menu */
.rk-intro-agenda {
    padding: 40px;
    background: var(--rk-intro-surface);
}

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

.rk-agenda-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-agenda-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 16px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-agenda-item:hover {
    border-color: var(--rk-intro-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.08);
    transform: translateX(5px);
}

.rk-agenda-item.active {
    background: var(--rk-intro-blue);
    border-color: var(--rk-intro-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-agenda-item-header {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
}

.rk-agenda-item.active .rk-agenda-item-header {
    color: #ffffff;
}

.rk-agenda-icon {
    color: var(--rk-intro-blue);
    transition: color 0.3s;
}

.rk-agenda-item.active .rk-agenda-icon {
    color: #ffffff;
}

.rk-agenda-desc {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255,255,255,0.9);
    margin-top: 0;
    transition: all 0.3s ease;
}

.rk-agenda-item.active .rk-agenda-desc {
    max-height: 100px;
    opacity: 1;
    margin-top: 10px;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-intro-grid { grid-template-columns: 1fr; }
    .rk-intro-main { border-right: none; border-bottom: 1px solid var(--rk-intro-border); padding: 30px 25px; }
    .rk-intro-hero { padding: 40px 25px; }
    .rk-intro-hero h2 { font-size: 28px; }
    .rk-intro-agenda { padding: 30px 25px; }
    .rk-quick-answer { flex-direction: column; text-align: center; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jaka jest optymalna temperatura ogrzewania podłogowego? Przewodnik inżynierski.",
    "description": "Przewymiarowana pompa ciepła i pękające płytki to efekt ustawiania podłogówki na oko. Dowiedz się jak poprawnie obliczyć i dobrać 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.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-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Kluczowe parametry temperaturowe dla systemów płaszczyznowych 2026",
    "description": "Zakres wiedzy technicznej poruszanej w głównym artykule, obejmujący parametry zasilania, opory cieplne posadzek oraz wpływ na sprawność pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jaka jest optymalna temperatura ogrzewania podłogowego",
      "temperatura zasilania podłogówki",
      "norma PN-EN 1264",
      "współczynnik COP pompy ciepła",
      "obliczenia OZC"
    ],
    "measurementTechnique": "Synteza norm inżynieryjnych PN-EN 1264 i krzywych grzewczych nowoczesnych pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozwiązanie inżynieryjne: Optymalna temperatura zasilania wynosi zazwyczaj 30°C–35°C.",
        "Limity normatywne: Max 29°C na powierzchni posadzki w strefach mieszkalnych.",
        "Aspekt ekonomiczny: Analiza wpływu każdego stopnia zasilania na wysokość rachunków."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-wstep-nawigacja",
    "name": "Interaktywny Asystent Przewodnika HVAC",
    "description": "Moduł nawigacyjny wprowadzający czytelnika w strukturę inżynierskiego artykułu, pozwalający na szybkie odnalezienie odpowiedzi dotyczących algorytmów obliczeniowych OZC i krzywych grzewczych.",
    "applicationCategory": "NavigationTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rkIntroApp">
    <div class="rk-intro-hero">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Baza Wiedzy HVAC 2026
        </div>
        <h2>Jaka jest optymalna temperatura ogrzewania podłogowego?</h2>
        <p class="rk-intro-hook">
            Przewymiarowana pompa ciepła, pękające płytki i rachunki za prąd wyższe o 20% – to ostateczny efekt ustawiania podłogówki &#8222;na oko&#8221;. Z tego przewodnika dowiesz się, <strong>dlaczego zasilanie nie powinno przekraczać 35°C</strong> i jak poprawnie zbilansować dom.
        </p>
    </div>

    <div class="rk-intro-grid">
        <div class="rk-intro-main">
            <h3>Inżynieria zamiast domysłów</h3>
            <p>
                Większość inwestorów traktuje temperaturę na sterowniku jak pokrętło w starym grzejniku. To fatalny błąd. Nowoczesne ogrzewanie płaszczyznowe wymaga precyzyjnego zbilansowania mocy źródła (pompy ciepła, kotła), przepływu hydraulicznego (rotametrów) oraz oporu cieplnego posadzki.
            </p>
            <p>
                W tym artykule odrzucamy lanie wody. Skupiamy się na twardych danych, normach (PN-EN 1264) i wyliczeniach OZC, które zabezpieczą Twój dom przed kosztownymi awariami układu grzewczego i destrukcją wylewki.
            </p>

            <div class="rk-quick-answer">
                <div class="rk-qa-icon">
                    <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><polyline points="12 16 12 12 12 8"></polyline><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-qa-text">
                    <h4>Szybka Odpowiedź</h4>
                    <div class="rk-qa-val">Zasilanie: 30°C &#8211; 35°C</div>
                    <div style="font-size: 13px; color: var(--rk-intro-muted); margin-top: 4px; font-weight: 600;">(Temperatura powierzchni max 29°C)</div>
                </div>
            </div>
        </div>

        <div class="rk-intro-agenda">
            <div class="rk-agenda-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"><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>
                W tym przewodniku:
            </div>
            
            <div class="rk-agenda-list" id="rkAgendaList">
                
                <div class="rk-agenda-item active">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" 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="M2 20h20M5 20V9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v11M9 20v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4"></path></svg>
                        Wpływ na rachunki
                    </div>
                    <div class="rk-agenda-desc">
                        Zobaczysz, jak każdy stopień na zasilaniu uderza we wskaźnik COP pompy ciepła i podbija Twoje opłaty za prąd.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" 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="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Norma PN-EN 1264
                    </div>
                    <div class="rk-agenda-desc">
                        Poznasz rygorystyczne limity temperatury dla posadzek, aby uniknąć pękania wylewki i problemów z krążeniem.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" 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="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>
                        Algorytm projektowy
                    </div>
                    <div class="rk-agenda-desc">
                        Zrozumiesz matematykę OZC. Pokażemy Ci, jak wylicza się przepływ masy (l/h) względem wymaganej mocy cieplnej.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        Najczęstsze błędy
                    </div>
                    <div class="rk-agenda-desc">
                        Odkryjesz, jak dławienie rotametrów i zbyt długie pętle niszczą hydraulikę Twojego systemu.
                    </div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const agendaItems = document.querySelectorAll('.rk-agenda-item');
    
    agendaItems.forEach(item => {
        item.addEventListener('click', function() {
            // Remove active class from all
            agendaItems.forEach(i => i.classList.remove('active'));
            // Add to clicked
            this.classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-norm-dark: #0f172a;
    --rk-norm-panel: #1e293b;
    --rk-norm-bg: #ffffff;
    --rk-norm-surface: #f8fafc;
    --rk-norm-border: #e2e8f0;
    --rk-norm-text: #334155;
    --rk-norm-muted: #64748b;
    
    /* State Colors */
    --rk-norm-green: #10b981;
    --rk-norm-green-glow: rgba(16, 185, 129, 0.2);
    --rk-norm-blue: #0ea5e9;
    --rk-norm-blue-glow: rgba(14, 165, 233, 0.2);
    --rk-norm-orange: #f59e0b;
    --rk-norm-orange-glow: rgba(245, 158, 11, 0.2);
    --rk-norm-red: #ef4444;
    --rk-norm-red-glow: rgba(239, 68, 68, 0.2);
    
    --rk-current-color: var(--rk-norm-green);
    --rk-current-glow: var(--rk-norm-green-glow);
}

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

/* Header */
.rk-norm-header {
    background: linear-gradient(135deg, var(--rk-norm-dark) 0%, #000000 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-current-color);
    transition: border-color 0.5s ease;
}

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

.rk-norm-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    line-height: 1.6;
}

/* Interactive Slider Area (New Layout) */
.rk-norm-interactive {
    padding: 50px;
    background: var(--rk-norm-bg);
    border-bottom: 1px solid var(--rk-norm-border);
    text-align: center;
}

.rk-norm-val-display {
    font-size: 56px;
    font-weight: 900;
    color: var(--rk-current-color);
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.5s ease;
    display: inline-flex;
    align-items: flex-start;
    justify-content: center;
}

.rk-norm-val-unit {
    font-size: 24px;
    font-weight: 700;
    margin-top: 5px;
    margin-left: 2px;
}

.rk-norm-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    background: var(--rk-current-glow);
    color: var(--rk-current-color);
    border-radius: 100px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 40px;
    transition: all 0.5s ease;
}

/* Slider Track SVG Visualizer */
.rk-norm-track-wrap {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    padding-bottom: 30px;
}

.rk-track-svg {
    width: 100%;
    height: 40px;
    overflow: visible;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    position: absolute;
    top: 5px;
    left: 0;
    margin: 0;
    background: transparent;
    outline: none;
    z-index: 5;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-current-color);
    cursor: pointer;
    box-shadow: 0 4px 15px var(--rk-current-glow);
    transition: border-color 0.5s ease, transform 0.2s;
    margin-top: -2px;
}

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

.rk-range-input::-moz-range-thumb {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-current-color);
    cursor: pointer;
    box-shadow: 0 4px 15px var(--rk-current-glow);
    transition: border-color 0.5s ease, transform 0.2s;
}

/* Data Cards Grid */
.rk-norm-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 40px 50px;
    background: var(--rk-norm-surface);
}

.rk-norm-card {
    background: #ffffff;
    border: 1px solid var(--rk-norm-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.5s;
    display: flex;
    flex-direction: column;
}

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

.rk-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-norm-border);
}

.rk-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--rk-current-glow);
    color: var(--rk-current-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.5s ease;
}

.rk-card-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-norm-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-card-content {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-norm-text);
    min-height: 110px;
}

.rk-card-content strong {
    color: var(--rk-norm-dark);
}

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

/* Animations for SVG Status */
.anim-pulse-warn {
    animation: rkNormPulse 1.5s infinite alternate;
}
@keyframes rkNormPulse {
    0% { filter: drop-shadow(0 0 2px var(--rk-norm-red)); }
    100% { filter: drop-shadow(0 0 10px var(--rk-norm-red)); }
}

/* State Classes controlled by JS */
.state-safe { --rk-current-color: var(--rk-norm-green); --rk-current-glow: var(--rk-norm-green-glow); }
.state-living { --rk-current-color: var(--rk-norm-blue); --rk-current-glow: var(--rk-norm-blue-glow); }
.state-bath { --rk-current-color: var(--rk-norm-orange); --rk-current-glow: var(--rk-norm-orange-glow); }
.state-danger { --rk-current-color: var(--rk-norm-red); --rk-current-glow: var(--rk-norm-red-glow); }

.state-danger .rk-norm-card { border-color: rgba(239, 68, 68, 0.3); }

/* Mobile */
@media (max-width: 850px) {
    .rk-norm-cards { grid-template-columns: 1fr; padding: 30px 25px; }
    .rk-norm-header, .rk-norm-interactive { padding: 30px 25px; }
    .rk-norm-val-display { font-size: 48px; }
    .rk-card-content { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-norma-1264",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jakie są dopuszczalne temperatury powierzchni podłogi według normy PN-EN 1264?",
    "description": "Rygorystyczne limity temperatury powierzchni podłogi (max 29°C w salonie, 35°C w łazience). Dowiedz się jak uniknąć zjawiska ciężkich nóg i pękania wylewek.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-limity-temperatur",
    "name": "Limity temperatur powierzchni podłogi wg PN-EN 1264",
    "description": "Zestawienie maksymalnych dopuszczalnych temperatur powierzchni posadzki dla zdrowia, komfortu i trwałości materiałów budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma obliczeń ogrzewania podłogowego en 1264",
      "temperatura powierzchni podłogi",
      "czy ogrzewanie podłogowe jest zdrowe",
      "pękanie wylewki anhydrytowej",
      "podłogi drewniane vs panele laminowane"
    ],
    "measurementTechnique": "Określenie fizycznych limitów termicznych skóry stóp (komfort cieplny) oraz parametrów kurczliwości i dylatacji wylewek cementowych/anhydrytowych przy podwyższonych temperaturach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podłogi drewniane i panele: Max 26-27°C (ryzyko rozsychani i szczelin).",
        "Strefy przebywania stałego (Salon, Sypialnia): Max 29°C.",
        "Strefy brzegowe i łazienki: Max 35°C.",
        "Powyżej 35°C: Ryzyko zdrowotne (ciężkie nogi) oraz degradacja wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-norm",
    "name": "Asystent Zgodności Normy PN-EN 1264",
    "description": "Interaktywny panel analizujący w czasie rzeczywistym wpływ nastawionej temperatury podłogi na zdrowie użytkowników i integralność strukturalną materiałów wykończeniowych.",
    "applicationCategory": "HealthAndFitnessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-norm-container state-safe" id="rkNormApp">
    <div class="rk-norm-header">
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi według normy PN-EN 1264?</h2>
        <p>Norma PN-EN 1264 określa rygorystyczne limity. Projekt instalacji musi zapobiegać dyskomfortowi zdrowotnemu oraz degradacji materiałów wykończeniowych posadzki.</p>
    </div>

    <div class="rk-norm-interactive">
        <div class="rk-norm-val-display">
            <span id="rkNormVal">24</span>
            <span class="rk-norm-val-unit">°C</span>
        </div>
        
        <div class="rk-norm-status-badge" id="rkNormBadge">
            <svg id="rkNormIcon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
            <span id="rkNormStatus">Optymalna dla drewna i paneli</span>
        </div>

        <div class="rk-norm-track-wrap">
            <input type="range" min="20" max="40" step="1" value="24" class="rk-range-input" id="rkNormSlider" aria-label="Symulator temperatury posadzki">
            
            <svg class="rk-track-svg" viewBox="0 0 100 20" preserveAspectRatio="none">
                <line x1="0" y1="10" x2="100" y2="10" stroke="#e2e8f0" stroke-width="2" stroke-linecap="round"/>
                
                <line x1="35" y1="5" x2="35" y2="15" stroke="#94a3b8" stroke-width="1"/> <text x="35" y="24" font-size="4" fill="#94a3b8" text-anchor="middle">27°</text>
                
                <line x1="45" y1="5" x2="45" y2="15" stroke="#94a3b8" stroke-width="1"/> <text x="45" y="24" font-size="4" fill="#94a3b8" text-anchor="middle">29°</text>
                
                <line x1="75" y1="5" x2="75" y2="15" stroke="#ef4444" stroke-width="1"/> <text x="75" y="24" font-size="4" fill="#ef4444" text-anchor="middle">35°</text>
                
                <line x1="0" y1="10" x2="20" y2="10" stroke="var(--rk-current-color)" stroke-width="4" stroke-linecap="round" id="rkTrackProgress" style="transition: x2 0.1s;"/>
            </svg>
        </div>
    </div>

    <div class="rk-norm-cards">
        
        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-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 2l3 9h9l-7 5 3 9-8-6-8 6 3-9-7-5h9z"></path></svg>
                </div>
                <div class="rk-card-title">Dozwolone wykończenie</div>
            </div>
            <div class="rk-card-content" id="rkCardMat">
                W pełni bezpieczna temperatura. Idealna dla <strong>podłóg drewnianych</strong> oraz cienkich <strong>paneli laminowanych</strong>. Chroni materiał przed rozsychaniem i powstawaniem szczelin. <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Panele vs Drewno →</a>
            </div>
        </div>

        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-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="M9 11l3 3L22 4"></path><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"></path></svg>
                </div>
                <div class="rk-card-title">Strefa wg PN-EN 1264</div>
            </div>
            <div class="rk-card-content" id="rkCardZone">
                Zgodność ze standardem <strong>pomieszczeń mieszkalnych</strong> (salony, sypialnie). Zapewnia równomierne oddawanie ciepła. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Czytaj o normie 1264 →</a>
            </div>
        </div>

        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-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="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-card-title">Skutki i Zdrowie</div>
            </div>
            <div class="rk-card-content" id="rkCardHealth">
                Najwyższy komfort cieplny. Podłoga jest obojętna w dotyku (nie grzeje i nie ziębi), co jest fizjologicznie optymalne dla człowieka. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Wpływ na zdrowie →</a>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkNormSlider');
    const valDisplay = document.getElementById('rkNormVal');
    const trackProgress = document.getElementById('rkTrackProgress');
    const appContainer = document.getElementById('rkNormApp');
    
    // Status Badge Elements
    const badgeText = document.getElementById('rkNormStatus');
    const badgeIcon = document.getElementById('rkNormIcon');
    
    // Card Elements
    const cardMat = document.getElementById('rkCardMat');
    const cardZone = document.getElementById('rkCardZone');
    const cardHealth = document.getElementById('rkCardHealth');

    // Content Dictionary
    const contentDB = {
        safe: {
            cls: 'state-safe',
            badge: 'Optymalna dla drewna',
            icon: '<polyline points="20 6 9 17 4 12"></polyline>',
            mat: 'W pełni bezpieczna temperatura. Idealna dla <strong>podłóg drewnianych</strong> oraz cienkich <strong>paneli laminowanych</strong>. Chroni materiał przed rozsychaniem i powstawaniem szczelin. <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Panele vs Drewno →</a>',
            zone: 'Zgodność ze standardem <strong>pomieszczeń mieszkalnych</strong> (salony, sypialnie). Zapewnia równomierne oddawanie ciepła w centrum domu. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Czytaj o normie 1264 →</a>',
            health: 'Najwyższy komfort cieplny. Podłoga jest obojętna w dotyku (nie grzeje i nie ziębi w stopę), co jest fizjologicznie optymalne dla człowieka. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Wpływ na zdrowie →</a>'
        },
        living: {
            cls: 'state-living',
            badge: 'Limit Strefy Mieszkalnej',
            icon: '<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>',
            mat: 'Górna granica dla podłóg drewnianych. Dozwolone bez ograniczeń dla <strong>płytek ceramicznych</strong> i gresu.',
            zone: '<strong>Maksymalny próg normy (29°C)</strong> dla obszarów stałego przebywania ludzi. Zbliżanie się do tej wartości wymusza gęstszy rozstaw rur lub wyższe zasilanie.',
            health: 'Podłoga staje się wyczuwalnie ciepła. Bezpieczne dla krążenia, pod warunkiem, że nie utrzymuje się stale w okresie przejściowym.'
        },
        bath: {
            cls: 'state-bath',
            badge: 'Tylko Łazienka / Obrzeża',
            icon: '<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>',
            mat: 'Ryzyko rozwarstwienia drewna! W tej strefie dozwolone są wyłącznie <strong>materiały ceramiczne</strong>. Zastosowanie drewna doprowadzi do jego degradacji.',
            zone: 'Strefa dopuszczalna wyłącznie dla <strong>łazienek</strong> (ciepła posadzka dla bosych stóp) oraz <strong>stref brzegowych</strong> pod wielkimi oknami. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Czym jest strefa brzegowa? →</a>',
            health: 'Przyjemne dla stóp w mokrej łazience, ale na dłuższą metę męczące w salonie. Przyspiesza cyrkulację kurzu w powietrzu.'
        },
        danger: {
            cls: 'state-danger',
            badge: 'Błąd - Przekroczenie Normy!',
            icon: '<line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>',
            mat: 'Krytyczne naprężenia termiczne. Olbrzymie ryzyko <strong>pękania wylewek anhydrytowych i cementowych</strong>. Płytki mogą odspajać się od podłoża. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wytyczne wylewek →</a>',
            zone: '<strong>ABSOLUTNE PRZEKROCZENIE NORMY.</strong> Instalacja działa wadliwie lub brakuje w niej zaworu mieszającego obniżającego parametr z kotła. <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalne zasilanie →</a>',
            health: 'Zjawisko <strong>tzw. "ciężkich nóg"</strong>. Gorąca podłoga powoduje rozszerzanie naczyń krwionośnych, obrzęki łydek i ogólny dyskomfort termiczny domowników.'
        }
    };

    function updateDashboard() {
        const val = parseInt(slider.value);
        valDisplay.textContent = val;
        
        // Update SVG Progress Line
        // Math: map 20-40 range to 0-100 coordinates
        const percent = ((val - 20) / (40 - 20)) * 100;
        trackProgress.setAttribute('x2', percent);

        // Determine State
        let stateKey = 'safe';
        if (val >= 28 && val <= 29) stateKey = 'living';
        if (val >= 30 && val <= 35) stateKey = 'bath';
        if (val > 35) stateKey = 'danger';

        const data = contentDB[stateKey];

        // Update CSS Class container
        appContainer.className = 'rk-norm-container ' + data.cls;

        // Update Content
        badgeText.textContent = data.badge;
        badgeIcon.innerHTML = data.icon;
        
        // Only update innerHTML if it's different to prevent flashing
        if(cardMat.innerHTML !== data.mat) cardMat.innerHTML = data.mat;
        if(cardZone.innerHTML !== data.zone) cardZone.innerHTML = data.zone;
        if(cardHealth.innerHTML !== data.health) cardHealth.innerHTML = data.health;
        
        // SVG Icon pulse animation on danger
        if(stateKey === 'danger') {
            badgeIcon.classList.add('anim-pulse-warn');
        } else {
            badgeIcon.classList.remove('anim-pulse-warn');
        }
    }

    slider.addEventListener('input', updateDashboard);
    
    // Init
    updateDashboard();
});
</script>



<style>
:root {
    --rk-flr-dark: #0f172a;
    --rk-flr-panel: #1e293b;
    --rk-flr-bg: #ffffff;
    --rk-flr-surface: #f8fafc;
    --rk-flr-border: #e2e8f0;
    --rk-flr-text: #334155;
    --rk-flr-muted: #64748b;
    --rk-flr-blue: #0284c7;
    --rk-flr-blue-light: #e0f2fe;
    --rk-flr-green: #10b981;
    --rk-flr-orange: #f59e0b;
    --rk-flr-red: #ef4444;
}

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

/* Header */
.rk-flr-header {
    background: linear-gradient(135deg, var(--rk-flr-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-flr-blue);
}

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

.rk-flr-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
}

/* Main App Area */
.rk-flr-app {
    display: flex;
    flex-direction: column;
}

/* Selector Tabs */
.rk-flr-tabs {
    display: flex;
    background: var(--rk-flr-surface);
    border-bottom: 1px solid var(--rk-flr-border);
    overflow-x: auto;
    scrollbar-width: none; /* Firefox */
}
.rk-flr-tabs::-webkit-scrollbar { display: none; /* Safari/Chrome */ }

.rk-flr-tab {
    flex: 1;
    min-width: 150px;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-flr-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    white-space: nowrap;
}

.rk-flr-tab:hover {
    color: var(--rk-flr-blue);
    background: rgba(2, 132, 199, 0.02);
}

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

/* Dashboard Display */
.rk-flr-display {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Data Panel */
.rk-flr-data {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-flr-card {
    background: #ffffff;
    border: 1px solid var(--rk-flr-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-flr-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.08);
}

.rk-flr-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: var(--rk-flr-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-flr-blue);
    flex-shrink: 0;
}

.rk-flr-info {
    flex: 1;
}

.rk-flr-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-flr-muted);
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

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

/* Resistance Bar */
.rk-flr-resistance {
    margin-top: 10px;
}

.rk-res-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 8px;
}

.rk-res-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-flr-dark);
}

.rk-res-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-flr-red);
}

.rk-res-bar-bg {
    height: 10px;
    background: var(--rk-flr-surface);
    border-radius: 5px;
    overflow: hidden;
    border: 1px solid var(--rk-flr-border);
}

.rk-res-bar-fill {
    height: 100%;
    width: 10%;
    background: linear-gradient(90deg, var(--rk-flr-green) 0%, var(--rk-flr-red) 100%);
    border-radius: 5px;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Visualization SVG Area */
.rk-flr-viz {
    background: var(--rk-flr-surface);
    border-radius: 20px;
    border: 1px solid var(--rk-flr-border);
    padding: 30px;
    text-align: center;
}

.rk-flr-viz h3 {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-flr-muted);
    margin: 0 0 20px 0;
    letter-spacing: 1px;
}

.rk-viz-svg {
    width: 100%;
    max-width: 300px;
    height: auto;
}

/* SVG Dynamics */
.rk-mat-layer { transition: fill 0.5s ease, height 0.5s ease, y 0.5s ease; }
.rk-heat-arrow { transition: opacity 0.5s ease, stroke 0.5s ease; }

/* States for SVG */
.state-plytki .rk-mat-layer { fill: #94a3b8; height: 15px; y: 45px; } /* Płytki - cienkie, szare */
.state-plytki .rk-heat-arrow { stroke: var(--rk-flr-red); animation: shootUp 1s infinite linear; stroke-width: 4; }

.state-panele .rk-mat-layer { fill: #d97706; height: 20px; y: 40px; } /* Panele - drewnopodobne */
.state-panele .rk-heat-arrow { stroke: var(--rk-flr-orange); animation: shootUp 1.5s infinite linear; stroke-width: 3; }

.state-drewno .rk-mat-layer { fill: #78350f; height: 25px; y: 35px; } /* Grube drewno */
.state-drewno .rk-heat-arrow { stroke: var(--rk-flr-blue); animation: shootUp 2.5s infinite linear; stroke-width: 2; opacity: 0.7; }

.state-wykladzina .rk-mat-layer { fill: #6366f1; height: 30px; y: 30px; } /* Wykładzina - gruba */
.state-wykladzina .rk-heat-arrow { stroke: var(--rk-flr-muted); animation: shootUp 3.5s infinite linear; stroke-width: 1.5; opacity: 0.4; }

@keyframes shootUp {
    0% { stroke-dashoffset: 40; transform: translateY(10px); }
    100% { stroke-dashoffset: 0; transform: translateY(-10px); }
}

/* Info Box */
.rk-flr-desc {
    margin-top: 25px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-flr-text);
    padding: 15px 20px;
    background: #ffffff;
    border-left: 4px solid var(--rk-flr-blue);
    border-radius: 8px;
    border: 1px solid var(--rk-flr-border);
    border-left-width: 4px;
}

.rk-flr-desc a {
    color: var(--rk-flr-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-flr-display { grid-template-columns: 1fr; padding: 30px 25px; gap: 30px; }
    .rk-flr-header { padding: 30px 25px; }
    .rk-flr-tab { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-posadzki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Tabela: Porównanie parametrów w zależności od rodzaju posadzki",
    "description": "Interaktywne zestawienie wpływu rodzaju wykończenia podłogi (płytki, panele, drewno) na opór cieplny i optymalną temperaturę zasilania ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-posadzki",
    "name": "Wpływ oporu cieplnego materiałów wykończeniowych na efektywność ogrzewania",
    "description": "Baza danych parametrów fizycznych dla popularnych materiałów posadzkowych, niezbędna do poprawnego wykonania projektu OZC i doboru pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny posadzki m2K/W",
      "temperatura zasilania ogrzewania podłogowego",
      "panele a ogrzewanie podłogowe",
      "parkiet drewniany na podłogówkę",
      "wpływ okładziny na ogrzewanie"
    ],
    "measurementTechnique": "Określenie współczynnika oporu cieplnego (R) zgodnie z normą PN-EN 1264 przy docelowej temperaturze powietrza wewnętrznego 21°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: R=0,01, Zasilanie: 30-35°C (Najwyższa efektywność).",
        "Panele laminowane: R=0,08, Zasilanie: 33-38°C.",
        "Parkiet drewniany: R=0,12, Zasilanie: 35-40°C.",
        "Wykładzina dywanowa: R=0,15, Zasilanie: 38-42°C (Wysoki izolator)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-posadzek",
    "name": "Symulator Oporu Cieplnego Posadzek",
    "description": "Narzędzie interaktywne demonstrujące, jak rosnący opór cieplny materiału posadzkowego spowalnia emisję ciepła i wymusza podnoszenie parametrów zasilania w instalacji hydraulicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flr-container" id="rk-flr-app">
    <div class="rk-flr-header">
        <h2>Tabela: Porównanie parametrów w zależności od rodzaju posadzki</h2>
        <p>Wybór materiału wykończeniowego ma bezpośredni wpływ na koszty ogrzewania. Zobacz orientacyjne parametry zasilania i opór cieplny przy założeniu temperatury wewnętrznej 21°C.</p>
    </div>

    <div class="rk-flr-app">
        <div class="rk-flr-tabs" id="rkFlrTabs">
            <button class="rk-flr-tab active" data-mat="plytki">Płytki ceramiczne</button>
            <button class="rk-flr-tab" data-mat="panele">Panele laminowane</button>
            <button class="rk-flr-tab" data-mat="drewno">Parkiet drewniany</button>
            <button class="rk-flr-tab" data-mat="wykladzina">Wykładzina</button>
        </div>

        <div class="rk-flr-display">
            <div class="rk-flr-data">
                
                <div class="rk-flr-card">
                    <div class="rk-flr-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="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-flr-info">
                        <div class="rk-flr-label">Wymagana Temp. Zasilania</div>
                        <div class="rk-flr-value" id="rkValZas">30 &#8211; 35°C</div>
                    </div>
                </div>

                <div class="rk-flr-card">
                    <div class="rk-flr-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 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-flr-info">
                        <div class="rk-flr-label">Temp. Powierzchni Posadzki</div>
                        <div class="rk-flr-value" id="rkValPow">24 &#8211; 26°C</div>
                    </div>
                </div>

                <div class="rk-flr-resistance">
                    <div class="rk-res-header">
                        <span class="rk-res-title">Opór cieplny [m²K/W]</span>
                        <span class="rk-res-val" id="rkValOpor">0,01</span>
                    </div>
                    <div class="rk-res-bar-bg">
                        <div class="rk-res-bar-fill" id="rkBarOpor" style="width: 10%;"></div>
                    </div>
                </div>

                <div class="rk-flr-desc" id="rkValDesc">
                    Ceramika i gres to idealny przewodnik. Opór cieplny jest znikomy, dzięki czemu pompa ciepła może pracować na najniższych możliwych parametrach zasilania, maksymalizując wskaźnik COP. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Więcej o ceramice na podłogówce →</a>
                </div>

            </div>

            <div class="rk-flr-viz state-plytki" id="rkFlrViz">
                <h3>Dynamika przenikania ciepła</h3>
                <svg class="rk-viz-svg" viewBox="0 0 200 150">
                    <rect x="20" y="60" width="160" height="70" fill="#f1f5f9" rx="2"/>
                    
                    <circle cx="50" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="100" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="150" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>

                    <circle cx="50" cy="95" r="5" fill="#ef4444"/>
                    <circle cx="100" cy="95" r="5" fill="#ef4444"/>
                    <circle cx="150" cy="95" r="5" fill="#ef4444"/>

                    <rect x="20" y="45" width="160" height="15" class="rk-mat-layer" rx="1"/>

                    <g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="10 5">
                        <path d="M 50 35 L 50 0" class="rk-heat-arrow" style="animation-delay: 0s"/>
                        <path d="M 75 35 L 75 0" class="rk-heat-arrow" style="animation-delay: 0.2s"/>
                        <path d="M 100 35 L 100 0" class="rk-heat-arrow" style="animation-delay: 0.4s"/>
                        <path d="M 125 35 L 125 0" class="rk-heat-arrow" style="animation-delay: 0.6s"/>
                        <path d="M 150 35 L 150 0" class="rk-heat-arrow" style="animation-delay: 0.8s"/>
                    </g>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-flr-tab');
    const viz = document.getElementById('rkFlrViz');
    
    // UI Elements
    const vZas = document.getElementById('rkValZas');
    const vPow = document.getElementById('rkValPow');
    const vOpor = document.getElementById('rkValOpor');
    const bOpor = document.getElementById('rkBarOpor');
    const vDesc = document.getElementById('rkValDesc');

    // Data Engine
    const floorData = {
        'plytki': {
            zas: '30 - 35°C', pow: '24 - 26°C', opor: '0,01', bar: '10%',
            desc: 'Ceramika i gres to idealny przewodnik. Opór cieplny jest znikomy, dzięki czemu pompa ciepła może pracować na najniższych możliwych parametrach zasilania, maksymalizując wskaźnik COP. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Więcej o ceramice na podłogówce →</a>'
        },
        'panele': {
            zas: '33 - 38°C', pow: '23 - 25°C', opor: '0,08', bar: '40%',
            desc: 'Panele to najpopularniejszy kompromis. Kluczem do sukcesu jest unikanie podkładów z XPS (styroduru) i zastosowanie specjalistycznych <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">podkładów kwarcowych (PUM)</a> o najniższym możliwym oporze.'
        },
        'drewno': {
            zas: '35 - 40°C', pow: '22 - 24°C', opor: '0,12', bar: '70%',
            desc: 'Drewno jest naturalnym izolatorem. Należy rygorystycznie przestrzegać norm: grubość deski nie może przekraczać 15 mm, a materiał musi być klejony bezpośrednio do jastrychu elastycznym klejem. <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Sprawdź tabelę gatunków drewna →</a>'
        },
        'wykladzina': {
            zas: '38 - 42°C', pow: '22 - 23°C', opor: '0,15', bar: '100%',
            desc: '<strong>Instalacja niezalecana dla pomp ciepła.</strong> Wykładzina blokuje transfer energii, zmuszając źródło ciepła do wejścia w nieekonomiczne, wysokie rejestry temperatur zasilania, drastycznie podnosząc rachunki za prąd.'
        }
    };

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Tab state
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            const mat = this.getAttribute('data-mat');
            const data = floorData[mat];

            // Update Text
            vZas.textContent = data.zas;
            vPow.textContent = data.pow;
            vOpor.textContent = data.opor;
            bOpor.style.width = data.bar;
            vDesc.innerHTML = data.desc;

            // Update SVG Class for animations
            viz.className = 'rk-flr-viz state-' + mat;
        });
    });
});
</script>



<style>
:root {
    --rk-zone-dark: #0f172a;
    --rk-zone-panel: #1e293b;
    --rk-zone-bg: #ffffff;
    --rk-zone-surface: #f8fafc;
    --rk-zone-border: #e2e8f0;
    --rk-zone-text: #334155;
    --rk-zone-muted: #64748b;
    --rk-zone-accent: #38bdf8;
    --rk-zone-blue: #0284c7;
    --rk-zone-blue-light: #e0f2fe;
    --rk-zone-orange: #f97316;
    --rk-zone-red: #ef4444;
    --rk-zone-gray: #64748b;
}

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

/* Header Section */
.rk-zone-header {
    background: linear-gradient(135deg, var(--rk-zone-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-zone-blue);
}

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

.rk-zone-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
}

/* App Interface */
.rk-zone-app-grid {
    display: grid;
    grid-template-columns: 260px 1fr;
    background: var(--rk-zone-bg);
}

/* Room Selector (Sidebar) */
.rk-zone-sidebar {
    background: var(--rk-zone-surface);
    padding: 30px 20px;
    border-right: 1px solid var(--rk-zone-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-zone-sidebar-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-zone-muted);
    margin: 0 0 10px 10px;
}

.rk-room-btn {
    background: #ffffff;
    border: 1px solid var(--rk-zone-border);
    padding: 16px 20px;
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--rk-zone-text);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-room-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.05);
}

.rk-room-btn.active {
    background: var(--rk-zone-blue);
    border-color: var(--rk-zone-blue);
    color: #ffffff;
    box-shadow: 0 8px 16px rgba(2, 132, 199, 0.25);
}

.rk-room-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--rk-zone-blue-light);
    color: var(--rk-zone-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-room-btn.active .rk-room-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-room-info {
    text-align: left;
}

.rk-room-name {
    font-size: 15px;
    font-weight: 800;
    display: block;
}

.rk-room-target {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Main Display Area */
.rk-zone-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Thermostat & Data */
.rk-zone-data-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 40px;
    align-items: center;
}

.rk-thermostat {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: #ffffff;
    border: 8px solid var(--rk-zone-surface);
    box-shadow: 
        inset 0 4px 10px rgba(0,0,0,0.05),
        0 10px 25px -5px rgba(2, 132, 199, 0.15);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-therm-ring {
    position: absolute;
    top: -8px; left: -8px; right: -8px; bottom: -8px;
    border-radius: 50%;
    border: 8px solid transparent;
    border-top-color: var(--rk-zone-orange);
    border-right-color: var(--rk-zone-orange);
    transform: rotate(-45deg);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.room-sypialnia .rk-therm-ring { border-top-color: var(--rk-zone-blue); border-right-color: transparent; }
.room-lazienka .rk-therm-ring { border-top-color: var(--rk-zone-red); border-right-color: var(--rk-zone-red); border-bottom-color: var(--rk-zone-red); }
.room-garaz .rk-therm-ring { border-top-color: var(--rk-zone-gray); border-right-color: transparent; transform: rotate(-135deg); }


.rk-therm-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-zone-dark);
    line-height: 1;
    margin-bottom: 5px;
}

.rk-therm-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-zone-muted);
}

.rk-zone-specs {
    background: var(--rk-zone-surface);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-zone-border);
}

.rk-zone-specs h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    color: var(--rk-zone-dark);
}

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

.rk-spec-item {
    background: #ffffff;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-zone-border);
}

.rk-spec-label {
    font-size: 12px;
    color: var(--rk-zone-muted);
    font-weight: 600;
    margin-bottom: 5px;
}

.rk-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-zone-blue);
}

/* Visualization SVG */
.rk-zone-viz {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-zone-border);
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-zone-viz-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-zone-muted);
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-floor-svg {
    width: 100%;
    height: 120px;
}

/* SVG Animations */
.rk-pipe-core { fill: #cbd5e1; transition: fill 0.5s ease; }
.rk-pipe-heat { opacity: 0; transition: opacity 0.5s ease; }

.room-salon .rk-pipe-core { fill: var(--rk-zone-orange); }
.room-salon .rk-pipe-base { opacity: 1; }
.room-salon .rk-pipe-dense { opacity: 0; transform: translateY(10px); }
.room-salon .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }

.room-sypialnia .rk-pipe-core { fill: var(--rk-zone-blue); }
.room-sypialnia .rk-pipe-base { opacity: 1; }
.room-sypialnia .rk-pipe-dense { opacity: 0; transform: translateY(10px); }
.room-sypialnia .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }

.room-lazienka .rk-pipe-core { fill: var(--rk-zone-red); }
.room-lazienka .rk-pipe-base { opacity: 1; }
.room-lazienka .rk-pipe-dense { opacity: 1; transform: translateY(0); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.room-lazienka .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }


.room-garaz .rk-pipe-core { fill: var(--rk-zone-gray); }
.room-garaz .rk-pipe-base { opacity: 0; }
.room-garaz .rk-pipe-dense { opacity: 0; }
.room-garaz .rk-pipe-sparse { opacity: 1; transform: translateY(0); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }


/* Heat waves */
.rk-heat-wave {
    stroke-dasharray: 10;
    animation: waveRise 2s linear infinite;
    opacity: 0;
    transition: opacity 0.3s;
}

.room-salon .rk-heat-wave { stroke: var(--rk-zone-orange); opacity: 0.6; }
.room-sypialnia .rk-heat-wave { stroke: var(--rk-zone-blue); opacity: 0.3; animation-duration: 3s; }
.room-lazienka .rk-heat-wave { stroke: var(--rk-zone-red); opacity: 0.8; animation-duration: 1.5s; }
.room-garaz .rk-heat-wave { stroke: var(--rk-zone-gray); opacity: 0.2; animation-duration: 4s; }

@keyframes waveRise {
    0% { stroke-dashoffset: 20; transform: translateY(5px); }
    100% { stroke-dashoffset: 0; transform: translateY(-5px); }
}

/* Explain Text */
.rk-zone-explain {
    background: #fffbeb;
    border-left: 4px solid #fbbf24;
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #92400e;
}

.rk-zone-explain a {
    color: #b45309;
    font-weight: 700;
    text-decoration: underline;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-zone-app-grid { grid-template-columns: 1fr; }
    .rk-zone-sidebar { border-right: none; border-bottom: 1px solid var(--rk-zone-border); flex-direction: row; overflow-x: auto; padding: 20px; }
    .rk-room-btn { flex: 0 0 auto; padding: 12px 16px; }
    .rk-zone-data-row { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 25px; }
    .rk-spec-grid { grid-template-columns: 1fr; }
    .rk-zone-display { padding: 25px; }
    .rk-zone-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-nastawy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak rodzaj pomieszczenia wpływa na nastawy temperatury?",
    "description": "Zasady sterowania strefowego w ogrzewaniu podłogowym. Zobacz dlaczego łazienka wymaga mniejszego rozstawu rur, a sypialnia obniżonej temperatury, bez podnoszenia zasilania na pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-strefy",
    "name": "Zestawienie parametrów strefowych ogrzewania podłogowego",
    "description": "Tabela optymalnych temperatur powietrza, nastaw zasilania i gęstości układania rur w zależności od przeznaczenia pomieszczenia (salon, sypialnia, łazienka, garaż).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie strefowe ogrzewaniem czy warto",
      "termostat w ogrzewaniu podłogowym",
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "temperatura w łazience podłogówka",
      "optymalna temperatura w sypialni",
      "ogrzewanie podłogowe w garażu"
    ],
    "measurementTechnique": "Korelacja wymagań komfortu cieplnego z projektowym rozstawem rur (OZC) w celu uniknięcia przewymiarowania temperatury zasilania czynnika grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon: Temp. powietrza 21°C, Zasilanie 32°C, Rozstaw rur 15 cm.",
        "Sypialnia: Temp. powietrza 19°C, Zasilanie 30°C, Rozstaw rur 15 cm.",
        "Łazienka: Temp. powietrza 24°C, Wymagany rozstaw rur 10 cm.",
        "Garaż: Temp. powietrza 16°C, Zasilanie 28°C, Rozstaw rur 20 cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-stref",
    "name": "Symulator Stref Cieplnych Smart Home",
    "description": "Interaktywny sterownik wizualizujący zależność między pożądaną temperaturą w pomieszczeniu a gęstością ułożenia pętli grzewczych (rozstawem rur).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-zone-container" id="rk-zone-app">
    <div class="rk-zone-header">
        <h2>Jak rodzaj pomieszczenia wpływa na nastawy temperatury?</h2>
        <p>Błędem jest stosowanie jednakowej temperatury zasilania dla całego domu bez wykorzystania automatyki. Nierównomierne rozłożenie temperatury prowadzi do nieefektywnego wykorzystania energii z pompy ciepła.</p>
    </div>

    <div class="rk-zone-app-grid">
        <div class="rk-zone-sidebar">
            <div class="rk-zone-sidebar-title">Wybierz pomieszczenie</div>
            
            <button class="rk-room-btn active" data-room="salon">
                <div class="rk-room-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="M2 20h20M5 20V9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v11M9 20v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Salon</span>
                    <span class="rk-room-target">Strefa Dzienna</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="sypialnia">
                <div class="rk-room-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="M2 4v16M2 8h18a2 2 0 0 1 2 2v10M2 17h20M6 8v9"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Sypialnia</span>
                    <span class="rk-room-target">Strefa Nocna</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="lazienka">
                <div class="rk-room-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="M2 12h20M4 12v4a6 6 0 0 0 12 0v-4M10 12V4a2 2 0 0 1 4 0v8M14 4h4"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Łazienka</span>
                    <span class="rk-room-target">Strefa Ciepła</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="garaz">
                <div class="rk-room-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="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Garaż</span>
                    <span class="rk-room-target">Strefa Techniczna</span>
                </div>
            </button>
        </div>

        <div class="rk-zone-display room-salon" id="rkZoneContext">
            
            <div class="rk-zone-data-row">
                <div class="rk-thermostat">
                    <div class="rk-therm-ring"></div>
                    <div class="rk-therm-val" id="rkValAir">21°C</div>
                    <div class="rk-therm-label">Powietrze</div>
                </div>
                
                <div class="rk-zone-specs">
                    <h3>Parametry instalacji</h3>
                    <div class="rk-spec-grid">
                        <div class="rk-spec-item">
                            <div class="rk-spec-label">Zasilanie (Woda)</div>
                            <div class="rk-spec-val" id="rkValWater">32°C</div>
                        </div>
                        <div class="rk-spec-item">
                            <div class="rk-spec-label">Rozstaw rur PEX</div>
                            <div class="rk-spec-val" id="rkValSpacing">Co 15 cm</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-zone-viz">
                <div class="rk-zone-viz-title">Symulacja przekroju posadzki i gęstości rur</div>
                <svg class="rk-floor-svg" viewBox="0 0 400 120" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="60" width="400" height="40" fill="#f1f5f9" rx="4"/>
                    
                    <g fill="none" stroke-width="4" stroke-linecap="round">
                        <path class="rk-heat-wave" d="M 50 50 Q 60 30 50 10" />
                        <path class="rk-heat-wave" d="M 150 50 Q 160 30 150 10" style="animation-delay: 0.3s"/>
                        <path class="rk-heat-wave" d="M 250 50 Q 260 30 250 10" style="animation-delay: 0.6s"/>
                        <path class="rk-heat-wave" d="M 350 50 Q 360 30 350 10" style="animation-delay: 0.9s"/>
                    </g>

                    <g class="rk-pipe-base">
                        <circle cx="50" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="150" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="250" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="350" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                    
                    <g class="rk-pipe-dense">
                        <circle cx="100" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="200" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="300" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                    
                    <g class="rk-pipe-sparse">
                        <circle cx="100" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="300" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                </svg>
            </div>

            <div class="rk-zone-explain" id="rkZoneDesc">
                Optymalny komfort dla przebywania dziennego. Aby uniknąć przegrzewania salonu, stosujemy standardowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (15 cm) i dbamy o poprawną konfigurację <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatu pokojowego</a>.
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-room-btn');
    const contextBox = document.getElementById('rkZoneContext');
    
    // UI Elements to update
    const valAir = document.getElementById('rkValAir');
    const valWater = document.getElementById('rkValWater');
    const valSpacing = document.getElementById('rkValSpacing');
    const desc = document.getElementById('rkZoneDesc');

    // Data dictionary
    const roomData = {
        'salon': {
            air: '21°C',
            water: '32°C',
            spacing: 'Co 15 cm',
            text: 'Optymalny komfort dla przebywania dziennego. Aby uniknąć przegrzewania salonu, stosujemy standardowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (15 cm) i dbamy o poprawną konfigurację <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatu pokojowego</a>.'
        },
        'sypialnia': {
            air: '19°C',
            water: '30°C',
            spacing: 'Co 15 cm',
            text: 'Dla zdrowego snu wymagana jest niższa temperatura. <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe</a> (siłowniki na rozdzielaczu) automatycznie przydławi przepływ pętli sypialnianej, utrzymując idealne 19°C.'
        },
        'lazienka': {
            air: '24°C',
            water: '35°C',
            spacing: 'Co 10 cm (Zagęszczony)',
            text: '<strong>Kluczowy błąd inwestorów:</strong> Próba osiągnięcia 24°C poprzez podnoszenie temperatury zasilania na całości domu. Prawidłowym rozwiązaniem jest <strong>miejscowe zagęszczenie rur (co 10 cm)</strong> już na etapie projektu, co pozwala zachować ekonomiczną pracę pompy ciepła.'
        },
        'garaz': {
            air: '16°C',
            water: '28°C',
            spacing: 'Co 20 cm (Rozrzedzony)',
            text: 'W strefach technicznych, jak garaż w bryle budynku, wystarczy utrzymać tzw. "temperaturę dyżurną". Projektujemy rzadszy rozstaw rur, co pozwala zaoszczędzić na kosztach eksploatacji przy jednoczesnej ochronie przed przemarzaniem ścian.'
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Update Active Buttons
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const roomType = this.getAttribute('data-room');
            
            // Update CSS class for context (triggers SVG animations & colors)
            contextBox.className = 'rk-zone-display room-' + roomType;
            
            // Update Text Data
            const data = roomData[roomType];
            valAir.textContent = data.air;
            valWater.textContent = data.water;
            valSpacing.textContent = data.spacing;
            desc.innerHTML = data.text;
        });
    });
});
</script>



<style>
:root {
    --rk-bill-dark: #0f172a;
    --rk-bill-panel: #1e293b;
    --rk-bill-bg: #ffffff;
    --rk-bill-surface: #f8fafc;
    --rk-bill-border: #e2e8f0;
    --rk-bill-text: #334155;
    --rk-bill-muted: #64748b;
    
    --rk-bill-blue: #0284c7;
    --rk-bill-green: #10b981;
    --rk-bill-orange: #f59e0b;
    --rk-bill-red: #ef4444;

    --rk-bill-current: var(--rk-bill-green);
}

.rk-bill-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-bill-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-bill-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header Section */
.rk-bill-header {
    background: linear-gradient(135deg, var(--rk-bill-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-bill-current);
    transition: border-color 0.4s ease;
}

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

.rk-bill-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    line-height: 1.6;
}

/* Main Dashboard Area */
.rk-bill-dashboard {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    background: var(--rk-bill-bg);
}

/* Controls */
.rk-bill-controls {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-bill-slider-box {
    background: var(--rk-bill-surface);
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-bill-border);
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 20px;
}

.rk-slider-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-bill-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-slider-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-bill-current);
    transition: color 0.4s ease;
    display: flex;
    align-items: baseline;
    gap: 4px;
    line-height: 1;
}

.rk-slider-unit {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-bill-muted);
}

.rk-range-inp {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, var(--rk-bill-green) 0%, var(--rk-bill-orange) 50%, var(--rk-bill-red) 100%);
    border-radius: 4px;
    outline: none;
}

.rk-range-inp::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-bill-current);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: border-color 0.4s ease, transform 0.2s;
}

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

/* Metrics Grid */
.rk-bill-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

.rk-metric-card:hover {
    transform: translateY(-3px);
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-bill-muted);
    text-transform: uppercase;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
}

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

#valCop { color: var(--rk-bill-blue); }
#valCost { transition: color 0.4s ease; }

/* SVG Visualization (Heat Pump) */
.rk-bill-viz-box {
    background: var(--rk-bill-surface);
    border-radius: 20px;
    border: 1px solid var(--rk-bill-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-viz-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-bill-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    text-align: center;
}

.rk-hp-svg {
    width: 140px;
    height: 140px;
}

.rk-hp-housing {
    fill: #e2e8f0;
    stroke: #94a3b8;
    stroke-width: 4;
}

.rk-hp-grill {
    fill: none;
    stroke: #cbd5e1;
    stroke-width: 3;
}

.rk-hp-fan {
    transform-origin: 70px 70px;
    transition: fill 0.4s ease;
}

.rk-hp-alert {
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* Dynamic States applied to App */
.state-eco { --rk-bill-current: var(--rk-bill-green); }
.state-eco .rk-hp-fan { fill: var(--rk-bill-green); animation: spinFan 3s linear infinite; }
.state-eco #valCost { color: var(--rk-bill-green); }

.state-warn { --rk-bill-current: var(--rk-bill-orange); }
.state-warn .rk-hp-fan { fill: var(--rk-bill-orange); animation: spinFan 1s linear infinite; }
.state-warn #valCost { color: var(--rk-bill-orange); }

.state-danger { --rk-bill-current: var(--rk-bill-red); }
.state-danger .rk-hp-fan { fill: var(--rk-bill-red); animation: spinFan 0.3s linear infinite; }
.state-danger #valCost { color: var(--rk-bill-red); }
.state-danger .rk-hp-alert { opacity: 1; animation: pulseAlert 0.5s alternate infinite; }
.state-danger .rk-hp-housing { stroke: var(--rk-bill-red); }

@keyframes spinFan { 100% { transform: rotate(360deg); } }
@keyframes pulseAlert { 100% { transform: scale(1.1); opacity: 0.5; } }

/* Dynamic Explainer Text */
.rk-bill-explainer {
    background: #ffffff;
    border-left: 4px solid var(--rk-bill-current);
    padding: 20px 25px;
    border-radius: 8px;
    border-top: 1px solid var(--rk-bill-border);
    border-right: 1px solid var(--rk-bill-border);
    border-bottom: 1px solid var(--rk-bill-border);
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-bill-text);
    transition: border-color 0.4s ease;
}

.rk-bill-explainer strong { color: var(--rk-bill-dark); }
.rk-bill-explainer a {
    color: var(--rk-bill-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-bill-dashboard { grid-template-columns: 1fr; padding: 30px 25px; gap: 30px; }
    .rk-bill-header { padding: 30px 25px; }
    .rk-metrics-wrap { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-rachunki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Dlaczego temperatura zasilania podłogówki decyduje o rachunkach za ogrzewanie?",
    "description": "Dowiedz się, jak obniżenie temperatury zasilania do 35°C wpływa na sprawność pompy ciepła (COP) i dlaczego praca powyżej 45°C zwiększa koszty ogrzewania o 20%.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-rachunki",
    "name": "Wpływ temperatury zasilania na efektywność (COP) pompy ciepła",
    "description": "Baza parametrów fizycznych pokazująca spadek współczynnika COP pompy ciepła i proporcjonalny wzrost kosztów energii przy nieoptymalnych nastawach zasilania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza pompy ciepła",
      "efektywność cop pompy ciepła",
      "temperatura zasilania ogrzewania podłogowego",
      "koszty ogrzewania pompą ciepła 2026",
      "żywotność sprężarki pompy ciepła"
    ],
    "measurementTechnique": "Szacunkowe obliczanie spadku współczynnika COP o ok. 2-2.5% na każdy 1°C wzrostu temperatury zasilania układu płaszczyznowego w stosunku do optymalnych 30°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Praca optymalna (30-35°C): Maksymalne COP, minimalne obciążenie sprężarki.",
        "Praca podwyższona (36-40°C): Spadek efektywności o około 10-15%.",
        "Praca krytyczna (>45°C): Drastyczny spadek COP, wzrost rachunków do +20% i przyspieszone zużycie mechaniczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-rachunkow",
    "name": "Symulator Zużycia i Efektywności COP Pompy Ciepła",
    "description": "Interaktywny symulator wizualizujący wpływ żądanej temperatury zasilania podłogówki na obciążenie sprężarki pompy ciepła, współczynnik COP oraz przewidywany wzrost kosztów.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-bill-wrapper state-eco" id="rkBillApp">
    <div class="rk-bill-header">
        <h2>Dlaczego temperatura zasilania podłogówki decyduje o rachunkach za ogrzewanie?</h2>
        <p>Każdy 1°C więcej na zasilaniu to realny spadek efektywności pompy ciepła (COP) o około 2-2,5%. Przekonaj się na interaktywnym symulatorze, jak nastawy niszczą Twój portfel i skracają życie sprężarki.</p>
    </div>

    <div class="rk-bill-dashboard">
        <div class="rk-bill-controls">
            
            <div class="rk-bill-slider-box">
                <div class="rk-slider-header">
                    <div class="rk-slider-title">Zasilanie układu</div>
                    <div class="rk-slider-value"><span id="valTemp">30</span><span class="rk-slider-unit">°C</span></div>
                </div>
                <input type="range" id="inpTemp" class="rk-range-inp" min="30" max="50" step="1" value="30">
            </div>

            <div class="rk-bill-metrics">
                <div class="rk-metric-card">
                    <div class="rk-metric-label">Sprawność (COP)</div>
                    <div class="rk-metric-val" id="valCop">4.80</div>
                </div>
                <div class="rk-metric-card">
                    <div class="rk-metric-label">Wzrost Rachunku</div>
                    <div class="rk-metric-val" id="valCost">+0%</div>
                </div>
            </div>

            <div class="rk-bill-explainer" id="valDesc">
                <strong>Stan Idealny.</strong> W domach o zapotrzebowaniu jednostkowym ok. 40 W/m², utrzymywanie zasilania poniżej 35°C pozwala na zachowanie najwyższego komfortu przy <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">minimalnym zużyciu prądu</a>.
            </div>

        </div>

        <div class="rk-bill-viz-box">
            <div class="rk-viz-label">Obciążenie Sprężarki</div>
            <svg class="rk-hp-svg" viewBox="0 0 140 140">
                <rect class="rk-hp-housing" x="10" y="10" width="120" height="120" rx="10" />
                <rect fill="#ffffff" x="20" y="20" width="100" height="100" rx="5" />
                
                <path class="rk-hp-grill" d="M 30 30 L 110 30 M 30 50 L 110 50 M 30 70 L 110 70 M 30 90 L 110 90 M 30 110 L 110 110" />
                
                <circle fill="#1e293b" cx="70" cy="70" r="40" />
                <path class="rk-hp-fan" d="M 70 70 L 70 35 A 35 35 0 0 1 95 45 Z M 70 70 L 95 95 A 35 35 0 0 1 70 105 Z M 70 70 L 45 95 A 35 35 0 0 1 35 70 Z M 70 70 L 45 45 A 35 35 0 0 1 70 35 Z" />
                <circle fill="#cbd5e1" cx="70" cy="70" r="8" />

                <g class="rk-hp-alert">
                    <path d="M 120 15 L 135 5 M 120 125 L 135 135" stroke="#ef4444" stroke-width="4" stroke-linecap="round" />
                </g>
            </svg>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('inpTemp');
    const outTemp = document.getElementById('valTemp');
    const outCop = document.getElementById('valCop');
    const outCost = document.getElementById('valCost');
    const outDesc = document.getElementById('valDesc');
    const appWrap = document.getElementById('rkBillApp');

    function calculate() {
        const temp = parseInt(slider.value);
        outTemp.textContent = temp;

        // Math modeling based on context (Base temp: 30C, Base COP: 4.8)
        // 2.5% drop in COP for every 1°C
        const deltaT = temp - 30;
        const efficiencyDrop = deltaT * 0.025;
        
        let currentCop = 4.8 * (1 - efficiencyDrop);
        let costIncrease = deltaT * 2.5;

        // Render formatted values
        outCop.textContent = currentCop.toFixed(2);
        outCost.textContent = '+' + costIncrease.toFixed(0) + '%';

        // State Machine
        if (temp <= 35) {
            appWrap.className = 'rk-bill-wrapper state-eco';
            outDesc.innerHTML = '<strong>Stan Idealny.</strong> W domach o zapotrzebowaniu jednostkowym ok. 40 W/m², utrzymywanie zasilania na poziomie '+temp+'°C pozwala na zachowanie najwyższego komfortu przy <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">minimalnym zużyciu prądu</a>.';
        } else if (temp <= 40) {
            appWrap.className = 'rk-bill-wrapper state-warn';
            outDesc.innerHTML = '<strong>Zwiększone obciążenie.</strong> Brak optymalizacji <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a> wymusza gorsze warunki pracy. Zapłacisz o '+costIncrease.toFixed(0)+'% więcej za prąd z powodu spadku sprawności układu termodynamicznego.';
        } else {
            appWrap.className = 'rk-bill-wrapper state-danger';
            outDesc.innerHTML = '<strong>Tryb Awaryjny (Krytyczny).</strong> Praca pompy powyżej 40°C to katastrofa dla portfela. Taktowanie niszczy żywotność sprężarki, a <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania</a> drastycznie rosną z powodu spadku COP do okolic '+currentCop.toFixed(2)+'.';
        }
    }

    slider.addEventListener('input', calculate);
    
    // Init run
    calculate();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-calc-green: #10b981;
    --rk-calc-orange: #f59e0b;
    --rk-calc-red: #ef4444;
}

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

/* Header */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-calc-blue);
}

.rk-calc-header::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: radial-gradient(circle at top right, rgba(2, 132, 199, 0.2), transparent 50%);
    pointer-events: none;
}

.rk-calc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.rk-calc-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Dashboard Grid */
.rk-calc-dashboard {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-calc-bg);
}

/* Controls (Sliders) */
.rk-calc-controls {
    padding: 40px;
    background: var(--rk-calc-surface);
    border-right: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-input-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-input-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.rk-input-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-input-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid var(--rk-calc-border);
    min-width: 80px;
    text-align: right;
}

/* Custom Range Slider */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    outline: none;
}

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

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

/* Results Display */
.rk-calc-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-res-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

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

.rk-res-card.flow::before { background: var(--rk-calc-blue); }
.rk-res-card.temp::before { background: var(--rk-calc-orange); }

.rk-res-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.08);
}

.rk-card-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-calc-muted);
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.rk-card-val {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.rk-card-unit {
    font-size: 16px;
    color: var(--rk-calc-muted);
    font-weight: 700;
}

/* SVG Visualizer */
.rk-calc-viz {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 30px;
    position: relative;
}

.rk-viz-title {
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 20px;
    text-align: center;
}

.rk-svg-flow {
    width: 100%;
    height: 80px;
}

/* Dynamic SVG Elements */
.svg-pipe { fill: none; stroke: #334155; stroke-width: 24; stroke-linecap: round; stroke-linejoin: round; }
.svg-water { 
    fill: none; 
    stroke: var(--rk-calc-blue); 
    stroke-width: 14; 
    stroke-linecap: round; 
    stroke-linejoin: round;
    stroke-dasharray: 20 15;
    animation: flowAnim 2s linear infinite;
}
.svg-heat-arrow { stroke: var(--rk-calc-orange); fill: none; stroke-width: 3; stroke-linecap: round; }

@keyframes flowAnim {
    to { stroke-dashoffset: -70; }
}

/* Algorithm Steps Breakdown */
.rk-alg-steps {
    border-top: 1px solid var(--rk-calc-border);
    background: #ffffff;
}

.rk-alg-header {
    padding: 20px 40px;
    background: var(--rk-calc-surface);
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

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

.rk-alg-steps.open .rk-alg-content {
    padding: 30px 40px;
    max-height: 500px;
}

.rk-alg-steps.open .rk-chevron {
    transform: rotate(180deg);
}

.rk-step-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-step-item {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-calc-blue-glow);
    color: var(--rk-calc-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 900;
    flex-shrink: 0;
}

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

.rk-step-text strong {
    color: var(--rk-calc-dark);
}

.rk-math-code {
    display: inline-block;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    color: var(--rk-calc-blue);
    font-weight: 600;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-calc-dashboard { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); padding: 30px 25px; }
    .rk-calc-results { padding: 30px 25px; }
    .rk-res-cards { grid-template-columns: 1fr; }
    .rk-calc-header { padding: 30px 25px; }
    .rk-alg-header, .rk-alg-steps.open .rk-alg-content { padding-left: 25px; padding-right: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak obliczyć optymalną temperaturę zasilania (algorytm projektowy)?",
    "description": "Zrozum inżynierski algorytm obliczania strumienia masy wody oraz temperatury zasilania na podstawie strat ciepła (OZC) i zakładanej różnicy temperatur (ΔT).",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-algorytm",
    "name": "Algorytm obliczeniowy przepływu masowego podłogówki",
    "description": "Dane wyjściowe i przeliczniki dla równania przepływu masowego oraz mocy cieplnej instalacji płaszczyznowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ wody podłogówka",
      "obliczeniowe zapotrzebowanie na ciepło OZC",
      "spadek temperatury ΔT",
      "jak obliczyć temperaturę zasilania",
      "przepływ l/h w rotametrach"
    ],
    "measurementTechnique": "Wykorzystanie ciepła właściwego wody (4186 J/(kg·K)) oraz przekształcenie bilansu strat ciepła budynku na wymagany przepływ hydrauliczny i temperaturę zasilania pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzór na przepływ: Q / (cp × ΔT).",
        "Przykładowe zapotrzebowanie: 40 W/m2 generuje przy ΔT=5K przepływ około 172 l/h dla pętli 1000 W.",
        "Docelowa temperatura zasilania: Wypadkowa oporu cieplnego, gęstości rur i niezbędnego strumienia masy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-kalkulator-hydrauliki",
    "name": "Kalkulator Inżynierski - Algorytm Zasilania",
    "description": "Interaktywny symulator pozwalający obliczyć przepływ wody (l/h) oraz wymaganą temperaturę zasilania pompy ciepła na podstawie metrażu i izolacji budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper" id="rk-calc-app">
    <div class="rk-calc-header">
        <h2>Jak obliczyć optymalną temperaturę zasilania (algorytm projektowy)?</h2>
        <p>Aby wyznaczyć temperaturę zasilania (T<sub>zas</sub>) oraz niezbędny przepływ w rotametrach, inżynier HVAC posługuje się bilansem strat ciepła (Q) oraz założoną deltą temperatury (ΔT).</p>
    </div>

    <div class="rk-calc-dashboard">
        <div class="rk-calc-controls">
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Powierzchnia [m²]</span>
                    <span class="rk-input-value" id="valAreaOut">25 m²</span>
                </div>
                <input type="range" class="rk-range" id="inpArea" min="10" max="100" step="1" value="25">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Izolacja (Zapotrzebowanie)</span>
                    <span class="rk-input-value" id="valQOut">40 W/m²</span>
                </div>
                <input type="range" class="rk-range" id="inpQ" min="20" max="100" step="5" value="40">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Spadek Temp. (ΔT)</span>
                    <span class="rk-input-value" id="valDtOut">5 K</span>
                </div>
                <input type="range" class="rk-range" id="inpDt" min="3" max="10" step="1" value="5">
            </div>

        </div>

        <div class="rk-calc-results">
            
            <div class="rk-res-cards">
                <div class="rk-res-card flow">
                    <div class="rk-card-label">Wymagany przepływ (ṁ)</div>
                    <div class="rk-card-val"><span id="resFlow">172</span> <span class="rk-card-unit">l/h</span></div>
                </div>
                <div class="rk-res-card temp">
                    <div class="rk-card-label">Temp. Zasilania (T<sub>zas</sub>)</div>
                    <div class="rk-card-val"><span id="resTemp">32</span> <span class="rk-card-unit">°C</span></div>
                </div>
            </div>

            <div class="rk-calc-viz">
                <div class="rk-viz-title">Symulacja Przepływu Hydraulicznego</div>
                <svg class="rk-svg-flow" viewBox="0 0 300 80">
                    <path class="svg-pipe" d="M 20 40 L 280 40" />
                    <path class="svg-water" id="animWater" d="M 20 40 L 280 40" />
                    
                    <g id="animHeatGroup">
                        <path class="svg-heat-arrow" d="M 60 20 Q 70 0 60 -10" />
                        <path class="svg-heat-arrow" d="M 150 20 Q 160 0 150 -10" />
                        <path class="svg-heat-arrow" d="M 240 20 Q 250 0 240 -10" />
                    </g>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-alg-steps" id="rkAlgAcc">
        <div class="rk-alg-header">
            ROZWIŃ ALGORYTM OBLICZENIOWY (WZORY)
            <svg class="rk-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="transition: transform 0.3s;"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </div>
        <div class="rk-alg-content">
            <ul class="rk-step-list">
                <li class="rk-step-item">
                    <div class="rk-step-num">1</div>
                    <div class="rk-step-text"><strong>Wyznaczenie całkowitego zapotrzebowania na ciepło:</strong> Mnożymy metraż przez wskaźnik z OZC budynku. <br><span class="rk-math-code">Q_obl = A × q_zapotrzebowanie [W]</span></div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">2</div>
                    <div class="rk-step-text"><strong>Założenie spadku temperatury:</strong> Zazwyczaj projektowo przyjmujemy optymalną różnicę zasilania i powrotu dla podłogówki na poziomie <span class="rk-math-code">ΔT = 5K</span>.</div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">3</div>
                    <div class="rk-step-text"><strong>Obliczenie strumienia masy (przepływu wody):</strong> Dzielimy wyliczoną moc przez ciepło właściwe wody (ok. 4186 J/kg·K) i założone ΔT. <br><span class="rk-math-code">ṁ = Q / (c_p × ΔT)</span></div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">4</div>
                    <div class="rk-step-text"><strong>Dobór temperatury zasilania:</strong> Wypadkowa gęstości rur i oporu cieplnego posadzki. Średnia zasilania dla nowoczesnego domu wynosi zazwyczaj ok. 32-35°C.</div>
                </li>
            </ul>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const inpArea = document.getElementById('inpArea');
    const inpQ = document.getElementById('inpQ');
    const inpDt = document.getElementById('inpDt');
    
    // Displays
    const valAreaOut = document.getElementById('valAreaOut');
    const valQOut = document.getElementById('valQOut');
    const valDtOut = document.getElementById('valDtOut');
    const resFlow = document.getElementById('resFlow');
    const resTemp = document.getElementById('resTemp');
    
    // SVG Elements
    const animWater = document.getElementById('animWater');
    const animHeatGroup = document.getElementById('animHeatGroup');

    // Accordion Logic
    const accHeader = document.querySelector('.rk-alg-header');
    const accWrap = document.getElementById('rkAlgAcc');
    accHeader.addEventListener('click', () => {
        accWrap.classList.toggle('open');
    });

    function calculate() {
        // Values
        const area = parseFloat(inpArea.value);
        const q_unit = parseFloat(inpQ.value);
        const dt = parseFloat(inpDt.value);

        // Update Labels
        valAreaOut.textContent = area + ' m²';
        valQOut.textContent = q_unit + ' W/m²';
        valDtOut.textContent = dt + ' K';

        // Math
        // Q total [W]
        const Q = area * q_unit;
        
        // Flow calculation
        // Q = m_dot * cp * dT
        // m_dot [kg/s] = Q / (4186 * dT)
        // m_dot [l/h] ≈ m_dot_kg_s * 3600 ≈ Q / (1.163 * dT)
        const flow_lh = Q / (1.163 * dt);
        
        // Target Temp Estimate (Mock engineering formula fitting the 40W/m2, dT=5 -> 32°C logic)
        // Base room temp 22°C (assumed heat sink core base) + heat load factor + dt factor
        let targetTemp = 22 + (q_unit * 0.2) + (dt * 0.4);

        // Render Outputs
        resFlow.textContent = Math.round(flow_lh);
        resTemp.textContent = targetTemp.toFixed(1);

        // Update Animation Speed & Aesthetics
        // Flow ranges from ~20 to ~1000
        // Speed formula: duration between 0.5s (fast) to 4s (slow)
        let animSpeed = 4 - (flow_lh / 300);
        if (animSpeed < 0.5) animSpeed = 0.5;
        if (animSpeed > 4) animSpeed = 4;
        
        animWater.style.animationDuration = animSpeed + 's';

        // Heat arrows opacity based on power
        // Max power = 100 * 100 = 10000W
        let heatOp = Q / 3000; 
        if (heatOp > 1) heatOp = 1;
        if (heatOp < 0.2) heatOp = 0.2;
        animHeatGroup.style.opacity = heatOp;
        
        // Change water color based on Temp
        if (targetTemp > 40) {
            animWater.style.stroke = 'var(--rk-calc-red)';
        } else if (targetTemp > 30) {
            animWater.style.stroke = 'var(--rk-calc-orange)';
        } else {
            animWater.style.stroke = 'var(--rk-calc-blue)';
        }
    }

    // Event Listeners
    inpArea.addEventListener('input', calculate);
    inpQ.addEventListener('input', calculate);
    inpDt.addEventListener('input', calculate);

    // Initial Calc
    calculate();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-green: #10b981;
    --rk-err-green-bg: #f0fdf4;
    --rk-err-green-border: #86efac;
    --rk-err-blue: #0ea5e9;
}

.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 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #000000 100%);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-red);
    position: relative;
    overflow: hidden;
}

.rk-err-header::before {
    content: '!';
    position: absolute;
    right: 20px;
    top: -20px;
    font-size: 150px;
    font-weight: 900;
    color: rgba(239, 68, 68, 0.1);
    line-height: 1;
    font-family: serif;
}

.rk-err-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    position: relative;
    z-index: 2;
}

.rk-err-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
    max-width: 600px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Layout Main */
.rk-err-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--rk-err-bg);
}

/* Sidebar Menu */
.rk-err-menu {
    background: var(--rk-err-surface);
    border-right: 1px solid var(--rk-err-border);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
}

.rk-err-tab {
    padding: 14px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-muted);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-tab:hover {
    background: var(--rk-err-bg);
    color: var(--rk-err-dark);
}

.rk-err-tab.active {
    background: var(--rk-err-bg);
    border-left-color: var(--rk-err-red);
    color: var(--rk-err-dark);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-err-tab-icon {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: var(--rk-err-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    color: var(--rk-err-muted);
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-err-tab.active .rk-err-tab-icon {
    background: var(--rk-err-red);
    color: #ffffff;
}

/* Display Area */
.rk-err-display {
    padding: 40px;
    position: relative;
}

/* Sub-toggle (Error vs Fix) */
.rk-err-sub-toggle {
    display: inline-flex;
    background: var(--rk-err-surface);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
    position: relative;
}

.rk-sub-btn {
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    z-index: 2;
    color: var(--rk-err-muted);
    transition: color 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-sub-btn.active { color: #ffffff; }

.rk-sub-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-err-sub-toggle.state-error .rk-sub-slider {
    left: 6px;
    background: var(--rk-err-red);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.2);
}

.rk-err-sub-toggle.state-fix .rk-sub-slider {
    left: 50%;
    background: var(--rk-err-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.2);
}

/* Content Box Area */
.rk-err-content-box {
    display: none;
    animation: rkFadeIn 0.4s ease forwards;
}

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

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

/* Text Blocks & Alert Styles */
.rk-err-text-block {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid;
    margin-bottom: 20px;
}

.rk-err-text-block.state-danger {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red-border);
}

.rk-err-text-block.state-success {
    background: var(--rk-err-green-bg);
    border-color: var(--rk-err-green-border);
}

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

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

/* Styled Lists for technical params */
.rk-err-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.rk-err-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-err-dark);
    font-weight: 500;
}

.rk-err-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.state-danger .rk-err-list li::before {
    background: var(--rk-err-red);
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}

.state-success .rk-err-list li::before {
    background: var(--rk-err-green);
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* Link Style */
.rk-err-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-err-blue);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    background: #ffffff;
    padding: 10px 20px;
    border-radius: 8px;
    border: 1px solid var(--rk-err-border);
    transition: all 0.3s;
}

.rk-err-link:hover {
    border-color: var(--rk-err-blue);
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.1);
}

/* Dashboard Logic States */
.state-fix-active .view-error-only { display: none; }
.state-fix-active .view-fix-only { display: block; }
.state-error-active .view-fix-only { display: none; }
.state-error-active .view-error-only { display: block; }

/* Mobile */
@media (max-width: 768px) {
    .rk-err-layout { grid-template-columns: 1fr; }
    .rk-err-menu { flex-direction: row; overflow-x: auto; padding: 0; border-right: none; border-bottom: 1px solid var(--rk-err-border); white-space: nowrap; }
    .rk-err-tab { border-left: none; border-bottom: 4px solid transparent; padding: 15px 20px; flex-shrink: 0; }
    .rk-err-tab.active { border-bottom-color: var(--rk-err-red); border-left-color: transparent; }
    .rk-err-display { padding: 25px; }
    .rk-err-header { padding: 30px 25px; }
    .rk-err-sub-toggle { display: flex; width: 100%; }
    .rk-sub-btn { flex: 1; justify-content: center; padding: 12px 10px; font-size: 12px; }
    .rk-err-text-block { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-bledy-regulacji",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Najczęstsze błędy przy regulacji temperatury podłogówki",
    "description": "Analiza inżynierska krytycznych błędów hydraulicznych: brak krzywej grzewczej, zła delta T, brak strefy brzegowej, dławienie rotametrów oraz zbyt długie pętle grzewcze.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Wpływ błędów instalacyjnych na parametry pracy podłogówki",
    "description": "Baza danych parametrów degradacji systemu wywołanych błędną regulacją hydrauliczną, złą deltą T i brakiem automatyki pogodowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "opór cieplny posadzki",
      "spadek temperatury ΔT",
      "strefa brzegowa podłogówki",
      "zawór mieszający w ogrzewaniu podłogowym",
      "za długa pętla podłogówki",
      "krzywa grzewcza pompy ciepła"
    ],
    "measurementTechnique": "Porównanie spadków ciśnienia hydraulicznego (ΔP) oraz rozkładu gradientu temperatury (ΔT) pomiędzy układami poprawnymi a wadliwymi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny: Zbyt gruby podkład wymusza podbicie zasilania o 5-8°C.",
        "Długość pętli: Przekroczenie 100m powoduje drastyczny spadek temperatury na końcu wężownicy.",
        "Delta T: Błędne nastawy pompy powodują zjawisko niedogrzania lub szumów instalacji.",
        "Strefy brzegowe: Brak zagęszczenia przy oknach HS skutkuje wychładzaniem posadzki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-bledow",
    "name": "Asystent Analizy Błędów Instalacyjnych",
    "description": "Aplikacja interaktywna pozwalająca na diagnozę błędów instalacyjnych poprzez zestawienie skutków błędnego wykonawstwa z inżynierskimi rozwiązaniami.",
    "applicationCategory": "DiagnosticTool",
    "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">
        <h2>Najczęstsze błędy przy regulacji temperatury</h2>
        <p>Zobacz, jak błahe błędy sterowania drastycznie obniżają sprawność instalacji i generują koszty. Przeanalizuj problem i poznaj bezkompromisowe rozwiązania inżynierskie.</p>
    </div>

    <div class="rk-err-layout">
        <div class="rk-err-menu" id="rkErrMenu">
            <button class="rk-err-tab active" data-tab="1">
                <div class="rk-err-tab-icon">1</div> Brak pogodówki
            </button>
            <button class="rk-err-tab" data-tab="2">
                <div class="rk-err-tab-icon">2</div> Opór cieplny
            </button>
            <button class="rk-err-tab" data-tab="3">
                <div class="rk-err-tab-icon">3</div> Dławienie przepływu
            </button>
            <button class="rk-err-tab" data-tab="4">
                <div class="rk-err-tab-icon">4</div> Długie pętle
            </button>
            <button class="rk-err-tab" data-tab="5">
                <div class="rk-err-tab-icon">5</div> Zła Delta T
            </button>
            <button class="rk-err-tab" data-tab="6">
                <div class="rk-err-tab-icon">6</div> Brak stref brzegowych
            </button>
            <button class="rk-err-tab" data-tab="7">
                <div class="rk-err-tab-icon">7</div> Brak podmieszania
            </button>
        </div>

        <div class="rk-err-display state-error-active" id="rkErrDisplay">
            
            <div class="rk-err-sub-toggle state-error" id="rkErrToggle">
                <div class="rk-sub-slider"></div>
                <div class="rk-sub-btn active" data-state="error">Skutek Błędu</div>
                <div class="rk-sub-btn" data-state="fix">Rozwiązanie</div>
            </div>

            <div class="rk-err-content-box active" data-content="1">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Ustawienie sztywnej temperatury na źródle</h3>
                    <p>Ustawianie stałej temperatury wody (np. sztywne 35°C) niezależnie od warunków zewnętrznych to najczęstszy błąd eksploatacyjny. System nie reaguje na ocieplenie na zewnątrz.</p>
                    <ul class="rk-err-list">
                        <li>Przegrzewanie budynku w okresach przejściowych (jesień/wiosna).</li>
                        <li>Marnotrawienie energii elektrycznej przez pompę ciepła.</li>
                        <li>Częste i nieefektywne taktowanie (włączanie/wyłączanie) sprężarki.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" class="rk-err-link">Czytaj o sterowaniu pogodowym →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Aktywna krzywa grzewcza</h3>
                    <p>Rozwiązaniem jest instalacja czujnika temperatury zewnętrznej i rzetelna kalibracja krzywej grzewczej sterownika. Kocioł lub pompa zyskuje &#8222;inteligencję&#8221; i sama dobiera parametr.</p>
                    <ul class="rk-err-list">
                        <li>Automatyczne obniżanie zasilania w cieplejsze dni (np. do 28°C).</li>
                        <li>Maksymalizacja współczynnika COP pompy ciepła (niższe rachunki).</li>
                        <li>Idealnie stabilna temperatura wewnątrz niezależnie od mrozów.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-err-link">Jak ustawić krzywą grzewczą →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="2">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Ignorowanie parametrów posadzki</h3>
                    <p>Zastosowanie grubego podkładu XPS pod panele lub grubej deski podłogowej tworzy tzw. izolator. Zbyt wysoki opór cieplny (R > 0,15 m²K/W) sprawia, że ciepło więźnie w wylewce.</p>
                    <ul class="rk-err-list">
                        <li>Wymuszenie podniesienia temperatury zasilania o 5°C–8°C.</li>
                        <li>Drastyczny spadek sprawności pompy obiegowej i pompy ciepła.</li>
                        <li>Zwiększone ryzyko pękania przegrzanego jastrychu (wylewki).</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-err-link">Więcej o oporze cieplnym →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Specjalistyczne podkłady i okładziny</h3>
                    <p>W inżynierii HVAC kluczem jest przepuszczalność. Pod panele stosujemy podkłady o ultra-niskim oporze (np. PUM &#8211; poliuretanowo-mineralne), a drewno kleimy na elastyczny klej bezpośrednio do podłoża.</p>
                    <ul class="rk-err-list">
                        <li>Błyskawiczny transfer ciepła z rur do pomieszczenia.</li>
                        <li>Możliwość utrzymania zasilania na bezpiecznym poziomie 30-35°C.</li>
                        <li>Ochrona materiałów wykończeniowych przed rozwarstwieniem.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-err-link">Dobór okładziny do podłogówki →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="3">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Próba dławienia temperatury rotametrem</h3>
                    <p>Amatorzy często zmniejszają przepływ na rotametrach rozdzielacza prawie do zera, aby &#8222;przykręcić temperaturę&#8221; w danym pokoju. To niszczące działanie dla hydrauliki systemu.</p>
                    <ul class="rk-err-list">
                        <li>Drastyczny wzrost oporów hydraulicznych w układzie.</li>
                        <li>Przeciążenie i skrócenie żywotności pompy obiegowej.</li>
                        <li>Pojawienie się szumów i świstów wody w instalacji.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-err-link">Funkcja rotametru →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Otwarty układ i regulacja strefowa (Termostaty)</h3>
                    <p>Rotametry służą wyłącznie do kalibracji przepływów (zbilansowania oporów pętli według projektu OZC). Temperaturą w pomieszczeniu steruje się za pomocą automatyki strefowej.</p>
                    <ul class="rk-err-list">
                        <li>Zastosowanie termostatów pokojowych i listwy sterującej.</li>
                        <li>Montaż siłowników termoelektrycznych na belce powrotnej.</li>
                        <li>System sam zamyka i otwiera pętle bez obciążania pompy głównej.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-err-link">Siłowniki termoelektryczne →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="4">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Tworzenie pętli powyżej 100 metrów</h3>
                    <p>Układanie zbyt długich pętli grzewczych (szczególnie na popularnej rurze PEX 16&#215;2) powoduje całkowite wychłodzenie czynnika grzewczego zanim dotrze on z powrotem do rozdzielacza.</p>
                    <ul class="rk-err-list">
                        <li>Zimne strefy na podłodze i zjawisko tzw. &#8222;zebry termicznej&#8221;.</li>
                        <li>Wymuszanie podnoszenia temperatury zasilania na źródle.</li>
                        <li>Krytycznie duży spadek ciśnienia (ΔP), którego pompa nie uciągnie.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-link">Konsekwencje za długich pętli →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Ścisły podział na sekcje (max 80-90m)</h3>
                    <p>W projektowaniu HVAC duże pomieszczenia (np. salon o powierzchni >30m²) bezwzględnie dzielimy na dwie lub trzy niezależne sekcje zasilane z osobnych rotametrów.</p>
                    <ul class="rk-err-list">
                        <li>Pętle dla rury 16&#215;2 utrzymywane w reżimie do 80-90 metrów.</li>
                        <li>Równomierny rozkład temperatury na całej płaszczyźnie jastrychu.</li>
                        <li>Niskie opory tłoczenia gwarantujące bezawaryjną pracę pompy.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-err-link">Sprawdź normy długości pętli →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="5">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Zbyt mały przepływ i wysoka Delta T</h3>
                    <p>Zbyt niska nastawa mocy na pompie obiegowej sprawia, że woda płynie w rurach zbyt wolno. Prowadzi to do ogromnego spadku temperatury między zasilaniem a powrotem (ΔT > 10K).</p>
                    <ul class="rk-err-list">
                        <li>Odczuwalnie chłodniejsza podłoga w głębi pomieszczenia.</li>
                        <li>Nieosiągnięcie mocy projektowej obliczonej w OZC.</li>
                        <li>Niestabilna praca zaworów mieszających (skoki temperatury).</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-err-link">Czym skutkuje zła Delta T? →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Kalibracja przepływów do ΔT = 5K</h3>
                    <p>Złotym standardem w ogrzewaniu podłogowym jest projektowanie przepływów masy tak, aby różnica temperatur między zasilaniem a powrotem wynosiła około 5K (max 7K).</p>
                    <ul class="rk-err-list">
                        <li>Dostosowanie biegu pompy obiegowej na podstawie krzywej pracy.</li>
                        <li>Precyzyjne wyregulowanie rotametrów na rozdzielaczu.</li>
                        <li>Uzyskanie idealnie zbilansowanej i stałej temperatury w całym domu.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-err-link">Jak poprawnie obliczyć ΔT →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="6">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Równomierny rozstaw rur przy oknach</h3>
                    <p>Brak zagęszczenia rur przy drzwiach tarasowych, oknach HS lub chłodnych ścianach zewnętrznych. Ściany i duże przeszklenia generują miejscowo dużo większe straty ciepła niż środek pokoju.</p>
                    <ul class="rk-err-list">
                        <li>Przewianie i nieprzyjemne uczucie chłodu od strony szyb.</li>
                        <li>Zjawisko kondensacji (skraplanie się wody) na dole okien zimą.</li>
                        <li>Niedogrzanie całego pomieszczenia pomimo wysokiej temp. zasilania.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-err-link">Błędy przy dużych oknach →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Wydzielona strefa brzegowa (obwodowa)</h3>
                    <p>Rozwiązaniem inżynierskim jest zaprojektowanie &#8222;kurtyny cieplnej&#8221; w podłodze. Na szerokości około 1 metra wzdłuż newralgicznych przeszkleń zagęszczamy rury (najczęściej rozstaw co 10 cm).</p>
                    <ul class="rk-err-list">
                        <li>Skuteczne zniwelowanie strat ciepła tuż przy przegrodzie.</li>
                        <li>Zabezpieczenie szyb przed wykraplaniem się wilgoci.</li>
                        <li>Możliwość utrzymania szerokiego rozstawu (np. 15 cm) w centrum pokoju.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-err-link">Projektowanie strefy brzegowej →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="7">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Zasilanie wprost z bufora / kotła na pellet</h3>
                    <p>Wtłoczenie wody z kotła stałopalnego, kominka lub górnej części bufora ciepła bezpośrednio w rury podłogowe (gdzie parametry często przekraczają 60-70°C).</p>
                    <ul class="rk-err-list">
                        <li>Całkowite uszkodzenie (spękanie) jastrychu betonowego/anhydrytowego.</li>
                        <li>Odkształcenie izolacji EPS i zniszczenie paneli podłogowych.</li>
                        <li>Zagrożenie dla zdrowia i brak zgody z normą PN-EN 1264.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-err-link">Skutki braku mieszacza →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Zastosowanie grupy pompowo-mieszającej</h3>
                    <p>Aby pogodzić źródło wysokotemperaturowe z niskotemperaturową podłogówką, montuje się specjalną grupę wyposażoną w obrotowy, trójdrogowy zawór mieszający.</p>
                    <ul class="rk-err-list">
                        <li>Podmieszanie gorącej wody z zasilania z chłodną wodą powracającą.</li>
                        <li>Płynna redukcja temperatury do bezpiecznych 30-35°C na rozdzielaczu.</li>
                        <li>Zabezpieczenie instalacji płaszczyznowej przed uderzeniem gorąca.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-err-link">Dobór zaworu mieszającego →</a>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-err-tab');
    const contentBoxes = document.querySelectorAll('.rk-err-content-box');
    
    // Tab switching logic
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');
            
            const targetContent = this.getAttribute('data-tab');
            
            contentBoxes.forEach(box => {
                box.classList.remove('active');
                if(box.getAttribute('data-content') === targetContent) {
                    box.classList.add('active');
                }
            });
        });
    });

    // Sub-toggle logic (Error vs Fix)
    const togglePanel = document.getElementById('rkErrToggle');
    const subBtns = document.querySelectorAll('.rk-sub-btn');
    const displayArea = document.getElementById('rkErrDisplay');

    subBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            subBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const state = this.getAttribute('data-state');
            
            togglePanel.className = 'rk-err-sub-toggle state-' + state;
            displayArea.className = 'rk-err-display state-' + state + '-active';
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-blue: #0284c7;
    --rk-proj-accent: #38bdf8;
    --rk-proj-orange: #f97316;
    --rk-proj-orange-light: #ffedd5;
    --rk-proj-green: #10b981;
    --rk-proj-red: #ef4444;
    --rk-proj-bg: #ffffff;
    --rk-proj-surface: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
}

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

/* Header */
.rk-proj-header {
    background: var(--rk-proj-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-proj-header::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 50%;
    background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.05) 50%, transparent);
    transform: skewX(-20deg) translateX(150%);
    animation: rkProjShine 6s infinite;
}

@keyframes rkProjShine {
    0% { transform: skewX(-20deg) translateX(-150%); }
    50%, 100% { transform: skewX(-20deg) translateX(150%); }
}

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

.rk-proj-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    max-width: 700px;
    position: relative;
    z-index: 2;
}

/* Interactive Dashboard */
.rk-proj-dashboard {
    padding: 40px 50px;
    background: var(--rk-proj-surface);
}

.rk-proj-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-proj-switch {
    display: inline-flex;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 100px;
    padding: 6px;
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-proj-switch-btn {
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    color: var(--rk-proj-muted);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-proj-switch-btn.active[data-view="calc"] { color: #ffffff; }
.rk-proj-switch-btn.active[data-view="guess"] { color: #ffffff; }

.rk-proj-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    border-radius: 100px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-proj-switch.view-calc .rk-proj-slider {
    background: var(--rk-proj-blue);
    left: 6px;
    width: calc(50% - 6px);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

.rk-proj-switch.view-guess .rk-proj-slider {
    background: var(--rk-proj-red);
    left: 50%;
    width: calc(50% - 6px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Grid parameters */
.rk-proj-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.rk-proj-tile {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

.rk-proj-tile h4 {
    margin: 0;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-proj-muted);
}

.rk-proj-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}

.rk-proj-tile a {
    font-size: 13px;
    color: var(--rk-proj-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}

.view-calc-active .rk-proj-tile { border-color: rgba(2, 132, 199, 0.2); box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.05); }
.view-guess-active .rk-proj-tile { border-color: rgba(239, 68, 68, 0.2); }
.view-guess-active .rk-proj-val { color: var(--rk-proj-red); }

/* SVG Animation Area */
.rk-proj-viz {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-proj-border);
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-proj-viz-svg {
    width: 100%;
    max-width: 500px;
    height: auto;
}

.rk-pipe { transition: all 0.5s ease; stroke-width: 12; stroke-linecap: round; }
.rk-heat-wave { transition: all 0.5s ease; opacity: 0; }

/* States */
.state-calc .rk-pipe { stroke: var(--rk-proj-orange); }
.state-calc .rk-pipe-ghost { opacity: 1; stroke: var(--rk-proj-orange); }
.state-calc .rk-heat-wave { opacity: 0.8; stroke: var(--rk-proj-orange); animation: floatUp 2s infinite linear; }
.state-calc .rk-heat-bad { opacity: 0; }

.state-guess .rk-pipe { stroke: var(--rk-proj-red); }
.state-guess .rk-pipe-ghost { opacity: 0; }
.state-guess .rk-heat-wave { opacity: 0; }
.state-guess .rk-heat-bad { opacity: 0.8; stroke: var(--rk-proj-red); animation: floatUpBad 1.5s infinite linear; }
.state-guess .rk-cold-spot { opacity: 0.6; fill: var(--rk-proj-blue); animation: pulseCold 2s infinite alternate; }

@keyframes floatUp {
    0% { transform: translateY(10px); opacity: 0; }
    50% { opacity: 0.8; }
    100% { transform: translateY(-20px); opacity: 0; }
}
@keyframes floatUpBad {
    0% { transform: translateY(10px) scale(0.8); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-30px) scale(1.2); opacity: 0; }
}
@keyframes pulseCold {
    0% { opacity: 0.2; }
    100% { opacity: 0.6; }
}

/* Info Box */
.rk-proj-desc {
    margin-top: 30px;
    padding: 20px;
    border-radius: 12px;
    background: #f0f9ff;
    border-left: 4px solid var(--rk-proj-blue);
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-proj-text);
    transition: all 0.3s;
}

.view-guess-active .rk-proj-desc {
    background: #fef2f2;
    border-left-color: var(--rk-proj-red);
}

/* Killer CTA */
.rk-proj-cta-wrapper {
    background: linear-gradient(145deg, var(--rk-proj-dark) 0%, #000000 100%);
    padding: 50px;
    text-align: center;
    position: relative;
    border-top: 1px solid #334155;
}

.rk-cta-badge {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-proj-orange);
    color: #ffffff;
    padding: 6px 20px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.4);
    animation: rkCtaPulse 2s infinite;
}

@keyframes rkCtaPulse {
    0% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(249, 115, 22, 0); }
    100% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0); }
}

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

.rk-proj-cta-text {
    color: #cbd5e1;
    font-size: 16px;
    max-width: 600px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.rk-massive-btn {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: linear-gradient(90deg, var(--rk-proj-blue) 0%, #0369a1 100%);
    color: #ffffff;
    padding: 20px 45px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid rgba(255,255,255,0.1);
}

.rk-massive-btn:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 40px -5px rgba(2, 132, 199, 0.6);
    background: linear-gradient(90deg, #0284c7 0%, #0284c7 100%);
}

.rk-massive-btn svg { transition: transform 0.3s; }
.rk-massive-btn:hover svg { transform: translateX(8px); }

/* Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-dashboard, .rk-proj-cta-wrapper { padding: 35px 25px; }
    .rk-proj-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-proj-switch { width: 100%; display: flex; }
    .rk-proj-switch-btn { flex: 1; justify-content: center; padding: 12px 10px; font-size: 12px; }
    .rk-proj-header h2 { font-size: 24px; }
    .rk-massive-btn { width: 100%; justify-content: center; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak optymalna temperatura wpływa na projekt ogrzewania podłogowego?",
    "description": "Dowiedz się, jak założenia projektowe (OZC) i temperatura zasilania 35°C wpływają na rozstaw rur, dobór pomp obiegowych oraz grubość wylewki w instalacji podłogowej.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-wytyczne-projektowe",
    "name": "Wytyczne do projektowania instalacji płaszczyznowych 2026",
    "description": "Zależności między optymalną temperaturą zasilania (35°C) a kluczowymi parametrami fizycznymi układu ogrzewania podłogowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego OZC",
      "wydajność pompy obiegowej podłogówka",
      "rozstaw rur a temperatura zasilania",
      "grubość wylewki na ogrzewanie podłogowe",
      "koszty eksploatacji ogrzewania 2026"
    ],
    "measurementTechnique": "Obliczenia zapotrzebowania cieplnego budynku (OZC) i oporów hydraulicznych pętli grzewczych dla utrzymania zasilania niskotemperaturowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymuszony rozstaw rur: 10-15 cm przy zasilaniu 35°C.",
        "Optymalna grubość wylewki betonowej: 6-7 cm nad rurą grzewczą.",
        "Konieczność doboru pomp o większej wydajności hydraulicznej dla instalacji niskotemperaturowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-projektu",
    "name": "Symulator Skutków Braku Projektu Podłogówki",
    "description": "Interaktywne narzędzie edukacyjne porównujące parametry techniczne i koszty eksploatacji instalacji wykonanej na podstawie projektu OZC z instalacją montowaną 'na oko'.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    <div class="rk-proj-header">
        <h2>Jak optymalna temperatura wpływa na projekt ogrzewania podłogowego?</h2>
        <p>Projekt musi wyprzedzać decyzje inwestora. Jeśli założymy pracę układu przy energooszczędnych 35°C, wymusza to całkowitą zmianę podejścia do układania rur i doboru osprzętu w kotłowni.</p>
    </div>

    <div class="rk-proj-dashboard view-calc-active" id="rkProjWrapper">
        <div class="rk-proj-controls">
            <div class="rk-proj-switch view-calc" id="rkProjToggle">
                <div class="rk-proj-slider"></div>
                <div class="rk-proj-switch-btn active" data-view="calc">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    Mam projekt OZC
                </div>
                <div class="rk-proj-switch-btn" data-view="guess">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                    Robię &#8222;na oko&#8221;
                </div>
            </div>
        </div>

        <div class="rk-proj-grid">
            <div class="rk-proj-tile">
                <h4>Rozstaw rur</h4>
                <div class="rk-proj-val" id="valSpacing">10 &#8211; 15 cm</div>
                <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Sprawdź dlaczego to ważne</a>
            </div>
            <div class="rk-proj-tile">
                <h4>Wydajność pomp</h4>
                <div class="rk-proj-val" id="valPump">Zbilansowana</div>
                <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Kalkulator doboru</a>
            </div>
            <div class="rk-proj-tile">
                <h4>Grubość wylewki</h4>
                <div class="rk-proj-val" id="valScreed">6 &#8211; 7 cm</div>
                <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Wytyczne wylewek</a>
            </div>
        </div>

        <div class="rk-proj-viz state-calc" id="rkProjViz">
            <svg class="rk-proj-viz-svg" viewBox="0 0 400 150" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="0" y="100" width="400" height="50" fill="#f1f5f9" />
                <path d="M0 100 L400 100" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="5 5" />
                
                <line x1="50" y1="90" x2="50" y2="90" class="rk-pipe" />
                <line x1="110" y1="90" x2="110" y2="90" class="rk-pipe rk-pipe-ghost" />
                <line x1="170" y1="90" x2="170" y2="90" class="rk-pipe" />
                <line x1="230" y1="90" x2="230" y2="90" class="rk-pipe rk-pipe-ghost" />
                <line x1="290" y1="90" x2="290" y2="90" class="rk-pipe" />
                <line x1="350" y1="90" x2="350" y2="90" class="rk-pipe rk-pipe-ghost" />

                <path d="M30 70 Q50 30 70 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0s" />
                <path d="M90 70 Q110 30 130 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.3s" />
                <path d="M150 70 Q170 30 190 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.6s" />
                <path d="M210 70 Q230 30 250 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.9s" />
                <path d="M270 70 Q290 30 310 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 1.2s" />
                <path d="M330 70 Q350 30 370 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 1.5s" />

                <path d="M30 60 Q50 10 70 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 0s" />
                <ellipse cx="110" cy="50" rx="30" ry="10" class="rk-cold-spot" />
                <path d="M150 60 Q170 10 190 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 0.5s" />
                <ellipse cx="230" cy="50" rx="30" ry="10" class="rk-cold-spot" />
                <path d="M270 60 Q290 10 310 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 1s" />
                <ellipse cx="350" cy="50" rx="30" ry="10" class="rk-cold-spot" />
            </svg>
        </div>

        <div class="rk-proj-desc" id="rkProjDesc">
            <strong>Inwestycja w rzetelny projekt zwraca się w rachunkach już po pierwszym sezonie grzewczym.</strong> Zastosowanie mniejszego rozstawu rur (10-15 cm) i optymalnej grubości wylewki pozwala utrzymać zasilanie na poziomie 35°C. To idealne środowisko pracy dla pompy ciepła (wysoki współczynnik COP).
        </div>
    </div>

    <div class="rk-proj-cta-wrapper">
        <div class="rk-cta-badge">Krok 1 Inwestora</div>
        <h3 class="rk-proj-cta-title">Nie graj w rosyjską ruletkę swoimi rachunkami</h3>
        <p class="rk-proj-cta-text">
            Brak profesjonalnego projektu to gwarancja <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" style="color: var(--rk-proj-accent);">przewymiarowania źródła ciepła</a> i konieczności pracy na wysokich parametrach. W dobie drożejącej energii elektrycznej to ekonomiczne samobójstwo. Zainwestuj ułamek kosztów pompy ciepła w fundament bezawaryjności.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-massive-btn">
            ZAMÓW PROFESJONALNY PROJEKT 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 toggle = document.getElementById('rkProjToggle');
    const btns = toggle.querySelectorAll('.rk-proj-switch-btn');
    const wrapper = document.getElementById('rkProjWrapper');
    const viz = document.getElementById('rkProjViz');
    
    // Elements to update
    const vSpacing = document.getElementById('valSpacing');
    const vPump = document.getElementById('valPump');
    const vScreed = document.getElementById('valScreed');
    const desc = document.getElementById('rkProjDesc');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const view = this.getAttribute('data-view');
            
            // Switch UI state
            toggle.className = 'rk-proj-switch view-' + view;
            wrapper.className = 'rk-proj-dashboard view-' + view + '-active';
            viz.className = 'rk-proj-viz state-' + view;

            if (view === 'calc') {
                vSpacing.textContent = '10 - 15 cm';
                vPump.textContent = 'Zbilansowana';
                vScreed.textContent = '6 - 7 cm';
                desc.innerHTML = '<strong>Inwestycja w rzetelny projekt zwraca się w rachunkach już po pierwszym sezonie grzewczym.</strong> Zastosowanie mniejszego rozstawu rur (10-15 cm) i optymalnej grubości wylewki pozwala utrzymać zasilanie na poziomie 35°C. To idealne środowisko pracy dla pompy ciepła (wysoki współczynnik COP).';
            } else {
                vSpacing.textContent = '> 20 cm';
                vPump.textContent = 'Przewymiarowana';
                vScreed.textContent = 'Loteria';
                desc.innerHTML = '<strong>Brak projektu skutkuje chaosem hydraulicznym.</strong> Zbyt rzadki rozstaw rur wymusza drastyczne podniesienie temperatury zasilania (>45°C), aby zrekompensować martwe, chłodne strefy (niedogrzane punkty). Pompa ciepła traci sprawność, a Twoje rachunki szybują w górę.';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
    
    --rk-case-blue: #0284c7;
    --rk-case-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-case-green: #10b981;
    --rk-case-green-glow: rgba(16, 185, 129, 0.2);
    --rk-case-red: #ef4444;
    --rk-case-red-glow: rgba(239, 68, 68, 0.2);
    
    --rk-case-current: var(--rk-case-red);
}

.rk-case-wrapper {
    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(15, 23, 42, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #0f172a 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-current);
    transition: border-color 0.4s ease;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

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

/* Dashboard Grid */
.rk-case-dashboard {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: var(--rk-case-bg);
}

/* Left Content Area */
.rk-case-content {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
}

/* Sub-toggle (Before/After) */
.rk-case-toggle {
    display: inline-flex;
    background: var(--rk-case-surface);
    border: 1px solid var(--rk-case-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
    align-self: flex-start;
}

.rk-case-btn {
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    z-index: 2;
    color: var(--rk-case-muted);
    transition: color 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-case-btn.active { color: #ffffff; }

.rk-case-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    border-radius: 8px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.state-before .rk-case-slider {
    left: 6px;
    background: var(--rk-case-red);
    box-shadow: 0 4px 10px var(--rk-case-red-glow);
}

.state-after .rk-case-slider {
    left: 50%;
    background: var(--rk-case-green);
    box-shadow: 0 4px 10px var(--rk-case-green-glow);
}

/* Dynamic Text Info */
.rk-case-text-block {
    margin-bottom: 30px;
}

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

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

.rk-case-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-case-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-case-dark);
    font-weight: 600;
}

.rk-case-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    background: var(--rk-case-current);
    display: flex;
    align-items: center;
    justify-content: center;
}

.state-before .rk-case-list li::before {
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}

.state-after .rk-case-list li::before {
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* Right Panel (Metrics & Viz) */
.rk-case-metrics-panel {
    background: var(--rk-case-surface);
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-metric-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-metric-box::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; width: 4px;
    background: var(--rk-case-current);
    transition: background 0.4s ease;
}

.rk-metric-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-case-muted);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.rk-metric-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-case-muted);
}

.rk-metric-trend {
    font-size: 12px;
    font-weight: 700;
    margin-top: 5px;
    color: var(--rk-case-current);
    transition: color 0.4s ease;
}

/* Interactive SVG Diagram */
.rk-case-viz {
    margin-top: auto;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-viz-svg {
    width: 100%;
    max-width: 180px;
    height: 180px;
}

/* SVG Dynamics */
.rk-svg-gauge-bg { fill: none; stroke: #e2e8f0; stroke-width: 12; stroke-linecap: round; }
.rk-svg-gauge-fill { fill: none; stroke: var(--rk-case-current); stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray 1s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s ease; }
.rk-svg-pointer { transform-origin: 90px 90px; transition: transform 1s cubic-bezier(0.4, 0, 0.2, 1); fill: var(--rk-case-dark); }
.rk-svg-text-cop { font-size: 24px; font-weight: 900; fill: var(--rk-case-dark); text-anchor: middle; }

/* Link out */
.rk-case-link {
    display: inline-block;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-case-blue);
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.3s;
}

.rk-case-link:hover { border-color: var(--rk-case-blue); }

/* Responsive */
@media (max-width: 850px) {
    .rk-case-dashboard { grid-template-columns: 1fr; }
    .rk-case-content { border-right: none; border-bottom: 1px solid var(--rk-case-border); padding: 30px 25px; }
    .rk-case-header { padding: 30px 25px; }
    .rk-case-metrics-panel { padding: 30px 25px; }
    .rk-case-toggle { width: 100%; display: flex; }
    .rk-case-btn { flex: 1; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: Optymalizacja podłogówki dom 150 m2 (Kielce)",
    "description": "Analiza błędów instalacji ogrzewania podłogowego u Pana Antoniego z Kielc (sierpień 2025). Zobacz jak kalibracja rotametrów i włączenie krzywej grzewczej obniżyło rachunki.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Dane audytowe HVAC - Dom 150m2 Kielce",
    "description": "Zestawienie kosztów i współczynnika COP przed i po optymalizacji krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt ogrzewania domu 2025",
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "projektowe obciążenie cieplne OZC",
      "spadek temperatury ΔT",
      "termostat w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Pomiary przepływów hydraulicznych na rotametrach, rejestracja zużycia energii elektrycznej pompy ciepła oraz weryfikacja współczynnika COP przed i po audycie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan zastany (Przed): Zasilanie 45°C, zadławione przepływy, COP 2.4, sezonowy koszt 4800 zł.",
        "Stan po optymalizacji: Zasilanie max 32°C (z krzywej grzewczej), przepływy dla ΔT=5K, COP 4.6, sezonowy koszt 2200 zł."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Symulator Audytu HVAC",
    "description": "Interaktywne narzędzie prezentujące wyniki audytu i spadek kosztów ogrzewania po kalibracji w oparciu o projektowe obciążenie cieplne OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-wrapper state-before" id="rkCaseApp">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study – Raport z Audytu</div>
        <h2>Pan Antoni z Kielc (Dom 150 m²)</h2>
        <p>Analiza z sierpnia 2025 roku. Klasyczny przykład instalacji wykonanej &#8222;na oko&#8221;, bez projektu OZC. Zobacz różnicę parametrów po przeprowadzeniu profesjonalnego audytu hydraulicznego.</p>
    </div>

    <div class="rk-case-dashboard">
        <div class="rk-case-content">
            
            <div class="rk-case-toggle" id="rkCaseToggle">
                <div class="rk-case-slider"></div>
                <div class="rk-case-btn active" data-state="before">Stan Zastany (Przed)</div>
                <div class="rk-case-btn" data-state="after">Po Audycie (Po)</div>
            </div>

            <div class="rk-case-text-block" id="rkCaseTextBlock">
                <h3>Kosztowny błąd instalatora</h3>
                <p>Pan Antoni wprowadził się do nowego domu jesienią 2024. Pierwsza zima okazała się finansową katastrofą, a w salonie pękła fuga między płytkami. Co zastaliśmy na audycie?</p>
                <ul class="rk-case-list">
                    <li>Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i ułożenie rur ze zbyt rzadkim rozstawem (co 20 cm w całym domu).</li>
                    <li>Próba ratowania sytuacji poprzez ręczne dławienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.</li>
                    <li>Wymuszenie na pompie ciepła sztywnej temperatury zasilania aż 45°C.</li>
                </ul>
            </div>

            <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="rk-case-link">Poznaj konsekwencje braku projektu →</a>
        </div>

        <div class="rk-case-metrics-panel">
            
            <div class="rk-metric-box">
                <div class="rk-metric-label">Temp. Zasilania Pompy</div>
                <div class="rk-metric-val"><span id="rkValTemp">45</span> <span class="rk-metric-unit">°C</span></div>
                <div class="rk-metric-trend" id="rkTrendTemp">Sztywne ustawienie</div>
            </div>

            <div class="rk-metric-box">
                <div class="rk-metric-label">Szacowany koszt zimy (150 m²)</div>
                <div class="rk-metric-val"><span id="rkValCost">4 800</span> <span class="rk-metric-unit">PLN</span></div>
                <div class="rk-metric-trend" id="rkTrendCost">Znaczne przepłacanie</div>
            </div>

            <div class="rk-case-viz">
                <div class="rk-metric-label" style="margin-bottom:15px; text-align:center;">Wydajność Układu (COP)</div>
                <svg class="rk-viz-svg" viewBox="0 0 180 140">
                    <path class="rk-svg-gauge-bg" d="M 30 110 A 70 70 0 0 1 150 110" />
                    <path class="rk-svg-gauge-fill" id="rkSvgFill" d="M 30 110 A 70 70 0 0 1 150 110" stroke-dasharray="40 200" />
                    
                    <g class="rk-svg-pointer" id="rkSvgPointer" style="transform: rotate(-50deg);">
                        <circle cx="90" cy="110" r="10" />
                        <polygon points="86,110 94,110 90,50" />
                    </g>
                    
                    <text x="90" y="140" class="rk-svg-text-cop" id="rkSvgText">COP 2.4</text>
                </svg>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const appWrapper = document.getElementById('rkCaseApp');
    const btns = document.querySelectorAll('.rk-case-btn');
    
    // DOM Elements to update
    const textBlock = document.getElementById('rkCaseTextBlock');
    const valTemp = document.getElementById('rkValTemp');
    const trendTemp = document.getElementById('rkTrendTemp');
    const valCost = document.getElementById('rkValCost');
    const trendCost = document.getElementById('rkTrendCost');
    
    // SVG Elements
    const svgFill = document.getElementById('rkSvgFill');
    const svgPointer = document.getElementById('rkSvgPointer');
    const svgText = document.getElementById('rkSvgText');

    // Data Engine
    const auditData = {
        before: {
            cssClass: 'state-before',
            title: 'Kosztowny błąd instalatora',
            desc: 'Pan Antoni wprowadził się do nowego domu jesienią 2024. Pierwsza zima okazała się finansową katastrofą, a w salonie pękła fuga między płytkami. Co zastaliśmy na audycie?',
            bullets: [
                'Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i ułożenie rur ze zbyt rzadkim rozstawem (co 20 cm w całym domu).',
                'Próba ratowania sytuacji poprzez ręczne dławienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.',
                'Wymuszenie na pompie ciepła sztywnej temperatury zasilania aż 45°C.'
            ],
            temp: '45',
            tempTrend: 'Sztywne ustawienie (Złe)',
            cost: '4 800',
            costTrend: 'Ogromne straty finansowe',
            cop: 'COP 2.4',
            svgDash: '40 200', // Low fill
            svgRot: '-50deg'   // Pointing left (low)
        },
        after: {
            cssClass: 'state-after',
            title: 'Optymalizacja Hydrauliki',
            desc: 'Wdrożyliśmy program naprawczy bez konieczności kucia posadzek. Kluczem była optymalizacja przepływów na belce rozdzielacza oraz inteligentna praca automatyki.',
            bullets: [
                'Odblokowanie rotametrów – wykalibrowanie przepływów pod <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury ΔT=5K</a>.',
                'Włączenie <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>. Pompa reaguje teraz na temperaturę na zewnątrz.',
                'Wpięcie systemu <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatów</a> zapobiegających przegrzewaniu.'
            ],
            temp: '32',
            tempTrend: 'Z krzywej grzewczej (Max)',
            cost: '2 200',
            costTrend: 'Oszczędność 2600 zł / sezon',
            cop: 'COP 4.6',
            svgDash: '140 200', // High fill
            svgRot: '40deg'     // Pointing right (high)
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const state = this.getAttribute('data-state');
            const data = auditData[state];

            // Update Root Class
            appWrapper.className = 'rk-case-wrapper ' + data.cssClass;

            // Update Text Block
            let htmlStr = `<h3>${data.title}</h3><p>${data.desc}</p><ul class="rk-case-list">`;
            data.bullets.forEach(b => { htmlStr += `<li>${b}</li>`; });
            htmlStr += `</ul>`;
            textBlock.innerHTML = htmlStr;

            // Update Metrics
            valTemp.textContent = data.temp;
            trendTemp.textContent = data.tempTrend;
            valCost.textContent = data.cost;
            trendCost.textContent = data.costTrend;

            // Update SVG
            svgFill.setAttribute('stroke-dasharray', data.svgDash);
            svgPointer.style.transform = `rotate(${data.svgRot})`;
            svgText.textContent = data.cop;
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-panel: #1e293b;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-auth-gold: #eab308;
    --rk-auth-gold-glow: rgba(234, 179, 8, 0.2);
    --rk-auth-fb: #1877F2;
    --rk-auth-li: #0A66C2;
}

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

/* Header Area */
.rk-auth-header {
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    padding: 35px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-auth-gold);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

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

.rk-auth-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    font-weight: 500;
}

.rk-auth-trust-badge {
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    color: var(--rk-auth-gold);
    padding: 10px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Main Layout Grid */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Left Sidebar: Profile */
.rk-auth-profile {
    background: var(--rk-auth-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-photo-wrap {
    position: relative;
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 25px var(--rk-auth-blue-glow);
    position: relative;
    z-index: 2;
}

.rk-auth-photo-ring {
    position: absolute;
    top: -8px; left: -8px; right: -8px; bottom: -8px;
    border-radius: 50%;
    border: 2px dashed var(--rk-auth-blue);
    animation: rkSpin 20s linear infinite;
    z-index: 1;
}

@keyframes rkSpin { 100% { transform: rotate(360deg); } }

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

.rk-auth-title {
    font-size: 14px;
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 12px;
    width: 100%;
}

.rk-social-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-social-btn.fb { background: var(--rk-auth-fb); }
.rk-social-btn.li { background: var(--rk-auth-li); }

.rk-social-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}

/* Right Content Area */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

/* Navigation Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
    background: #ffffff;
}

.rk-auth-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-auth-tab:hover {
    color: var(--rk-auth-blue);
    background: var(--rk-auth-surface);
}

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

/* Tab Panels */
.rk-auth-panel {
    padding: 40px;
    display: none;
    animation: rkFadeInUp 0.4s ease forwards;
}

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

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

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

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

.rk-auth-panel p:last-child { margin-bottom: 0; }

/* Stats Grid in Panel 2 */
.rk-auth-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.rk-stat-box {
    background: var(--rk-auth-surface);
    border: 1px solid var(--rk-auth-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.3s;
}

.rk-stat-box:hover {
    transform: scale(1.02);
    border-color: var(--rk-auth-blue);
}

.rk-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    color: var(--rk-auth-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    flex-shrink: 0;
}

.rk-stat-info { display: flex; flex-direction: column; }

.rk-stat-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    line-height: 1.2;
}

.rk-stat-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    text-transform: uppercase;
}

/* SVG Interactive Guarantee (Panel 3) */
.rk-guarantee-viz {
    background: var(--rk-auth-dark);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 20px;
    color: #ffffff;
}

.rk-gv-text h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-auth-gold);
}

.rk-gv-text p {
    margin: 0;
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
}

.rk-gv-svg {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}

.rk-gv-shield {
    fill: none;
    stroke: var(--rk-auth-gold);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: rkShieldPulse 2s infinite alternate;
}

.rk-gv-check {
    fill: none;
    stroke: #ffffff;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
}

@keyframes rkShieldPulse {
    0% { filter: drop-shadow(0 0 5px rgba(234, 179, 8, 0.4)); }
    100% { filter: drop-shadow(0 0 15px rgba(234, 179, 8, 0.8)); transform: scale(1.05); }
}

/* Mobile */
@media (max-width: 850px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 25px; }
    .rk-auth-tabs { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-panel { padding: 30px 25px; }
    .rk-auth-stats { grid-template-columns: 1fr; }
    .rk-guarantee-viz { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-autor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Gwarancja inżynierskiej jakości – Kto stoi za tym poradnikiem?",
    "description": "Profil ekspercki Roberta Kucharskiego, inżyniera HVAC z doświadczeniem w projektowaniu optymalnej temperatury zasilania podłogówki na bazie obliczeń OZC.",
    "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",
      "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-portfolio",
    "name": "Baza wiedzy i doświadczenia HVAC - Robert Kucharski",
    "description": "Zestawienie autorskich statystyk i doświadczeń w optymalizacji systemów płaszczyznowych oraz badaniu wydajności pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie ogrzewania podłogowego OZC",
      "optymalna temperatura zasilania podłogówki",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "wydajność pompy ciepła",
      "audyt hydrauliczny instalacji"
    ],
    "measurementTechnique": "Agregacja danych z ponad 1000 zrealizowanych projektów instalacji niskotemperaturowych, ze średnim wzrostem efektywności energetycznej budynków o 20%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zrealizowane projekty instalacji płaszczyznowych: 1000+",
        "Średnia redukcja kosztów ogrzewania dzięki optymalizacji zasilania: 20%",
        "Specjalizacja: Integracja krzywych grzewczych i normy PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-autor-portfolio",
    "name": "Interaktywne Portfolio Eksperckie E-E-A-T",
    "description": "Moduł weryfikujący autorytet inżynierski autora, integrujący statystyki projektowe, gwarancję poprawności obliczeń OZC i certyfikaty z zakresu optymalizacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rkAuthApp">
    
    <div class="rk-auth-header">
        <div class="rk-auth-header-text">
            <h2>Gwarancja inżynierskiej jakości</h2>
            <p>Nie powielam internetowych mitów. Kto odpowiada za wiedzę w tym artykule?</p>
        </div>
        <div class="rk-auth-trust-badge">
            <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="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zweryfikowany Ekspert E-E-A-T
        </div>
    </div>

    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <div class="rk-auth-photo-ring"></div>
                <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">
            </div>
            
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Główny Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn li">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" data-panel="omnie">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    O Mnie
                </button>
                <button class="rk-auth-tab" data-panel="liczby">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    W Liczbach
                </button>
                <button class="rk-auth-tab" data-panel="filozofia">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Filozofia OZC
                </button>
            </div>

            <div class="rk-auth-panel active" id="panel-omnie">
                <h3>Praktyka wygrywa z teorią</h3>
                <p>
                    Projektowanie systemów ogrzewania to nie zgadywanie, to czysta matematyka i fizyka budowli. Od lat doradzam inwestorom, audytuję błędy deweloperów i udowadniam, że odpowiednia <strong>temperatura zasilania podłogówki</strong> to klucz do niższych rachunków i żywotności pompy ciepła.
                </p>
                <p>
                    Zbudowałem własne zaplecze techniczne i dom od zera. Wiem dokładnie, ile kosztuje instalatora pośpiech, a inwestora – ufność w &#8222;standardowe rozwiązania bez obliczeń&#8221;. W projekt-ogrzewania.pl łączę <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">wiedzę inżynierską</a> z pragmatyzmem z placu budowy.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-liczby">
                <h3>Instalacje oparte na twardych danych</h3>
                <p>Analizuję każdą pętlę grzewczą i optymalizuję <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywe grzewcze</a> pomp ciepła pod kątem maksymalnej wydajności.</p>
                
                <div class="rk-auth-stats">
                    <div class="rk-stat-box">
                        <div class="rk-stat-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="9" y1="21" x2="9" y2="9"></line></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">1000+</div>
                            <div class="rk-stat-label">Wykonanych Projektów OZC</div>
                        </div>
                    </div>
                    
                    <div class="rk-stat-box">
                        <div class="rk-stat-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="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">~20%</div>
                            <div class="rk-stat-label">Obniżenie kosztów energii</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-filozofia">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Mój fundament to ścisła integracja z wytycznymi technicznymi. Nie uznaję układania rur &#8222;co 15 cm wszędzie&#8221;. Każde pomieszczenie ma inne straty cieplne, co wymaga kalibracji przepływu dla idealnej różnicy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">temperatur ΔT</a>.
                </p>
                
                <div class="rk-guarantee-viz">
                    <div class="rk-gv-text">
                        <h4>Zgodność z PN-EN 1264</h4>
                        <p>Moje algorytmy i artykuły opierają się na obowiązujących normach projektowania ogrzewania płaszczyznowego, gwarantując fizjologiczny komfort domowników i bezpieczeństwo posadzek.</p>
                    </div>
                    <svg class="rk-gv-svg" viewBox="0 0 100 100">
                        <path class="rk-gv-shield" d="M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z"></path>
                        <path class="rk-gv-check" d="M 35 50 L 45 60 L 70 35"></path>
                    </svg>
                </div>
            </div>

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

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active classes
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked tab
            this.classList.add('active');

            // Show corresponding panel
            const target = this.getAttribute('data-panel');
            document.getElementById('panel-' + target).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0ea5e9;
    --rk-faq-blue-hover: #0284c7;
    --rk-faq-bg: #ffffff;
    --rk-faq-surface: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
    --rk-faq-accent: #38bdf8;
}

.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 20px 40px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

/* Nagłówek i animowane tło */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    color: #ffffff;
    overflow: hidden;
}

.rk-faq-header::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    animation: rkFaqPulseBg 4s infinite alternate;
}

@keyframes rkFaqPulseBg {
    0% { transform: scale(1); opacity: 0.5; }
    100% { transform: scale(1.5); opacity: 1; }
}

.rk-faq-title-area {
    position: relative;
    z-index: 2;
    flex: 1;
}

.rk-faq-title-area h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.2;
}

.rk-faq-title-area p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    max-width: 500px;
}

.rk-faq-main-icon {
    position: relative;
    z-index: 2;
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}

.rk-faq-anim-gear {
    transform-origin: center;
    animation: rkSpinSlow 12s linear infinite;
}

@keyframes rkSpinSlow {
    100% { transform: rotate(360deg); }
}

/* Interaktywne Filtry */
.rk-faq-filters {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.rk-faq-filter-btn {
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--rk-faq-border);
    background: var(--rk-faq-surface);
    color: var(--rk-faq-muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-faq-filter-btn:hover {
    border-color: var(--rk-faq-blue);
    color: var(--rk-faq-blue);
}

.rk-faq-filter-btn.active {
    background: var(--rk-faq-blue);
    border-color: var(--rk-faq-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.25);
}

/* Akordeon FAQ */
.rk-faq-list {
    padding: 30px 50px;
    background: var(--rk-faq-surface);
    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 cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 8px 20px -5px rgba(14, 165, 233, 0.15);
}

.rk-faq-question {
    width: 100%;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    gap: 20px;
}

.rk-faq-question h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: color 0.3s;
}

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

.rk-faq-chevron {
    width: 24px;
    height: 24px;
    color: var(--rk-faq-muted);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s;
    flex-shrink: 0;
}

.rk-faq-item.active .rk-faq-chevron {
    transform: rotate(180deg);
    color: var(--rk-faq-blue);
}

.rk-faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0 25px;
}

.rk-faq-item.active .rk-faq-answer {
    max-height: 500px; /* Wysoka wartość dla CSS transition */
    opacity: 1;
    padding: 0 25px 25px 25px;
}

.rk-faq-answer-content {
    padding-top: 15px;
    border-top: 1px solid #f1f5f9;
}

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

.rk-faq-answer p:last-child {
    margin-bottom: 0;
}

.rk-faq-answer strong {
    color: var(--rk-faq-dark);
    font-weight: 700;
}

.rk-faq-answer a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-faq-blue);
    transition: all 0.2s;
}

.rk-faq-answer a:hover {
    color: var(--rk-faq-blue-hover);
    border-bottom-style: solid;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-faq-title-area p { margin: 0 auto; }
    .rk-faq-filters { padding: 15px 20px; justify-content: center; }
    .rk-faq-list { padding: 25px 20px; }
    .rk-faq-question { padding: 15px 20px; }
    .rk-faq-question h3 { font-size: 15px; }
    .rk-faq-answer { padding: 0 20px; }
    .rk-faq-item.active .rk-faq-answer { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o optymalną temperaturę podłogówki",
    "description": "Baza wiedzy inżynierskiej: maksymalna temperatura zasilania, sterowanie strefowe, bezwładność cieplna wylewki oraz ryzyko zasilania podłogówki wysokim parametrem z kotł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-06-01",
    "dateModified": "2026-06-01",
    "mainEntity": {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna temperatura wody w podłogówce?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Maksymalna dopuszczalna temperatura zasilania w nowoczesnych układach to zazwyczaj 45°C–50°C, jednak powyżej 40°C znacznie rośnie ryzyko uszkodzenia posadzki. Praca ciągła na wysokim parametrze skraca żywotność rur PEX i drastycznie obniża współczynnik COP pompy ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy temperatura podłogówki powinna być taka sama w każdym pokoju?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie, temperatura powinna być dostosowana do zapotrzebowania konkretnego pomieszczenia poprzez różny rozstaw rur i zastosowanie automatyki strefowej. Innego komfortu cieplnego wymaga łazienka (24°C), a innego sypialnia (19°C), co regulujemy rotametrami na rozdzielaczu."
          }
        },
        {
          "@type": "Question",
          "name": "Jak szybko podłogówka reaguje na zmiany temperatury?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Ze względu na dużą bezwładność cieplną wylewki (grubość betonu 6-7 cm), zmiana temperatury odczuwalna jest po około 3–6 godzinach od regulacji na termostacie. Szybszą reakcją charakteryzują się jedynie systemy suche, gdzie opór cieplny nad rurą jest minimalny."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można zasilać podłogówkę wodą o temp. 50°C?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jest to technicznie możliwe przy połączeniu ze starym kotłem zasypowym, ale absolutnie niezalecane w nowoczesnym budownictwie ze względu na ryzyko pękania posadzek i nieefektywną pracę. Konieczne jest użycie zaworu mieszającego dla zabezpieczenia układu płaszczyznowego przed przegrzaniem."
          }
        }
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Wiedzy FAQ - Parametry Pracy Ogrzewania Podłogowego",
    "description": "Zestawienie inżynierskich pytań i odpowiedzi dotyczących bezpieczeństwa temperaturowego, bezwładności i sterowania strefowego w instalacjach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "sterowanie strefowe ogrzewaniem",
      "bezwładność cieplna w ogrzewaniu podłogowym",
      "zawór mieszający w ogrzewaniu podłogowym",
      "ryzyko pękania posadzki"
    ],
    "measurementTechnique": "Ekstrakcja danych normatywnych z normy PN-EN 1264 oraz charakterystyki pracy pomp ciepła w układach niskotemperaturowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Analiza wpływu temperatury >40°C na wylewki i efektywność energetyczną.",
        "Wytyczne do projektowania zróżnicowanych stref cieplnych za pomocą rotametrów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Asystent FAQ Ogrzewania Płaszczyznowego",
    "description": "Dynamiczny komponent interfejsu (akordeon wiedzy) umożliwiający szybkie filtrowanie i wyszukiwanie inżynierskich odpowiedzi dotyczących norm i eksploatacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "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">
        <div class="rk-faq-title-area">
            <h2>FAQ – Najczęściej zadawane pytania</h2>
            <p>Rozwiewamy inżynierskie mity. Poznaj oparte na normach (PN-EN 1264) odpowiedzi dotyczące temperatury, bezwładności posadzki i bezpiecznej eksploatacji.</p>
        </div>
        <div class="rk-faq-main-icon">
            <svg viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M50 15 C 30 15, 15 30, 15 50 C 15 70, 30 85, 50 85 C 70 85, 85 70, 85 50 C 85 30, 70 15, 50 15 Z" stroke="#38bdf8" stroke-width="4" stroke-dasharray="10 6" class="rk-faq-anim-gear"/>
                <path d="M40 40 C40 35, 45 30, 50 30 C55 30, 60 35, 60 40 C60 45, 55 48, 50 52 L50 58" stroke="#ffffff" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
                <circle cx="50" cy="70" r="4" fill="#ffffff"/>
            </svg>
        </div>
    </div>

    <div class="rk-faq-filters" id="rkFaqFilters">
        <button class="rk-faq-filter-btn active" data-filter="all">Wszystkie pytania</button>
        <button class="rk-faq-filter-btn" data-filter="parametry">Parametry i Normy</button>
        <button class="rk-faq-filter-btn" data-filter="sterowanie">Sterowanie</button>
    </div>

    <div class="rk-faq-list" id="rkFaqList">
        
        <div class="rk-faq-item" data-category="parametry">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Jaka jest maksymalna temperatura wody w podłogówce?</h3>
                <svg class="rk-faq-chevron" 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-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Maksymalna dopuszczalna temperatura zasilania w nowoczesnych układach to zazwyczaj <strong>45°C–50°C</strong>, jednak długotrwała praca powyżej 40°C jest błędem sztuki. Oznacza to ogromne ryzyko zniszczenia posadzki (pękanie płytek, rozsychanie drewna) oraz pogorszenie komfortu domowników (efekt &#8222;ciężkich nóg&#8221;). 
                    </p>
                    <p>
                        W poprawnie obliczonym systemie <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a> z pompy ciepła nie powinna przekraczać 35°C w największe mrozy. Utrzymanie niskiego parametru to fundament wysokiego COP i niskich rachunków.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="sterowanie">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy temperatura podłogówki powinna być taka sama w każdym pokoju?</h3>
                <svg class="rk-faq-chevron" 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-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Zdecydowanie nie. Temperatura wody grzewczej wychodzącej z pompy jest jedna, ale temperatura posadzki w każdym pomieszczeniu musi być dostosowana do jego funkcji. W łazience potrzebujemy <strong>24°C</strong>, podczas gdy w sypialni komfortowy sen zapewnia <strong>18-19°C</strong>.
                    </p>
                    <p>
                        Osiągamy to na etapie projektu poprzez zagęszczenie pętli rur (np. co 10 cm w łazience, co 15 cm w salonie) oraz precyzyjne <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> z wykorzystaniem dławienia przepływów na rotametrach rozdzielacza i termostatów pokojowych.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="parametry">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Jak szybko podłogówka reaguje na zmiany temperatury?</h3>
                <svg class="rk-faq-chevron" 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-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        W tradycyjnym systemie mokrym (wylewka betonowa lub anhydrytowa o grubości 6-7 cm) zmiana temperatury na termostacie jest odczuwalna w pomieszczeniu po upływie <strong>od 3 do nawet 6 godzin</strong>. Zjawisko to nazywamy <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładnością cieplną w ogrzewaniu podłogowym</a>.
                    </p>
                    <p>
                        Masywna płyta betonowa długo się nagrzewa, ale też bardzo długo oddaje zakumulowane ciepło. Z tego powodu nie zaleca się drastycznego obniżania temperatury na noc lub na czas wyjścia do pracy (np. o 3-4 stopnie), ponieważ ponowne wygrzanie wyziębionej płyty pochłonie więcej energii niż utrzymywanie stałej, stabilnej temperatury.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="sterowanie">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy można zasilać podłogówkę wodą o temp. 50°C?</h3>
                <svg class="rk-faq-chevron" 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-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Bezpośrednie zasilanie instalacji płaszczyznowej wodą o temperaturze 50°C jest błędem sztuki instalacyjnej. Tak wysoki parametr jest zarezerwowany dla grzejników wysokotemperaturowych. Wpuszczenie 50°C w podłogę doprowadzi do przekroczenia normy PN-EN 1264, zniszczenia struktury jastrychu i odkształcenia paneli.
                    </p>
                    <p>
                        Jeśli źródłem ciepła jest kocioł na pellet, gaz lub węgiel, bezwzględnie wymagany jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podłogowym</a> połączony z grupą pompową. Obniża on temperaturę zasilania pętli poprzez podmieszanie gorącej wody z kotła z chłodniejszą wodą powracającą z podłogówki.
                    </p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Akordeonu
    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');
            
            // Zamknij wszystkie inne
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Logika Filtrowania
    const filterBtns = document.querySelectorAll('.rk-faq-filter-btn');
    
    filterBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Zmiana aktywnego przycisku
            filterBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            
            const filterValue = btn.getAttribute('data-filter');
            
            // Filtrowanie elementów
            faqItems.forEach(item => {
                item.classList.remove('active'); // Zamknij otwarte przy filtrowaniu
                item.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                
                if (filterValue === 'all' || item.getAttribute('data-category') === filterValue) {
                    item.style.display = 'block';
                    // Animacja pojawiania się
                    setTimeout(() => {
                        item.style.opacity = '1';
                        item.style.transform = 'translateY(0)';
                    }, 50);
                } else {
                    item.style.opacity = '0';
                    item.style.transform = 'translateY(10px)';
                    setTimeout(() => {
                        item.style.display = 'none';
                    }, 300); // Czas trwania animacji zanikania w CSS (jeśli dodana, tu dla płynności)
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-opt-dark: #0f172a;
    --rk-opt-card: #1e293b;
    --rk-opt-blue: #0284c7;
    --rk-opt-accent: #38bdf8;
    --rk-opt-green: #10b981;
    --rk-opt-green-glow: rgba(16, 185, 129, 0.3);
    --rk-opt-red: #ef4444;
    --rk-opt-red-glow: rgba(239, 68, 68, 0.3);
    --rk-opt-text: #f8fafc;
    --rk-opt-muted: #94a3b8;
    --rk-opt-bg: #ffffff;
    --rk-opt-border: #e2e8f0;
}

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

/* Sekcja Główna */
.rk-opt-header {
    background: linear-gradient(145deg, var(--rk-opt-dark) 0%, var(--rk-opt-card) 100%);
    padding: 40px 50px;
    color: var(--rk-opt-text);
    position: relative;
}

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

.rk-opt-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-opt-muted);
    margin: 0 0 15px 0;
    max-width: 800px;
}

.rk-opt-highlight {
    color: var(--rk-opt-accent);
    font-weight: 700;
}

/* Interfejs Symulatora */
.rk-opt-dashboard {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-opt-border);
}

.rk-opt-controls {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-opt-controls h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-opt-dark);
    margin: 0 0 25px 0;
}

/* Przełącznik jak w aplikacji (Toggle) */
.rk-opt-toggle-container {
    background: #ffffff;
    border: 1px solid var(--rk-opt-border);
    border-radius: 16px;
    padding: 8px;
    display: flex;
    position: relative;
    margin-bottom: 30px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-opt-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    border-radius: 12px;
    transition: all 0.3s ease;
    z-index: 2;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-opt-toggle-btn.active[data-mode="eco"] {
    color: #ffffff;
}

.rk-opt-toggle-btn.active[data-mode="waste"] {
    color: #ffffff;
}

.rk-opt-toggle-slider {
    position: absolute;
    top: 8px;
    bottom: 8px;
    width: calc(50% - 8px);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-opt-toggle-container.mode-eco .rk-opt-toggle-slider {
    left: 8px;
    background: var(--rk-opt-green);
    box-shadow: 0 4px 12px var(--rk-opt-green-glow);
}

.rk-opt-toggle-container.mode-waste .rk-opt-toggle-slider {
    left: calc(50%);
    background: var(--rk-opt-red);
    box-shadow: 0 4px 12px var(--rk-opt-red-glow);
}

/* Tekst wynikowy */
.rk-opt-result-text {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-opt-border);
    min-height: 140px;
    transition: all 0.3s ease;
}

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

.rk-opt-result-text a {
    color: var(--rk-opt-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-opt-result-text a:hover {
    border-color: var(--rk-opt-blue);
}

/* Wizualizacja Termometru (SVG) */
.rk-opt-visual {
    background: #ffffff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-left: 1px solid var(--rk-opt-border);
    position: relative;
}

.rk-opt-visual h4 {
    margin: 0 0 20px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-opt-muted);
}

.rk-thermometer-svg {
    width: 100px;
    height: 220px;
    overflow: visible;
}

.rk-therm-bg { fill: #f1f5f9; stroke: #e2e8f0; stroke-width: 2; }
.rk-therm-liquid { transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-therm-glow { transition: all 0.8s; opacity: 0; }

.state-eco .rk-therm-liquid { fill: var(--rk-opt-green); }
.state-eco .rk-therm-glow { fill: var(--rk-opt-green); opacity: 0.2; filter: blur(8px); }
.state-eco .rk-therm-level { transform: translateY(0); }
.state-eco .rk-therm-text { fill: var(--rk-opt-green); }

.state-waste .rk-therm-liquid { fill: var(--rk-opt-red); }
.state-waste .rk-therm-glow { fill: var(--rk-opt-red); opacity: 0.3; filter: blur(12px); animation: rkPulseWarning 1.5s infinite alternate; }
.state-waste .rk-therm-level { transform: translateY(-70px); }
.state-waste .rk-therm-text { fill: var(--rk-opt-red); }

@keyframes rkPulseWarning {
    from { opacity: 0.2; filter: blur(8px); }
    to { opacity: 0.4; filter: blur(15px); }
}

.rk-therm-value {
    font-size: 28px;
    font-weight: 900;
    transition: fill 0.3s;
}

/* CTA Footer */
.rk-opt-footer {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-opt-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-opt-btn {
    background: var(--rk-opt-dark);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
}

.rk-opt-btn:hover {
    background: var(--rk-opt-blue);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

/* Responsywność */
@media (max-width: 850px) {
    .rk-opt-dashboard { grid-template-columns: 1fr; }
    .rk-opt-visual { border-left: none; border-top: 1px solid var(--rk-opt-border); padding: 30px; }
    .rk-opt-footer { flex-direction: column; gap: 20px; text-align: center; }
    .rk-opt-header { padding: 30px 25px; }
    .rk-opt-controls { padding: 30px 25px; }
    .rk-opt-toggle-container { flex-direction: column; }
    .rk-opt-toggle-slider { width: calc(100% - 16px); top: 8px; height: calc(50% - 8px); transition: all 0.3s ease; }
    .rk-opt-toggle-container.mode-eco .rk-opt-toggle-slider { top: 8px; left: 8px; }
    .rk-opt-toggle-container.mode-waste .rk-opt-toggle-slider { top: calc(50%); left: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-podsumowanie-wydajnosci",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie: Jak ustawić system dla maksymalnej wydajności?",
    "description": "Złoty standard konfiguracji ogrzewania podłogowego. Dowiedz się, dlaczego praca w zakresie 30°C–35°C łączy komfort, ekologię i realne oszczędności finansowe dzięki krzywej grzewczej.",
    "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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-temperatury",
    "name": "Zestawienie optymalizacji parametrów temperatury zasilania podłogówki",
    "description": "Techniczne porównanie złotego standardu inżynierskiego (30-35°C) z błędnymi ustawieniami empirycznymi. Baza danych wpływu krzywej grzewczej na roczne koszty eksploatacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura ogrzewania podłogowego",
      "krzywa grzewcza pompy ciepła",
      "obliczenia hydrauliczne podłogówki",
      "projekt techniczny instalacji",
      "oszczędności finansowe na ogrzewaniu"
    ],
    "measurementTechnique": "Analiza wskaźników efektywności COP dla układów płaszczyznowych pracujących w różnych przedziałach temperatur zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ustawienia Inżynierskie: Zasilanie 30-35°C, maksymalna żywotność posadzki, najwyższe COP.",
        "Ustawienia Empiryczne: Zasilanie >40°C, straty energii, ryzyko pękania wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator",
    "name": "Symulator Efektywności Cieplnej Podłogówki",
    "description": "Interaktywny interfejs wizualizujący wpływ wyboru temperatury zasilania na koszty, komfort oraz ekologię w domowych systemach grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opt-wrapper" id="rk-opt-app">
    <div class="rk-opt-header">
        <h2>Podsumowanie: Jak ustawić system dla maksymalnej wydajności?</h2>
        <p>Optymalizacja temperatury to proces dwuetapowy. Najpierw precyzyjny projekt techniczny, a następnie odpowiednia konfiguracja parametrów w automatyce źródła ciepła. <span class="rk-opt-highlight">Dążenie do pracy w zakresie 30°C–35°C to złoty standard.</span></p>
        <p>Jeśli budujesz lub remontujesz – nie pomijaj etapu obliczeń. To tutaj zapadają najważniejsze decyzje o kosztach Twojego życia w kolejnych latach.</p>
    </div>

    <div class="rk-opt-dashboard">
        <div class="rk-opt-controls">
            <h3>Wybierz model sterowania:</h3>
            
            <div class="rk-opt-toggle-container mode-eco" id="rkOptToggleGroup">
                <div class="rk-opt-toggle-slider"></div>
                <div class="rk-opt-toggle-btn active" data-mode="eco">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Złoty Standard
                </div>
                <div class="rk-opt-toggle-btn" data-mode="waste">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                    &#8222;Ustawienia na oko&#8221;
                </div>
            </div>

            <div class="rk-opt-result-text" id="rkOptResultBox">
                <p>
                    <strong>Zakres 30°C–35°C</strong> łączy maksymalny komfort, najwyższą ekologię i realne oszczędności finansowe. System wykorzystuje właściwie skonfigurowaną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a>, a fundamentem są rzetelne obliczenia hydrauliczne. Instalacja odwdzięcza się bezobsługową pracą przez dekady.
                </p>
            </div>
        </div>

        <div class="rk-opt-visual state-eco" id="rkOptVisualBox">
            <h4>Temperatura zasilania</h4>
            <svg class="rk-thermometer-svg" viewBox="0 0 100 220">
                <defs>
                    <clipPath id="therm-clip">
                        <rect x="35" y="20" width="30" height="140" rx="15" />
                    </clipPath>
                </defs>
                <!-- Glow effect background -->
                <circle cx="50" cy="180" r="35" class="rk-therm-glow" />
                
                <!-- Thermometer Body -->
                <rect x="35" y="20" width="30" height="150" rx="15" class="rk-therm-bg" />
                <circle cx="50" cy="175" r="25" class="rk-therm-bg" />
                
                <!-- Liquid Fill inside tube -->
                <g clip-path="url(#therm-clip)">
                    <!-- translateY(0) = 30°C, translateY(-70px) = 45°C+ -->
                    <rect x="35" y="100" width="30" height="100" class="rk-therm-liquid rk-therm-level" />
                </g>
                <!-- Bulb Fill -->
                <circle cx="50" cy="175" r="20" class="rk-therm-liquid" />

                <!-- Text overlay -->
                <text x="50" y="60" text-anchor="middle" class="rk-therm-value rk-therm-text" id="rkThermValue">32°C</text>
                
                <!-- Glass Reflection -->
                <path d="M 40 30 Q 45 30 45 80" stroke="#ffffff" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.6"/>
            </svg>
        </div>
    </div>

    <div class="rk-opt-footer">
        <div style="font-size: 14px; color: #64748b; max-width: 350px;">
            Wyeliminuj błędy zanim wylejesz posadzkę. Poznaj parametry swojego budynku.
        </div>
        <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-opt-btn">
            OBLICZ ZAPOTRZEBOWANIE
            <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="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleContainer = document.getElementById('rkOptToggleGroup');
    const btns = toggleContainer.querySelectorAll('.rk-opt-toggle-btn');
    const resultBox = document.getElementById('rkOptResultBox');
    const visualBox = document.getElementById('rkOptVisualBox');
    const thermValue = document.getElementById('rkThermValue');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Aktualizacja przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const mode = this.getAttribute('data-mode');

            // Przesunięcie suwaka i klas kontenera
            toggleContainer.className = 'rk-opt-toggle-container mode-' + mode;

            if (mode === 'eco') {
                visualBox.className = 'rk-opt-visual state-eco';
                thermValue.textContent = '32°C';
                
                resultBox.innerHTML = `
                    <p>
                        <strong>Zakres 30°C–35°C</strong> łączy maksymalny komfort, najwyższą ekologię i realne oszczędności finansowe. System wykorzystuje właściwie skonfigurowaną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a>, a fundamentem są rzetelne obliczenia hydrauliczne. Instalacja odwdzięcza się bezobsługową pracą przez dekady.
                    </p>
                `;
            } else {
                visualBox.className = 'rk-opt-visual state-waste';
                thermValue.textContent = '45°C';
                
                resultBox.innerHTML = `
                    <p>
                        <strong>Ryzyko i straty.</strong> Poleganie na "ustawieniach na oko" prowadzi do przegrzewania zasilania (>40°C). System traci <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny</a>, pompa ciepła traci wydajność (niski COP), a Ty płacisz zawyżone rachunki za prąd ryzykując przy tym pęknięcie wylewki.
                    </p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-info-dark: #0f172a;
    --rk-info-panel: #1e293b;
    --rk-info-bg: #ffffff;
    --rk-info-surface: #f8fafc;
    --rk-info-border: #e2e8f0;
    --rk-info-text: #334155;
    --rk-info-muted: #64748b;
    
    --rk-info-blue: #0284c7;
    --rk-info-blue-dark: #0369a1;
    --rk-info-blue-glow: rgba(2, 132, 199, 0.2);
    --rk-info-accent: #38bdf8;
    --rk-info-green: #10b981;
}

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

/* Header */
.rk-info-header {
    background: linear-gradient(135deg, var(--rk-info-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-info-blue);
    overflow: hidden;
}

.rk-info-header::before {
    content: '';
    position: absolute;
    top: -50px; right: -50px;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.15) 0%, transparent 70%);
    border-radius: 50%;
}

.rk-info-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: var(--rk-info-accent);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

.rk-info-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.rk-info-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Main Grid Layout */
.rk-info-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-info-bg);
}

/* Left: Image Preview */
.rk-info-preview-box {
    padding: 40px;
    background: var(--rk-info-surface);
    border-right: 1px solid var(--rk-info-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-img-wrapper {
    position: relative;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.15);
    border: 1px solid var(--rk-info-border);
    group: relative;
    cursor: pointer;
}

.rk-img-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-img-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.3s ease;
}

.rk-img-wrapper:hover img {
    transform: scale(1.05);
}

.rk-img-wrapper:hover .rk-img-overlay {
    opacity: 1;
}

.rk-zoom-icon {
    color: #ffffff;
    background: rgba(255,255,255,0.2);
    padding: 15px;
    border-radius: 50%;
    backdrop-filter: blur(4px);
    transform: scale(0.8);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-img-wrapper:hover .rk-zoom-icon {
    transform: scale(1);
}

/* Right: Action Area */
.rk-info-action-box {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

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

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

/* Checklist Details */
.rk-info-checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-info-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-info-dark);
    font-weight: 600;
}

.rk-info-checklist li svg {
    color: var(--rk-info-green);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Download Button */
.rk-btn-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-info-blue);
    color: #ffffff;
    padding: 18px 30px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 10px 20px -5px var(--rk-info-blue-glow);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.rk-btn-download::after {
    content: '';
    position: absolute;
    top: 0; left: -100%; width: 50%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    animation: rkShineBtn 3s infinite;
}

@keyframes rkShineBtn {
    0% { left: -100%; }
    20% { left: 200%; }
    100% { left: 200%; }
}

.rk-btn-download:hover {
    transform: translateY(-3px);
    background: var(--rk-info-blue-dark);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.4);
}

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

.rk-btn-download:hover svg {
    transform: translateY(3px);
}

.rk-file-meta {
    margin-top: 15px;
    font-size: 12px;
    color: var(--rk-info-muted);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-file-meta span {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Footer Copyright */
.rk-info-footer {
    background: var(--rk-info-surface);
    padding: 20px 40px;
    border-top: 1px solid var(--rk-info-border);
    font-size: 12px;
    color: var(--rk-info-muted);
    text-align: center;
    line-height: 1.6;
    font-weight: 500;
}

/* Image Modal */
.rk-modal {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.9);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.rk-modal.open {
    opacity: 1;
    pointer-events: auto;
}

.rk-modal-content {
    max-width: 90%;
    max-height: 90vh;
    position: relative;
    transform: scale(0.95);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-modal.open .rk-modal-content {
    transform: scale(1);
}

.rk-modal-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    display: block;
}

.rk-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-info-grid { grid-template-columns: 1fr; }
    .rk-info-header { padding: 30px 25px; }
    .rk-info-preview-box { padding: 30px 25px; border-right: none; border-bottom: 1px solid var(--rk-info-border); }
    .rk-info-action-box { padding: 30px 25px; }
    .rk-img-wrapper { max-width: 300px; margin: 0 auto; }
    .rk-btn-download { width: 100%; }
    .rk-file-meta { justify-content: center; flex-wrap: wrap; }
    .rk-info-footer { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Infografika: Optymalna temperatura ogrzewania podłogowego",
    "description": "Zestawienie tabelaryczne i graficzne najważniejszych parametrów zasilania podłogówki dla różnych stref i okładzin. Pobierz materiał PDF gotowy do druku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.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-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Karta Techniczna Instalatora (PDF) - Ogrzewanie Podłogowe",
    "description": "Zestawienie wytycznych wg PN-EN 1264 obejmujące opory cieplne posadzek, optymalne temperatury zasilania oraz rozstaw rur w formacie PDF i WEBP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "tabela temperatur podłogówki",
      "wytyczne instalacyjne hvac pdf",
      "norma PN-EN 1264 tabela",
      "temperatura zasilania ściągawka"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych danych obliczeniowych OZC i krzywych grzewczych do formatu graficznego ułatwiającego weryfikację nastaw na obiekcie.",
    "mainEntity": {
      "@type": "MediaObject",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.pdf",
      "encodingFormat": "application/pdf"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-infografika-viewer",
    "name": "Interaktywna Przeglądarka Kreskowa",
    "description": "Komponent interfejsu umożliwiający szybki podgląd (zoom) infografiki technicznej przed pobraniem pliku PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-info-container" id="rkInfoApp">
    
    <div class="rk-info-header">
        <div class="rk-info-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>
            Darmowy Materiał PDF
        </div>
        <h2>Infografika: Optymalna temperatura w pigułce</h2>
        <p>Przygotowałem dla Ciebie czytelną &#8222;ściągawkę&#8221; zbierającą najważniejsze wytyczne normy PN-EN 1264. Idealny materiał referencyjny na budowę lub do rozmów z instalatorem.</p>
    </div>

    <div class="rk-info-grid">
        
        <div class="rk-info-preview-box">
            <div class="rk-img-wrapper" id="rkImgTrigger" title="Kliknij, aby powiększyć">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.webp" alt="Podgląd infografiki: Optymalna temperatura ogrzewania podłogowego" loading="lazy">
                <div class="rk-img-overlay">
                    <div class="rk-zoom-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="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>
        </div>

        <div class="rk-info-action-box">
            <h3>Wszystkie dane techniczne w jednym miejscu</h3>
            <p>Nie musisz pamiętać skomplikowanych wzorów. Zapisz ten plik na telefonie lub wydrukuj, aby mieć pod ręką parametry niezbędne do prawidłowej regulacji systemu HVAC.</p>
            
            <ul class="rk-info-checklist">
                <li>
                    <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="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Tabele temperatur zasilania</strong> dopasowane do rodzaju posadzki (płytki, panele, drewno).</span>
                </li>
                <li>
                    <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="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Maksymalne limity ciepła</strong> dla poszczególnych pomieszczeń wg PN-EN 1264.</span>
                </li>
                <li>
                    <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="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Podsumowanie błędów</strong> obniżających efektywność (COP) pomp ciepła.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.pdf" download="Infografika-Optymalna-Temperatura-Podlogowki.pdf" class="rk-btn-download">
                Pobierz materiał w PDF
                <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 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>
            </a>

            <div class="rk-file-meta">
                <span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg> Format: PDF</span>
                <span><svg width="14" height="14" 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> Jakość: Do druku (A4)</span>
            </div>
        </div>
    </div>

    <div class="rk-info-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>

</div>

<div class="rk-modal" id="rkImgModal">
    <div class="rk-modal-content">
        <button class="rk-modal-close" id="rkModalClose">
            Zamknij
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.webp" alt="Infografika pełny rozmiar" class="rk-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const trigger = document.getElementById('rkImgTrigger');
    const modal = document.getElementById('rkImgModal');
    const closeBtn = document.getElementById('rkModalClose');

    // Open Modal
    trigger.addEventListener('click', () => {
        modal.classList.add('open');
        document.body.style.overflow = 'hidden'; // prevent background scrolling
    });

    // Close Modal on Button
    closeBtn.addEventListener('click', () => {
        modal.classList.remove('open');
        document.body.style.overflow = '';
    });

    // Close Modal on Outside Click
    modal.addEventListener('click', (e) => {
        if (e.target === modal) {
            modal.classList.remove('open');
            document.body.style.overflow = '';
        }
    });

    // Close Modal on ESC key
    document.addEventListener('keydown', (e) => {
        if (e.key === 'Escape' && modal.classList.contains('open')) {
            modal.classList.remove('open');
            document.body.style.overflow = '';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
