<?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 pompy ciepła - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/pompy-ciepla/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/pompy-ciepla/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Wed, 13 May 2026 17:51:40 +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 pompy ciepła - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/pompy-ciepla/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pompa Ciepła.</title>
		<link>https://projekt-ogrzewania.pl/pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Jan 2026 16:18:37 +0000</pubDate>
				<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></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[Technologie OZE]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[dolne źródło]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[gruntowa pompa ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[powietrzna pompa ciepła]]></category>
		<category><![CDATA[praca biwalentna]]></category>
		<category><![CDATA[projekt instalacji grzewczej]]></category>
		<category><![CDATA[schemat hydrauliczny]]></category>
		<category><![CDATA[scop]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3039</guid>

					<description><![CDATA[<p>Pompa ciepła to dziś jedno z najbardziej zaawansowanych technologicznie rozwiązań grzewczych, które realnie zmienia sposób projektowania nowoczesnych instalacji w budownictwie jednorodzinnym i komercyjnym. W artykule szczegółowo omawiamy zasadę działania pomp ciepła w ujęciu termodynamicznym, porównujemy ich główne typy, analizujemy kryteria doboru mocy, pracę biwalentną oraz kluczowe schematy hydrauliczne. Szczególną uwagę poświęcono współpracy pompy ciepła z ogrzewaniem podłogowym, buforom ciepła oraz aspektom projektowym decydującym o rzeczywistej sprawności i trwałości całego systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa Ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Pompa ciepła</strong> to urządzenie, które rewolucjonizuje sposób myślenia o ogrzewaniu budynków. W dobie rosnących kosztów energii i konieczności dbania o środowisko, <strong>pompy ciepła</strong> stają się kluczowym elementem nowoczesnych, efektywnych energetycznie systemów grzewczych. W tym obszernym, technicznym artykule dogłębnie przeanalizujemy zasadę działania, typy, kryteria doboru, schematy hydrauliczne oraz aspekty projektowe, ze szczególnym uwzględnieniem współpracy z <strong><a href="https://projekt-ogrzewania.pl">ogrzewaniem podłogowym</a></strong>.</p>



<h2 class="wp-block-heading">Podstawy termodynamiczne: Jak działa pompa ciepła?</h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć potencjał tej technologii, należy zacząć od jej fundamentalnych zasad.&nbsp;<strong>Pompa ciepła</strong>&nbsp;nie &#8222;wytwarza&#8221; ciepła w tradycyjnym sensie, lecz&nbsp;<strong>transportuje</strong>&nbsp;je z otoczenia o niższej temperaturze (dolne źródło) do instalacji grzewczej budynku o temperaturze wyższej (górne źródło). Proces ten jest możliwy dzięki cyklowi termodynamicznemu, identycznemu jak w lodówce, tyle że skierowanemu na cel grzewczy.</p>



<h3 class="wp-block-heading">Kluczowe elementy obiegu chłodniczego.</h3>



<p class="wp-block-paragraph">Każda&nbsp;<strong>pompa grzewcza</strong>&nbsp;składa się z czterech podstawowych komponentów, przez które krąży ekologiczny czynnik chłodniczy:</p>



<ol start="1" class="wp-block-list">
<li><strong>Parownik</strong>: W tym wymienniku czynnik chłodniczy odbiera energię cieplną z <strong>dolnego źródła</strong> (np. z powietrza, gruntu lub wody). Następuje proces odparowania, czyli zmiana stanu skupienia z ciekłego na gazowy, przy niskim ciśnieniu i temperaturze.</li>



<li><strong>Sprężarka</strong>: Jest sercem układu i głównym poborcą energii elektrycznej. Jej zadaniem jest sprężenie gazowego czynnika, co drastycznie podnosi jego ciśnienie i, zgodnie z prawami termodynamiki, <strong>temperaturę</strong>.</li>



<li><strong>Skraplacz</strong>: Tutaj gorący, sprężony gaz oddaje zgromadzone ciepło do <strong>instalacji grzewczej</strong> (np. wody w obiegu CO lub CWU). Czynnik ulega skropleniu, przechodząc znów w stan ciekły, ale pod wysokim ciśnieniem.</li>



<li><strong>Zawór rozprężny</strong>: Redukuje ciśnienie i temperaturę ciekłego czynnika, przygotowując go ponownie do odbioru energii w parowniku. Cykl się zamyka.</li>
</ol>



<p class="wp-block-paragraph"><strong>Współczynnik wydajności COP</strong>&nbsp;to najważniejszy parametr opisujący efektywność tego procesu. Definiuje się go jako stosunek dostarczonej energii cieplnej do pobranej energii elektrycznej.&nbsp;<strong>COP = 4</strong>&nbsp;oznacza, że z 1 kW pobranej prądu, pompa dostarcza 4 kW ciepła. Warto rozróżnić&nbsp;<strong>COP chwilowy</strong>&nbsp;(dla konkretnych warunków laboratoryjnych, np. A7/W35) od&nbsp;<strong>sezonowego współczynnika wydajności SCOP</strong>, który uwzględnia zmienne warunki w ciągu całego sezonu grzewczego i jest miarodajnym wskaźnikiem rzeczywistej efektywności.</p>



<h2 class="wp-block-heading">Rodzaje pomp ciepła: Od powietrza, przez grunt, po wodę.</h2>



<p class="wp-block-paragraph">Klasyfikacji&nbsp;<strong>urządzeń grzewczych</strong>&nbsp;tego typu dokonuje się przede wszystkim w oparciu o rodzaj&nbsp;<strong>dolnego</strong>&nbsp;i&nbsp;<strong>górnego źródła</strong>.</p>



<h3 class="wp-block-heading">Pompa ciepła typu powietrze/woda (ASHP &#8211; Air Source Heat Pump).</h3>



<p class="wp-block-paragraph">To obecnie&nbsp;<strong>najpopularniejsze rozwiązanie</strong>&nbsp;w modernizacjach i nowych budynkach. Pobiera energię z&nbsp;<strong>powietrza zewnętrznego</strong>.</p>



<ul class="wp-block-list">
<li><strong>Zasada działania</strong>: Wentylator wymusza przepływ powietrza przez parownik, gdzie czynnik chłodniczy odbiera z niego ciepło, nawet przy ujemnych temperaturach.</li>



<li><strong>Konstrukcja</strong>: Występuje w wersji <strong>split</strong> (jednostka zewnętrzna + wewnętrzna) lub <strong>monoblok</strong> (cały obieg chłodniczy zamknięty w jednej obudowie na zewnątrz, do budynku prowadzone są tylko przewody hydrauliczne).</li>



<li><strong>Wydajność a temperatura zewnętrzna</strong>: Sprawność (<strong>COP</strong>) maleje wraz ze spadkiem temperatury powietrza. Nowoczesne pompy wysokiej klasy zachowują zdolność grzewczą nawet przy <strong>-25°C do -28°C</strong>, jednak przy tak ekstremalnych mrozach ich moc grzewcza jest obniżona. Stąd kluczowe jest <strong>prawidłowe obliczenie mocy na tzw. punkt biwalentny</strong>.</li>
</ul>



<h3 class="wp-block-heading">Pompa ciepła typu grunt/woda (GSHP &#8211; Ground Source Heat Pump).</h3>



<p class="wp-block-paragraph">Uznawana za&nbsp;<strong>najbardziej efektywny i stabilny</strong>&nbsp;rodzaj pompy ciepła. Dolnym źródłem jest stała temperatura gruntu poniżej strefy przemarzania.</p>



<ul class="wp-block-list">
<li><strong>Rodzaje wymienników gruntowych</strong>:
<ul class="wp-block-list">
<li><strong>Kolektor poziomy</strong>: Rury z tworzywa sztucznego ułożone poniżej głębokości przemarzania (ok. 1.2-1.8 m). Wymaga dużej, niezacienionej powierzchni działki.</li>



<li><strong>Sonda geotermalna (pionowa)</strong>: Rury w formie pętli opuszczane są w odwierty o głębokości od 50 do nawet 200 m. Rozwiązanie dla małych działek. Wymaga pozwolenia (koncesji) i wykonania przez wyspecjalizowaną firmę.</li>
</ul>
</li>



<li><strong>Zalety</strong>: Bardzo wysoki i stabilny <strong>SCOP</strong> przez cały rok, brak wpływu warunków atmosferycznych, długa żywotność wymiennika.</li>
</ul>



<h3 class="wp-block-heading">Pompa ciepła typu woda/woda.</h3>



<p class="wp-block-paragraph">Stosowana rzadziej, ze względu na konieczność spełnienia surowych warunków. Wymaga dostępu do dwóch studni: czerpalnej i zrzutowej, lub do zbiornika wodnego o odpowiedniej wydajności i parametrach. Oferuje parametry podobne do pomp gruntowych.</p>



<h2 class="wp-block-heading">Krytyczny element: Dobór mocy pompy ciepła i analiza pracy biwalentnej.</h2>



<p class="wp-block-paragraph"><strong>Błąd w doborze mocy</strong>&nbsp;jest najczęstszą i najkosztowniejszą przyczyną nieprawidłowej pracy systemu. Dobór przeprowadza się w oparciu o&nbsp;<strong>bilans cieplny budynku</strong>, a nie przybliżone wskaźniki.</p>



<h3 class="wp-block-heading">Obliczenie zapotrzebowania na ciepło.</h3>



<p class="wp-block-paragraph">Należy wyznaczyć straty ciepła przez przenikanie i wentylację dla&nbsp;<strong>temperatury obliczeniowej</strong>&nbsp;(np. -20°C w zależności od strefy klimatycznej). Wynikiem jest&nbsp;<strong>moc maksymalna</strong>, potrzebna w najzimniejsze dni. W nowych, dobrze izolowanych domach może to być zaledwie&nbsp;<strong>30-40 W/m²</strong>, podczas gdy w starych budynkach nawet&nbsp;<strong>100-120 W/m²</strong>.</p>



<h3 class="wp-block-heading">Punkt i temperatura biwalentna.</h3>



<p class="wp-block-paragraph">Ponieważ moc grzewcza&nbsp;<strong>powietrznej pompy ciepła</strong>&nbsp;spada z temperaturą zewnętrzną, na wykresie mocy pojawia się moment, gdzie przestaje ona pokrywać całkowite zapotrzebowanie budynku. To&nbsp;<strong>punkt biwalentny (Tb)</strong>.&nbsp;<strong>Temperatura biwalentna (Tb)</strong>&nbsp;to temperatura zewnętrzna, poniżej której konieczne jest&nbsp;<strong>dogrzewanie</strong>&nbsp;przez drugie źródło (źródło biwalentne).</p>



<ul class="wp-block-list">
<li><strong>Strategia pracy biwalentnej alternatywnej</strong>: Pompa pracuje do Tb, poniżej Tb wyłącza się i przejmuje <strong>kocioł gazowy/olejowy/grzałka</strong>.</li>



<li><strong>Strategia pracy biwalentnej równoległej</strong>: Pompa pracuje cały czas, a poniżej Tb jej moc jest uzupełniana przez drugie źródło. Jest to rozwiązanie <strong>bardziej efektywne energetycznie</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład:</strong>&nbsp;Dla domu o zapotrzebowaniu 8 kW przy -20°C, dobrano powietrzną pompę ciepła o mocy 7 kW przy A-7/W35. Analiza wykazuje, że przy -5°C pompa nadal dostarcza 7 kW, podczas gdy budynek potrzebuje już tylko 5 kW. Pompa ma wystarczającą moc. Przy -10°C moc pompy spada do 6 kW, a budynek potrzebuje 6.5 kW. Punkt biwalentny Tb znajduje się między -5 a -10°C. Konieczne jest dogrzewanie 0.5 kW poniżej tej temperatury.</p>



<h2 class="wp-block-heading">Serce systemu: Schematy hydrauliczne i integracja z instalacją.</h2>



<p class="wp-block-paragraph">Poprawny schemat hydrauliczny jest kluczowy dla trwałości, sprawności i komfortu użytkowania.&nbsp;<strong>Pompa ciepła</strong>&nbsp;to urządzenie niskotemperaturowe, co wymaga specjalnego podejścia.</p>



<h3 class="wp-block-heading">Rola i konieczność zastosowania bufora ciepła.</h3>



<p class="wp-block-paragraph">Zasobnik buforowy (akumulacyjny) w instalacji z&nbsp;<strong>pompą ciepła</strong>&nbsp;pełni kilka&nbsp;<strong>kluczowych funkcji</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zapewnienie minimalnej pojemności wodnej</strong>: Zapobiega zbyt częstym cyklom załączania/wyłączania sprężarki (tzw. <em>short-cycling</em>), które są dla niej szkodliwe.</li>



<li><strong>Separacja obiegów</strong>: Hydraulicznie oddziela dynamiczny obieg pompy ciepła od często rozbudowanego i rozgałęzionego obiegu grzewczego budynku, zapewniając stabilne parametry pracy.</li>



<li><strong>Integracja wielu źródeł ciepła</strong>: Może przyjmować ciepło również z kolektorów słonecznych czy kotła, stając się hubem energetycznym.</li>



<li><strong>Możliwość chłodzenia pasywnego</strong>: W układach z sondą gruntową, bufor może służyć do naturalnego chłodzenia pomieszczeń latem (free cooling).</li>
</ol>



<p class="wp-block-paragraph"><strong>Obliczenie pojemności bufora:</strong>&nbsp;Minimalna pojemność użytkowa często jest określana przez producenta pompy (np. 10-15 litrów na 1 kW mocy). W praktyce, dla domów jednorodzinnych stosuje się zasobniki od 200 do 500 litrów.</p>



<h3 class="wp-block-heading">Ogrzewanie podłogowe jako idealny odbiornik ciepła.</h3>



<p class="wp-block-paragraph">Tutaj pojawia się&nbsp;<strong>fundamentalna synergia</strong>.&nbsp;<strong>Wodne ogrzewanie podłogowe</strong>&nbsp;wymaga zasilania wodą o temperaturze zaledwie&nbsp;<strong>28-35°C</strong>. Jest to zakres, w którym&nbsp;<strong>pompa ciepła</strong>&nbsp;osiąga swoje&nbsp;<strong>maksymalne współczynniki COP</strong>&nbsp;(często powyżej 4.0). Dla porównania, grzejniki wymagają temperatur 55-65°C, co obniża COP nawet o 25-30%.</p>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">Projekt ogrzewania podłogowego</a></strong> w kontekście współpracy z pompą ciepła musi uwzględniać:</p>



<ul class="wp-block-list">
<li><strong>Obliczenia cieplne każdej pętli</strong>: Na podstawie strat ciepła pomieszczenia, rodzaju posadzki i rozstawu <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur</a> określa się wymaganą temperaturę zasilania i długość pętli.</li>



<li><strong>Straty ciśnienia</strong>: Należy dobrać <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a>, która zapewni wymagany przepływ przez najbardziej niekorzystną (najdłuższą) pętlę.</li>



<li><strong>Regulację hydrauliczną</strong>: Na rozdzielaczu <strong>konieczne</strong> jest zastosowanie zaworów nastawczych (regulacji przepływu) lub przepływomierzy oraz głowic termostatycznych lub siłowników sterowanych przez <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">pokojowy regulator temperatury</a>. Zapobiega to przegrzewaniu pomieszczeń i zapewnia komfort.</li>



<li><strong>Izolację termiczną</strong>: Warstwa izolacji pod rurkami (np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">ze styropianu EPS</a> 100 o λ≤0,040 W/mK) musi być na tyle gruba (min. 10 cm, w domach na gruncie nawet 15-20 cm), aby straty ciepła w dół były pomijalne. To warunek efektywności całego systemu.</li>
</ul>



<h3 class="wp-block-heading">Schemat z buforem i ogrzewaniem podłogowym.</h3>



<p class="wp-block-paragraph">Najczęściej stosowany schemat to&nbsp;<strong>układ z buforem i mieszaczem</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Obieg pierwotny</strong>: Pompa ciepła → Bufor. Pompa ładuje bufor do zadanej temperatury.</li>



<li><strong>Obieg wtórny (ogrzewania podłogowego)</strong>: Pompa obiegowa pobiera wodę z bufora i tłoczy ją na <strong>zawór mieszający 3-drogowy lub 4-drogowy</strong>.</li>



<li><strong>Mieszanie</strong>: Zawór, sterowany przez czujnik temperatury powrotu z podłogówki, miesza gorącą wodę z bufora z chłodną wodą powrotną z podłogi, uzyskując wymaganą, bezpieczną temperaturę zasilania pętli (np. 35°C). Pozwala to na wykorzystanie wysokotemperaturowego bufora do zasilania niskotemperaturowej podłogówki.</li>
</ol>



<h2 class="wp-block-heading">Zaawansowane aspekty techniczne i porównanie.</h2>



<h3 class="wp-block-heading">Czynniki chłodnicze a ekologia.</h3>



<p class="wp-block-paragraph">Nowoczesne pompy ciepła odchodzą od czynników o wysokim potencjale tworzenia efektu cieplarnianego (GWP). Stosuje się coraz powszechniej&nbsp;<strong>naturalne czynniki</strong>, jak&nbsp;<strong>propan (R290)</strong>&nbsp;czy&nbsp;<strong>dwutlenek węgla (R744 &#8211; CO2)</strong>. R290 ma doskonałe właściwości termodynamiczne i bardzo niski GWP=3, ale jest łatwopalny, co wymaga szczególnych środków bezpieczeństwa w konstrukcji urządzenia.&nbsp;<strong>Pompy na CO2</strong>&nbsp;świetnie sprawdzają się w układach do przygotowania ciepłej wody użytkowej o wysokiej temperaturze.</p>



<h3 class="wp-block-heading">Sterowanie i automatyka.</h3>



<p class="wp-block-paragraph">Inteligentne sterowniki pozwalają na:</p>



<ul class="wp-block-list">
<li><strong>Regulację pogodową</strong>: Dostosowuje temperaturę zasilania do krzywej grzewczej w funkcji temperatury zewnętrznej.</li>



<li><strong>Priorytet przygotowania CWU</strong>.</li>



<li><strong>Optymalizację kosztową</strong>: Współpraca z taryfą dwustrefową (G12/G13) – intensywne grzanie w tańszej strefie.</li>



<li><strong>Integrację z fotowoltaiką</strong> w trybie <strong>autokonsumpcji</strong> – pompa zużywa nadwyżkę własnej produkcji prądu.</li>
</ul>



<h2 class="wp-block-heading">Tabela porównawcza głównych typów pomp ciepła.</h2>



<style>
/* === RESPONSYWNA TABELA PORÓWNAWCZA === */
.table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 30px 0;
  font-family: inherit;
}

.compare-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
  background: #ffffff;
}

.compare-table thead {
  background: #f4f6f8;
}

.compare-table th,
.compare-table td {
  padding: 14px 12px;
  border: 1px solid #e1e5ea;
  text-align: left;
  vertical-align: top;
}

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

.compare-table tbody tr:nth-child(even) {
  background: #fafafa;
}

/* === MOBILE === */
@media (max-width: 768px) {
  .compare-table {
    min-width: 100%;
    border: 0;
  }

  .compare-table thead {
    display: none;
  }

  .compare-table tr {
    display: block;
    margin-bottom: 20px;
    border: 1px solid #e1e5ea;
    border-radius: 6px;
    overflow: hidden;
  }

  .compare-table td {
    display: flex;
    justify-content: space-between;
    padding: 12px;
    border: none;
    border-bottom: 1px solid #eee;
  }

  .compare-table td::before {
    content: attr(data-label);
    font-weight: 600;
    padding-right: 10px;
    color: #333;
  }

  .compare-table td:last-child {
    border-bottom: none;
  }
}
</style>

<div class="table-wrap">
<table class="compare-table">
  <thead>
    <tr>
      <th>Parametr / Cecha</th>
      <th>Pompa Ciepła Powietrze/Woda</th>
      <th>Pompa Ciepła Grunt/Woda (sonda)</th>
      <th>Pompa Ciepła Grunt/Woda (kolektor)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td data-label="Parametr / Cecha">Sprawność sezonowa (SCOP)</td>
      <td data-label="Powietrze/Woda">Wysoka (3.0 – 4.2)</td>
      <td data-label="Grunt/Woda (sonda)">Bardzo wysoka (4.0 – 5.0+)</td>
      <td data-label="Grunt/Woda (kolektor)">Bardzo wysoka (4.0 – 5.0+)</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Koszt inwestycyjny</td>
      <td data-label="Powietrze/Woda">Najniższy</td>
      <td data-label="Grunt/Woda (sonda)">Najwyższy (odwierty)</td>
      <td data-label="Grunt/Woda (kolektor)">Wysoki (roboty ziemne, duża działka)</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Wpływ warunków zewnętrznych</td>
      <td data-label="Powietrze/Woda">Spadek mocy i COP w mrozy</td>
      <td data-label="Grunt/Woda (sonda)">Brak – stała wydajność</td>
      <td data-label="Grunt/Woda (kolektor)">Minimalny (wahania temp. gruntu)</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Złożoność montażu</td>
      <td data-label="Powietrze/Woda">Stosunkowo niska</td>
      <td data-label="Grunt/Woda (sonda)">Wysoka (specjalistyczne firmy)</td>
      <td data-label="Grunt/Woda (kolektor)">Średnia (wykonanie wykopów)</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Wymagania terenowe</td>
      <td data-label="Powietrze/Woda">Miejsce na jednostkę zewnętrzną</td>
      <td data-label="Grunt/Woda (sonda)">Mała działka, pozwolenia</td>
      <td data-label="Grunt/Woda (kolektor)">Duża, niezacieniona działka</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Możliwość chłodzenia</td>
      <td data-label="Powietrze/Woda">Aktywne (inwersja cyklu)</td>
      <td data-label="Grunt/Woda (sonda)">Pasywne (free cooling) i aktywne</td>
      <td data-label="Grunt/Woda (kolektor)">Pasywne (free cooling) i aktywne</td>
    </tr>

    <tr>
      <td data-label="Parametr / Cecha">Żywotność zewnętrznego źródła</td>
      <td data-label="Powietrze/Woda">15–20 lat (jednostka)</td>
      <td data-label="Grunt/Woda (sonda)">50+ lat (sonda)</td>
      <td data-label="Grunt/Woda (kolektor)">50+ lat (kolektor)</td>
    </tr>
  </tbody>
</table>
</div>




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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767455373502"><strong class="schema-faq-question"><strong>Jak działa pompa ciepła od strony technicznej?</strong></strong> <p class="schema-faq-answer">Pompa ciepła transportuje energię cieplną z dolnego źródła (powietrza, gruntu lub wody) do instalacji grzewczej, wykorzystując obieg chłodniczy oparty na parowniku, sprężarce, skraplaczu i zaworze rozprężnym.</p> </div> <div class="schema-faq-section" id="faq-question-1767455389406"><strong class="schema-faq-question"><strong>Czym różni się COP od SCOP w pompach ciepła?</strong></strong> <p class="schema-faq-answer">COP określa chwilową sprawność pompy ciepła w warunkach laboratoryjnych, natomiast SCOP uwzględnia zmienne warunki pracy w całym sezonie grzewczym i lepiej odzwierciedla realną efektywność systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1767455399953"><strong class="schema-faq-question"><strong>Jaki typ pompy ciepła jest najbardziej efektywny energetycznie?</strong></strong> <p class="schema-faq-answer">Najwyższą i najbardziej stabilną sprawność osiągają pompy ciepła grunt/woda z sondą pionową, ponieważ korzystają ze stałej temperatury gruntu niezależnej od warunków atmosferycznych.</p> </div> <div class="schema-faq-section" id="faq-question-1767455415229"><strong class="schema-faq-question"><strong>Dlaczego ogrzewanie podłogowe jest idealnym odbiornikiem dla pompy ciepła?</strong></strong> <p class="schema-faq-answer">Ogrzewanie podłogowe pracuje na niskich temperaturach zasilania (28–35°C), co pozwala pompie ciepła osiągać wysokie współczynniki COP i znacząco obniża koszty eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1767455429256"><strong class="schema-faq-question"><strong>Czy bufor ciepła jest konieczny w instalacji z pompą ciepła?</strong></strong> <p class="schema-faq-answer">W większości przypadków tak. Bufor stabilizuje pracę sprężarki, zapewnia minimalną pojemność wodną, separuje obiegi hydrauliczne i umożliwia integrację kilku źródeł ciepła.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Pompa ciepła</strong>&nbsp;to nie moda, a technologiczna odpowiedź na wyzwania efektywności i zrównoważonego rozwoju. Jej poprawne zaprojektowanie i wykonanie, szczególnie w parze z&nbsp;<strong>niskotemperaturowym ogrzewaniem podłogowym</strong>, gwarantuje&nbsp;<strong>niskie koszty eksploatacji</strong>, wysoki komfort użytkowania i bezobsługowość przez dziesiątki lat. Kluczem do sukcesu jest&nbsp;<strong>interdyscyplinarne podejście</strong>&nbsp;– uwzględnienie parametrów budynku, precyzyjny dobór mocy, starannie zaprojektowana hydraulika z buforem oraz profesjonalny, wzorowy montaż. To właśnie sprawia, że&nbsp;<strong>pompa ciepła</strong>&nbsp;staje się centralnym punktem nowoczesnego, inteligentnego i energooszczędnego domu.</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="1mzN8Mqcv4"><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=5aL3UWPYUQ#?secret=1mzN8Mqcv4" data-secret="1mzN8Mqcv4" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa Ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

					<description><![CDATA[<p>Nowoczesne budownictwo coraz częściej wykorzystuje darmową energię słoneczną, ale jej niewłaściwe połączenie z instalacją grzewczą potrafi przynieść więcej szkód niż korzyści. Ogrzewanie podłogowe a pasywne zyski ciepła to temat kluczowy dla komfortu i efektywności energetycznej budynku. W artykule pokazujemy, jak promieniowanie słoneczne wpływa na bezwładną wylewkę, dlaczego dochodzi do przegrzewania pomieszczeń oraz jak dzięki świadomemu projektowi i inteligentnemu sterowaniu zamienić słońce w realne wsparcie systemu grzewczego, a nie jego wroga.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Właściwe zarządzanie <strong>pasywnymi zyskami ciepła</strong> stanowi jeden z najważniejszych, a często niedocenianych, aspektów projektowania i eksploatacji <strong>wodnego ogrzewania podłogowego</strong>. System ten, charakteryzujący się dużą bezwładnością termiczną i niskotemperaturowym źródłem, w wyjątkowy sposób reaguje na dodatkowe, darmowe dopływy energii, takie jak <strong>promieniowanie słoneczne</strong> przez przeszklenia od strony południowej. </p>



<p class="wp-block-paragraph">Ignorowanie tego zjawiska prowadzi nie tylko do dyskomfortu i przegrzewania pomieszczeń, lecz także do znaczącego spadku efektywności energetycznej całego systemu grzewczego. Niniejszy artykuł stanowi techniczne i praktyczne kompendium wiedzy na temat harmonijnej integracji <strong><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></strong> z <strong>pasywnymi zyskami słonecznymi</strong>.</p>



<h2 class="wp-block-heading">Fizyka zjawiska: Dlaczego słońce ma tak istotny wpływ na podłogówkę?</h2>



<p class="wp-block-paragraph">Aby zrozumieć skalę wyzwania, należy wniknąć w samą istotę działania obu systemów: pasywnego pozyskiwania energii i aktywnego ogrzewania płaszczyznowego.</p>



<p class="wp-block-paragraph"><strong>Wodne ogrzewanie podłogowe</strong> to system o wysokiej mocy akumulacyjnej. Ciepło transportowane przez wodę w pętlach rur oddawane jest do masywnej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej</a> (jastrychu), która pełni rolę grzejnika i – co kluczowe – <strong>akumulatora ciepła</strong>. Typowa wylewka o grubości 6-8 cm i gęstości ok. 2100 kg/m³ magazynuje ogromne ilości energii, co zapewnia równomierny rozkład temperatury i dużą bezwładność. System reaguje z opóźnieniem na zmiany zapotrzebowania.</p>



<p class="wp-block-paragraph"><strong>Pasywne zyski ciepła od południa</strong>&nbsp;to w głównej mierze energia promieniowania słonecznego krótkofalowego, które przenika przez przeszklenia. Padając na podłogę, ściany i meble, zamienia się w promieniowanie długofalowe (cieplne), ogrzewając masywną konstrukcję budynku. W przypadku podłogi z ogrzewaniem płaszczyznowym, mamy do czynienia z&nbsp;<strong>superpozycją dwóch strumieni cieplnych</strong>:</p>



<ol start="1" class="wp-block-list">
<li>Strumienia od <strong>systemu aktywnego</strong> (rura → jastrych).</li>



<li>Strumienia od <strong>systemu pasywnego</strong> (słońce → jastrych).</li>
</ol>



<p class="wp-block-paragraph">Efektem jest wzrost&nbsp;<strong>temperatury efektywnej jastrychu</strong>&nbsp;ponad wartość projektową, co natychmiast przekłada się na wzrost temperatury powietrza w pomieszczeniu. Bezwładność systemu sprawia, że nawet po zachodzie słońca, nagrzana wylewka będzie oddawać ciepło przez wiele godzin, potencjalnie prowadząc do&nbsp;<strong>przegrzania nocnego</strong>.</p>



<h2 class="wp-block-heading">Zapotrzebowanie na moc cieplną –  wzór.</h2>



<p class="wp-block-paragraph">Przedstawiony wzór pokazuje, że <strong>zapotrzebowanie na moc cieplną</strong> nie wynika wyłącznie ze strat budynku, ale jest zawsze pomniejszane o <strong>pasywne i wewnętrzne zyski ciepła</strong>. W praktyce oznacza to, że im większe zyski od słońca, urządzeń czy obecności ludzi, tym mniejsza moc musi być dostarczona przez instalację grzewczą. To właśnie na tej zasadzie projektuje się nowoczesne ogrzewanie podłogowe – nie „na zapas”, lecz w oparciu o realny bilans energetyczny, zgodny z normą <strong>PN-EN 12831</strong>, co bezpośrednio przekłada się na komfort i niższe koszty eksploatacji.</p>



<div style="
  border-left: 6px solid #1e73be;
  background: #f4f8fc;
  padding: 20px;
  margin: 30px 0;
  border-radius: 6px;
">

  <h3 style="margin-top:0;">
    Zapotrzebowanie na moc cieplną – wzór
  </h3>

  <p style="font-size:18px; font-weight:bold;">
    &Phi;<sub>ogrz</sub> = &Phi;<sub>straty</sub> − &Phi;<sub>zyski</sub>
  </p>

  <p>
    Wzór określa <strong>zapotrzebowanie na moc cieplną netto</strong>
    (strumień cieplny) potrzebną do ogrzania budynku lub konkretnego pomieszczenia.
  </p>

  <ul>
    <li>
      <strong>&Phi;<sub>ogrz</sub></strong> – projektowe obciążenie cieplne
      [W] / [kW]
    </li>
    <li>
      <strong>&Phi;<sub>straty</sub></strong> – straty przez przenikanie
      i wentylację
    </li>
    <li>
      <strong>&Phi;<sub>zyski</sub></strong> – zyski wewnętrzne i zewnętrzne
      (ludzie, urządzenia, słońce)
    </li>
  </ul>

  <p style="margin-bottom:0;">
    Podstawa do doboru źródła ciepła zgodnie z
    <strong>PN-EN 12831</strong>.
  </p>

</div>



<h2 class="wp-block-heading">Bilans cieplny pomieszczenia: Jak obliczyć i uwzględnić zyski pasywne?</h2>



<p class="wp-block-paragraph">Projektowanie systemu grzewczego bez rzetelnego bilansu cieplnego jest jak żeglowanie bez mapy. W kontekście&nbsp;<strong>zysków słonecznych</strong>&nbsp;kluczowe jest ich kwantyfikowanie.</p>



<p class="wp-block-paragraph"><strong>Podstawowy bilans mocy cieplnej dla pomieszczenia wyraża się wzorem:</strong><br><code>Φ_ogrz = Φ_straty - Φ_zyski</code><br>Gdzie:</p>



<ul class="wp-block-list">
<li><code>Φ_ogrz</code> – wymagana moc grzewcza systemu aktywnego [W]</li>



<li><code>Φ_straty</code> – straty ciepła przez przenikanie i wentylację [W]</li>



<li><code>Φ_zyski</code> – zyski ciepła (słoneczne, bytowe, od urządzeń) [W]</li>
</ul>



<p class="wp-block-paragraph"><strong>Zyski słoneczne (Φ_zyski,słoneczne)</strong>&nbsp;oblicza się ze wzoru:<br><code>Φ_zyski,słoneczne = A_szkła * g * I * F_sh</code></p>



<ul class="wp-block-list">
<li><code>A_szkła</code> – powierzchnia przeszklenia odbiorczego (południowego) [m²]</li>



<li><code>g</code> – współczynnik przepuszczalności energii całkowitej szyby (dla szyb niskoemisyjnych ≈ 0.5)</li>



<li><code>I</code> – średnie miesięczne nasłonecznienie na płaszczyznę pionową od strony południowej [W/m²] (dane klimatologiczne, np. dla Warszawy w styczniu to ok. 60-80 W/m², w marcu już 120-150 W/m²)</li>



<li><code>F_sh</code> – współczynnik redukcji dla zacienień (żaluzje, okapy, drzewa) [0-1]</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy:</strong><br>Pomieszczenie o stratach&nbsp;<code>Φ_straty = 1200 W</code>&nbsp;ma duże okno południowe o powierzchni&nbsp;<code>A_szkła = 8 m²</code>. Dla słonecznego dnia w marcu (<code>I = 140 W/m²</code>), szyby o&nbsp;<code>g = 0.5</code>&nbsp;i braku zacienień (<code>F_sh = 1</code>) otrzymujemy:<br><code>Φ_zyski,słoneczne = 8 * 0.5 * 140 * 1 = 560 W</code><br>Wymagana moc systemu grzewczego w tym momencie spada do:<br><code>Φ_ogrz = 1200 W - 560 W = 640 W</code></p>



<p class="wp-block-paragraph"><strong>Wniosek praktyczny:</strong> W tym konkretnym momencie system grzewczy musi być zdolny do <strong>redukcji swojej mocy o ponad 46%</strong>. Dla systemu podłogowego sterowanego jedynie czujnikiem temperatury podłogi (ogranicznikiem) jest to niemożliwe do osiągnięcia bez przegrzania.</p>



<h2 class="wp-block-heading">Zaawansowane strategie sterowania: Serce optymalnego systemu.</h2>



<p class="wp-block-paragraph">Klasyczne, statyczne sterowanie temperaturą zasilania w funkcji temperatury zewnętrznej (kompensacja pogodowa) jest niewystarczające. Niezbędne jest wdrożenie&nbsp;<strong>inteligentnego, wielowymiarowego sterowania z pętlą sprzężenia zwrotnego z pomieszczenia</strong>.</p>



<h3 class="wp-block-heading">1. Indywidualne sterowanie strefowe z czujnikami powietrznymi.</h3>



<p class="wp-block-paragraph">Podstawą jest podział instalacji na&nbsp;<strong>strefy termiczne</strong>&nbsp;pokrywające się z pomieszczeniami lub grupami pomieszczeń o podobnej charakterystyce (ekspozycja, funkcja). Każda strefa musi posiadać:</p>



<ul class="wp-block-list">
<li><strong>Własny zawór mieszający lub elektrozawór</strong> na rozdzielaczu.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Sterownik pokojowy</a></strong> z czujnikiem temperatury powietrza, umieszczonym w reprezentatywnym miejscu, z dala od bezpośredniego nasłonecznienia i przeciągów.</li>



<li><strong>Czujnik temperatury podłogi</strong> jako zabezpieczenie przed przekroczeniem maksymalnej dopuszczalnej temperatury powierzchni (zwykle 29°C w strefie stałego pobytu, 35°C w łazience).</li>
</ul>



<p class="wp-block-paragraph">Algorytm pracy: Gdy&nbsp;<strong>promieniowanie słoneczne</strong>&nbsp;podniesie temperaturę powietrza powyżej wartości zadanej, sterownik zamyka zawór dla danej strefy,&nbsp;<strong>całkowicie wyłączając dopływ ciepłej wody</strong>&nbsp;do pętli podłogowej. System wykorzystuje wyłącznie&nbsp;<strong>darmową energię słoneczną</strong>.</p>



<h3 class="wp-block-heading">2. Kompensacja pogodowa z korektą słoneczną (Solar Gain Compensation).</h3>



<p class="wp-block-paragraph">To zaawansowana ewolucja standardowej krzywej grzewczej. Oprócz temperatury zewnętrznej, regulator centralny (np. sterownik <a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">pompy ciepła</a> lub kotła) przyjmuje sygnał z <strong>zewnętrznego czujnika nasłonecznienia (pyranometru)</strong>.</p>



<ul class="wp-block-list">
<li><strong>Zasada działania:</strong> Pyranometr mierzy natężenie promieniowania słonecznego padającego na płaszczyznę poziomą lub pionową [W/m²]. Gdy wartość przekroczy ustalony próg, sterownik <strong>obniża zadaną temperaturę zasilania</strong> dla wszystkich lub wybranych (południowych) obiegów, <strong>wyprzedzając</strong> wzrost temperatury w pomieszczeniach. Jest to działanie <strong>prognostyczne</strong>, a nie reaktywne.</li>
</ul>



<h3 class="wp-block-heading">3. Regulatory z algorytmami adaptacyjnymi (PID z adaptacją).</h3>



<p class="wp-block-paragraph">Najbardziej wyrafinowane rozwiązanie. Sterownik nie tylko reaguje na aktualne odchylenie temperatury, ale analizuje jej trendy w czasie, uwzględniając&nbsp;<strong>bezwładność systemu</strong>&nbsp;i&nbsp;<strong>charakterystykę budynku</strong>. Na podstawie historii cykli grzania (np. jak szybko rośnie temperatura po otwarciu zaworu) regulator „uczy się”, jak wcześniej zareagować na przewidywane&nbsp;<strong>zyski ciepła</strong>, minimalizując wahania temperatury. Działa to w obie strony – zarówno przy nagrzewaniu, jak i przy wykorzystaniu&nbsp;<strong>zysków pasywnych</strong>.</p>



<h2 class="wp-block-heading">Projektowanie instalacji  z myślą o zyskach pasywnych.</h2>



<p class="wp-block-paragraph">Samoregulujące właściwości&nbsp;<strong>ogrzewania podłogowego</strong>&nbsp;są wspomagane przez poprawnie zaprojektowaną i zrównoważoną instalację hydrauliczną.</p>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">Rozdzielacze</a> z przepływomierzami:</strong> Konieczność dla każdej strefy. Umożliwiają precyzyjne ustawienie i odczyt przepływu wody, co jest kluczowe dla zapewnienia wymaganej mocy grzewczej i poprawnej pracy zaworów termostatycznych podczas ich modulacji.</li>



<li><strong>Zawory RTL (Return Temperature Limiter) vs. zawory mieszające z siłownikiem:</strong> W małych strefach (np. łazienka) czasem stosuje się zawory RTL, regulujące przepływ w celu utrzymania zadanej temperatury powrotu. Są one <strong>niewystarczające dla stref z dużymi zyskami</strong>, gdyż nie reagują na temperaturę powietrza. <strong>Zawór mieszający z siłownikiem sterowanym pokojowym regulatorem</strong> to jedyne poprawne rozwiązanie.</li>



<li><strong>Układy kaskadowe i buforowe:</strong> W systemach z pompą ciepła szczególnie ważne jest zastosowanie zasobnika buforowego. Gdy <strong>zyski słoneczne</strong> wyłączają ogrzewanie w południowych strefach, pompa ciepła może nadal pracować z optymalną wydajnością, ładując bufor, z którego ciepło pobiorą strefy północne. Zapobiega to niekorzystnej pracy z częstymi startami/stopami.</li>
</ul>



<h3 class="wp-block-heading">Krytyczny element: Projekt ogrzewania podłogowego w kontekście zysków pasywnych.</h3>



<p class="wp-block-paragraph">Na etapie <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektowania ogrzewania podłogowego</a></strong> uwzględnienie <strong>pasywnych zysków ciepła</strong> nie jest opcją, a <strong>obowiązkiem</strong> inżyniera. Błąd na tym etapie jest później bardzo kosztowny lub trudny do skorygowania.</p>



<ol start="1" class="wp-block-list">
<li><strong>Symulacja dynamiczna:</strong> Zaawansowane projekty powinny opierać się nie na uproszczonych obliczeniach miesięcznych, a na <strong>symulacji dynamicznej budynku</strong> (np. w programie typu ENERGIS, TRNSYS). Pozwala ona przeanalizować zachowanie systemu w cyklu dobowym i rocznym, modelując zmienne <strong>nasłonecznienie</strong>, zachmurzenie, użytkowanie. Daje odpowiedź na pytania: jak często występuje ryzyko przegrzania? Jaka jest optymalna bezwładność termiczna podłogi w tym konkretnym budynku?</li>



<li><strong>Ścisła współpraca z architektem:</strong> Projektant instalacji <strong>musi</strong> współpracować z architektem nad:
<ul class="wp-block-list">
<li><strong>Współczynnikiem przeszklenia:</strong> Optymalny stosunek powierzchni okien do podłogi od strony południowej.</li>



<li><strong>Parametrami szyb:</strong> Wybór pakietów o odpowiednim współczynniku <code>g</code> (przepuszczalności energii) i niskim współczynniku przenikania ciepła <code>U</code>. Czasem celowo dobiera się szyby o nieco niższym <code>g</code>, aby zredukować skrajne <strong>zyski letnie</strong>, akceptując nieco niższe <strong>zyski zimowe</strong>.</li>



<li><strong>Elementów zacieniających:</strong> Projekt stałych (okapy, daszki) lub zewnętrznych (żaluzje, markizy) systemów zacieniających, które redukują <strong>zyski słoneczne</strong> latem, a pozwalają na nie zimą pod niskim kątem.</li>
</ul>
</li>



<li><strong>Dobór mocy i rozstawu pętli:</strong> W strefach południowych, po odjęciu obliczeniowych <strong>zysków pasywnych</strong>, zapotrzebowanie na moc aktywnego ogrzewania może być znacznie niższe. Może to pozwolić na <strong>zwiększenie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawu rur</a></strong> (np. z 15 cm do 20 cm) lub obniżenie projektowej temperatury zasilania, co zwiększa sprawność źródła ciepła (pompy ciepła, kondensacyjnego kotła gazowego).</li>
</ol>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767087543630"><strong class="schema-faq-question"><strong>Czy pasywne zyski ciepła mogą powodować przegrzewanie przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak. Duża bezwładność jastrychu sprawia, że dodatkowe zyski słoneczne kumulują się w podłodze i mogą podnosić temperaturę jeszcze długo po zachodzie słońca.</p> </div> <div class="schema-faq-section" id="faq-question-1767087563068"><strong class="schema-faq-question"><strong>Czy sama krzywa grzewcza wystarczy do kontroli zysków słonecznych?</strong></strong> <p class="schema-faq-answer">Nie. Kompensacja pogodowa bez informacji z pomieszczeń nie reaguje na promieniowanie słoneczne, dlatego konieczne jest sterowanie strefowe lub adaptacyjne.</p> </div> <div class="schema-faq-section" id="faq-question-1767087580754"><strong class="schema-faq-question"><strong>Jakie sterowanie najlepiej współpracuje z pasywnymi zyskami ciepła?</strong></strong> <p class="schema-faq-answer">Najlepsze efekty dają systemy strefowe z czujnikami temperatury powietrza oraz regulatory adaptacyjne, które „uczą się” reakcji budynku.</p> </div> <div class="schema-faq-section" id="faq-question-1767087619827"><strong class="schema-faq-question"><strong>Czy projekt ogrzewania podłogowego powinien uwzględniać orientację budynku?</strong></strong> <p class="schema-faq-answer">Zdecydowanie tak. Strefy południowe wymagają innego doboru mocy, rozstawu rur i strategii sterowania niż północne.</p> </div> <div class="schema-faq-section" id="faq-question-1767087639266"><strong class="schema-faq-question"><strong>Czy pasywne zyski ciepła zawsze są korzystne zimą?</strong></strong> <p class="schema-faq-answer">Tak, pod warunkiem że są kontrolowane. Przy dobrze zaprojektowanym systemie obniżają zużycie energii i koszty ogrzewania, zamiast powodować dyskomfort.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Synergia zamiast konkurencji.</h2>



<p class="wp-block-paragraph"><strong>Pasywne zyski ciepła</strong>&nbsp;od strony południowej nie są wrogiem&nbsp;<strong>wodnego ogrzewania podłogowego</strong>&nbsp;– są jego&nbsp;<strong>darmowym uzupełnieniem</strong>. Kluczem do sukcesu jest uznanie tego zjawiska za&nbsp;<strong>równoprawny element systemu grzewczego</strong>&nbsp;już na etapie koncepcji budynku i projektu instalacji.</p>



<p class="wp-block-paragraph">Finalna efektywność zależy od połączenia trzech filarów:</p>



<ol start="1" class="wp-block-list">
<li><strong>Świadomej architektury</strong> pasywnej, kontrolującej dopływ energii słonecznej.</li>



<li><strong>Precyzyjnego projektu instalacji</strong>, z podziałem na strefy i odpowiednio dobranymi parametrami.</li>



<li><strong>Zaawansowanego, wieloparametrowego sterowania</strong>, które potrafi w czasie rzeczywistym integrować pracę aktywnego źródła ciepła z kaprysami pogody.</li>
</ol>



<p class="wp-block-paragraph">System tak zaprojektowany nie tylko gwarantuje najwyższy komfort termiczny, pozbawiony przegrzewania i wychłodzeń, ale też osiąga najniższe możliwe koszty eksploatacji, maksymalnie wykorzystując <strong>bezpłatną energię słońca</strong> i minimalizując pracę konwencjonalnych źródeł ciepła. To inwestycja w inteligentną, przyszłościową i odpowiedzialną technologię grzewczą.</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="GhiiEpqj7Y"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=gFK2odfV0b#?secret=GhiiEpqj7Y" data-secret="GhiiEpqj7Y" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projektowanie ogrzewania podłogowego w domach pasywnych.</title>
		<link>https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 13:06:27 +0000</pubDate>
				<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologiczne rozwiązania grzewcze]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Odnawialne źródła energii]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[domy pasywne]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ekologia]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2350</guid>

					<description><![CDATA[<p>Projektowanie ogrzewania podłogowego w domach pasywnych to wyzwanie, które wymaga precyzji i wiedzy technicznej. Domy pasywne, charakteryzujące się minimalnym zużyciem energii, potrzebują systemów grzewczych doskonale zintegrowanych z ich konstrukcją. W artykule omawiamy specyfikę takich instalacji, najlepsze praktyki oraz pokazujemy, jak połączyć komfort cieplny z ekologią. Dowiesz się, jak dobrać optymalny rozstaw rur, wybrać materiały o niskiej bezwładności cieplnej oraz zintegrować ogrzewanie z odnawialnymi źródłami energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-passive: #10b981; /* Zielony dla pasywnego */
    --rk-intro-standard: #f97316; /* Pomarańczowy dla standardu */
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

.rk-intro-wrap {
    max-width: 900px;
    margin: 40px auto;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-intro-blue-light);
    font-family: 'Inter', system-ui, sans-serif;
    overflow: hidden;
}

/* Sekcja Opisowa Wstępu */
.rk-intro-content {
    padding: 45px 45px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
}

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

.rk-intro-text-body {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin: 0;
}

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

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

.rk-intro-highlight {
    display: inline-block;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 15px;
    margin-top: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Symulator Suwakowy */
.rk-intro-sim {
    padding: 0 45px 45px;
}

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

/* Custom Slider */
.rk-slider-container {
    background: #f1f5f9;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    margin-bottom: 30px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-intro-passive) 0%, #cbd5e1 50%, var(--rk-intro-standard) 100%);
    outline: none;
    transition: opacity .2s;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-intro-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
    transition: transform 0.1s;
}

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

/* Wizualizacja SVG i Dane */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-house {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    display: block;
}

.anim-heat-loss {
    transition: opacity 0.3s, transform 0.3s;
}

.anim-wall {
    transition: stroke-width 0.3s, stroke 0.3s;
}

.anim-floor-heat {
    transition: fill 0.3s;
}

/* Kafelki parametrów */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-box {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 15px 20px;
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-metric-box h4 {
    margin: 0 0 5px 0;
    font-size: 12px;
    text-transform: uppercase;
    color: #94a3b8;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.rk-metric-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin-bottom: 2px;
}

.rk-metric-unit {
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-content, .rk-intro-sim { padding: 30px 20px; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; text-align: center; }
    .rk-metrics-grid { grid-template-columns: 1fr 1fr; }
    .rk-svg-house { max-width: 150px; }
}
@media (max-width: 480px) {
    .rk-metrics-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Inżynieryjny fundament: OZC i skrajnie niskie zapotrzebowanie na energię w domu pasywnym",
    "description": "Projektowanie instalacji dla domów pasywnych (zapotrzebowanie poniżej 15 kWh/(m²·rok)) wymaga idealnego zbilansowania mocy, przepływów i zasilania. Tu nie ma miejsca na błędy.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-ozc",
    "name": "Zestawienie Zapotrzebowania Energetycznego: Standard vs Dom Pasywny",
    "description": "Porównanie skrajnych wartości projektowego obciążenia cieplnego (OZC) dla budownictwa tradycyjnego oraz standardu pasywnego poniżej 15 kWh.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "ogrzewanie podłogowe dom pasywny",
      "zapotrzebowanie na energię 15 kWh",
      "temperatura czynnika grzewczego",
      "bezwładność cieplna budynku"
    ],
    "measurementTechnique": "Dynamiczna interpolacja algorytmiczna określająca zapotrzebowanie (W/m²), przepływ i temperaturę zasilania w zależności od współczynnika izolacyjności budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny (<15 kWh): Wymaga zasilania 28°C i mocy grzewczej rzędu 10 W/m².",
        "Dom Standardowy: Wymaga zasilania >35°C i mocy rzędu 40-50 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-ozc",
    "name": "Symulator Projektowego Obciążenia Cieplnego (OZC)",
    "description": "Interaktywny suwak pozwalający obserwować w czasie rzeczywistym spadek wymaganej mocy grzewczej oraz temperatury zasilania wraz ze wzrostem izolacyjności przegród.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-intro-wrap" id="ozc-intro-app">
    
    <!-- Opis Inżynieryjny -->
    <div class="rk-intro-content">
        <h2>Od teorii do fizyki budowli: Czym różni się projekt pasywny?</h2>
        <p class="rk-intro-text-body">
            Projektowanie ogrzewania podłogowego w domach pasywnych to proces inżynieryjny polegający na precyzyjnym obliczeniu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> dla budynku o ekstremalnie niskim zapotrzebowaniu na energię (poniżej <strong>15 kWh/(m²·rok)</strong>) oraz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">doborze parametrów instalacji hydraulicznej</a> w taki sposób, aby system pracował efektywnie przy skrajnie niskich temperaturach czynnika grzewczego. W standardzie pasywnym kluczowe jest zapewnienie stabilności termicznej przy jednoczesnym uniknięciu przegrzewania pomieszczeń, co wymaga uwzględnienia <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej przegród</a> oraz <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">integracji z systemem wentylacji mechanicznej z odzyskiem ciepła</a>.
        </p>
        <div class="rk-intro-highlight">
            Tu nie ma miejsca na &#8222;dobór na oko&#8221; – liczy się każdy wat mocy i litr przepływu.
        </div>
    </div>

    <!-- Symulator OZC -->
    <div class="rk-intro-sim">
        <div class="rk-sim-header">
            <h3>Symulacja OZC: Wpływ izolacji na podłogówkę</h3>
        </div>

        <div class="rk-slider-container">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-intro-passive);">Dom Pasywny</span>
                <span>Energooszczędny</span>
                <span style="color: var(--rk-intro-standard);">Standard (WT2021)</span>
            </div>
            <!-- Suwak: od 1 (Pasywny) do 100 (Standard) -->
            <input type="range" min="1" max="100" value="1" class="rk-range-input" id="ozc-slider" aria-label="Wybierz standard energetyczny budynku">
        </div>

        <div class="rk-sim-dashboard">
            <!-- Animowana grafika domku -->
            <div class="rk-svg-display">
                <svg class="rk-svg-house" viewBox="0 0 200 200">
                    <!-- Fale uciekającego ciepła (animowane opacity) -->
                    <g id="heat-loss-waves" stroke="var(--rk-intro-standard)" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.1">
                        <path d="M 30 70 Q 20 40 40 10" />
                        <path d="M 170 70 Q 180 40 160 10" />
                        <path d="M 100 30 Q 110 10 90 -10" />
                    </g>
                    <!-- Dach i Ściany -->
                    <path class="anim-wall" id="house-walls" d="M 40 160 L 40 90 L 100 40 L 160 90 L 160 160 Z" fill="none" stroke="#64748b" stroke-width="12" stroke-linejoin="round" />
                    <!-- Podłoga (Wylewka) -->
                    <rect x="25" y="160" width="150" height="20" fill="#cbd5e1" rx="2" />
                    <!-- Rury podłogówki -->
                    <g id="floor-pipes" fill="var(--rk-intro-passive)">
                        <circle cx="50" cy="170" r="5" />
                        <circle cx="80" cy="170" r="5" />
                        <circle cx="110" cy="170" r="5" />
                        <circle cx="140" cy="170" r="5" />
                    </g>
                    <!-- Centralna ikona temperatury -->
                    <text x="100" y="125" text-anchor="middle" font-size="28" font-weight="900" fill="var(--rk-intro-dark)" font-family="sans-serif">20°C</text>
                </svg>
            </div>

            <!-- Dynamiczne parametry OZC -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <h4>Zapotrzebowanie EUco</h4>
                    <div class="rk-metric-value" id="val-euco" style="color: var(--rk-intro-passive);">15</div>
                    <div class="rk-metric-unit">kWh/(m²·rok)</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Moc z podłogi (q)</h4>
                    <div class="rk-metric-value" id="val-q">10</div>
                    <div class="rk-metric-unit">W/m²</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Max Temp. Zasilania</h4>
                    <div class="rk-metric-value" id="val-temp" style="color: var(--rk-intro-passive);">28°C</div>
                    <div class="rk-metric-unit">przy mrozie -20°C</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Praca Pompy Ciepła</h4>
                    <div class="rk-metric-value" id="val-cop" style="color: var(--rk-intro-passive);">COP Maksymalne</div>
                    <div class="rk-metric-unit">Stabilność układu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('ozc-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #1e293b; 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: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane Użycie Kodu</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Ten kalkulator OZC oraz struktura Schema.org stanowią własność portalu Projekt-Ogrzewania.pl. 
                        Skrypt zablokował renderowanie na obcej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka (Interpolacja OZC)
    const slider = document.getElementById('ozc-slider');
    
    // Elementy UI
    const valEuco = document.getElementById('val-euco');
    const valQ = document.getElementById('val-q');
    const valTemp = document.getElementById('val-temp');
    const valCop = document.getElementById('val-cop');
    
    // Elementy SVG
    const heatLossWaves = document.getElementById('heat-loss-waves');
    const houseWalls = document.getElementById('house-walls');
    const floorPipes = document.getElementById('floor-pipes');

    // Kolory do płynnego przejścia
    const colorPassive = [16, 185, 129]; // #10b981
    const colorStandard = [249, 115, 22]; // #f97316

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = (slider.value - 1) / 99; // 0 (Pasywny) do 1 (Standard)

        // Obliczenia wartości
        const euco = Math.round(15 + factor * (65 - 15)); // od 15 do 65 kWh
        const q = Math.round(10 + factor * (45 - 10)); // od 10 do 45 W/m2
        const tempZasilania = Math.round(28 + factor * (38 - 28)); // od 28 do 38 C
        
        // Kolor stanu
        const currentColor = interpolateColor(colorPassive, colorStandard, factor);

        // Aktualizacja HTML
        valEuco.textContent = euco;
        valEuco.style.color = currentColor;
        
        valQ.textContent = q;
        valQ.style.color = currentColor;
        
        valTemp.textContent = tempZasilania + '°C';
        valTemp.style.color = currentColor;

        if (factor < 0.33) {
            valCop.textContent = "COP Maksymalne";
            valCop.style.color = "var(--rk-intro-passive)";
        } else if (factor < 0.66) {
            valCop.textContent = "COP Standardowe";
            valCop.style.color = "#64748b";
        } else {
            valCop.textContent = "Ryzyko Spadku COP";
            valCop.style.color = "var(--rk-intro-standard)";
        }

        // Animacja SVG
        // Grubosć ścian maleje im gorszy standard (więcej strat)
        const wallThickness = 14 - (factor * 8); // od 14px do 6px
        houseWalls.style.strokeWidth = wallThickness;
        houseWalls.style.stroke = factor < 0.5 ? '#64748b' : '#94a3b8';

        // Intensywność fal uciekającego ciepła rośnie
        heatLossWaves.style.opacity = 0.1 + (factor * 0.9); // od 0.1 do 1.0

        // Kolor rur podłogówki robi się coraz "gorętszy"
        floorPipes.setAttribute('fill', currentColor);
    }

    // Nasłuchiwanie zdarzeń
    slider.addEventListener('input', updateSimulation);
    
    // Inicjalizacja
    updateSimulation();
});
</script>



<style>
:root {
    --rk-pwr-dark: #1e293b;
    --rk-pwr-blue: #0284c7;
    --rk-pwr-blue-light: #f0f9ff;
    --rk-pwr-green: #10b981;
    --rk-pwr-green-bg: #ecfdf5;
    --rk-pwr-red: #ef4444;
    --rk-pwr-red-bg: #fef2f2;
    --rk-pwr-gray: #64748b;
    --rk-pwr-border: #e2e8f0;
    --rk-pwr-bg: #ffffff;
}

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

/* Sekcja Treści */
.rk-pwr-content {
    padding: 40px 40px 25px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-pwr-border);
}

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

.rk-pwr-text {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

.rk-pwr-text a {
    color: var(--rk-pwr-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-pwr-text a:hover {
    background: var(--rk-pwr-blue-light);
    border-color: var(--rk-pwr-blue);
}

/* Interfejs Symulatora */
.rk-pwr-interactive {
    padding: 30px 40px 40px;
}

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

/* Slider / Suwak */
.rk-pwr-slider-box {
    background: #f8fafc;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-pwr-border);
    margin-bottom: 35px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

.rk-slider-input {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(90deg, var(--rk-pwr-green) 0%, #cbd5e1 50%, var(--rk-pwr-red) 100%);
    outline: none;
}

.rk-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pwr-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

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

/* Wyświetlacz: SVG + Kafelki */
.rk-pwr-dashboard {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-pwr-svg-wrap {
    text-align: center;
}

.rk-svg-heat {
    width: 100%;
    max-width: 180px;
}

.anim-heat-wave {
    fill: none;
    stroke-width: 5;
    stroke-linecap: round;
    transition: stroke 0.3s, transform 0.3s;
}

/* Kafelki parametrów */
.rk-pwr-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-pwr-card {
    background: #ffffff;
    border: 1px solid var(--rk-pwr-border);
    padding: 20px;
    border-radius: 14px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

.rk-pwr-card h4 {
    margin: 0 0 8px 0;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--rk-pwr-gray);
    letter-spacing: 0.5px;
}

.rk-pwr-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-pwr-dark);
    line-height: 1.1;
    margin-bottom: 4px;
}

.rk-pwr-unit {
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
}

.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 10px;
}

.badge-ok { background: var(--rk-pwr-green-bg); color: var(--rk-pwr-green); border: 1px solid #a7f3d0; }
.badge-warn { background: var(--rk-pwr-red-bg); color: var(--rk-pwr-red); border: 1px solid #fecaca; }

@media (max-width: 768px) {
    .rk-pwr-content, .rk-pwr-interactive { padding: 25px; }
    .rk-pwr-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-pwr-svg-wrap { margin-bottom: 10px; }
    .rk-svg-heat { max-width: 140px; }
}

@media (max-width: 480px) {
    .rk-pwr-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-moc-grzewcza",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Maksymalna moc grzewcza ogrzewania podłogowego w domu pasywnym",
    "description": "Zrozumienie różnicy w mocy grzewczej między budownictwem tradycyjnym (60-80 W/m2) a pasywnym (10-20 W/m2). Wpływ na temperaturę podłogi według PN-EN 1264.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-moc",
    "name": "Zestawienie Mocy Grzewczej: Dom Pasywny vs Tradycyjny",
    "description": "Porównanie parametrów obciążenia cieplnego dla salonu 35 m2 w zależności od standardu izolacji budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna moc grzewcza podłogówki",
      "obciążenie cieplne W/m2",
      "temperatura powierzchni podłogi 29°C",
      "przegrzewanie domu pasywnego",
      "norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczna estymacja mocy i temperatury podłogi w oparciu o wytyczne norm PN-EN 12831 (obliczanie strat) oraz PN-EN 1264 (parametry podłogówki).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny: Zapotrzebowanie ~10-20 W/m2, moc całkowita salonu 35m2 ~400W, temperatura podłogi 24-25°C.",
        "Budownictwo Tradycyjne: Zapotrzebowanie ~60-80 W/m2, ryzyko przekroczenia normatywnych 29°C w domach wysoce izolowanych przy błędnym projekcie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-moc",
    "name": "Symulator Przegrzewania Podłogi",
    "description": "Aplikacja internetowa wizualizująca ryzyko przegrzania pomieszczenia pasywnego w przypadku zastosowania mocy grzewczej właściwej dla starego budownictwa.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pwr-container" id="pwr-sim-app">
    
    <div class="rk-pwr-content">
        <h2>Jaka jest maksymalna moc grzewcza w domu pasywnym?</h2>
        <p class="rk-pwr-text">
            Moc grzewcza w domu pasywnym nie powinna przekraczać <strong>10–20 W/m²</strong> przy parametrach obliczeniowych dla danej strefy klimatycznej, zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>. W tradycyjnym budownictwie wartości te sięgają 60–80 W/m², co w standardzie pasywnym doprowadziłoby do natychmiastowego przegrzania i dyskomfortu.
        </p>
        <p class="rk-pwr-text">
            W domach pasywnych <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia strat ciepła</a> muszą być wykonane z dokładnością do 1 W. Przykładowo, dla salonu o powierzchni 35 m² projektowe obciążenie cieplne wynosi zaledwie 350–450 W. Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, musimy tak dobrać rozstaw i temperaturę, aby nie przekroczyć granicy 29°C. Prawidłowo zaprojektowana <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalna temperatura podłogi</a> w domu pasywnym rzadko przekracza jednak 24–25°C.
        </p>
    </div>

    <div class="rk-pwr-interactive">
        <h3>Symulator Salonu 35 m²: Ryzyko Przegrzania</h3>
        
        <div class="rk-pwr-slider-box">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-pwr-green);">Dom Pasywny</span>
                <span style="color: var(--rk-pwr-red);">Stare Budownictwo</span>
            </div>
            <input type="range" min="1" max="100" value="10" class="rk-slider-input" id="rk-pwr-slider" aria-label="Symulacja obciążenia cieplnego budynku">
        </div>

        <div class="rk-pwr-dashboard">
            <!-- Animacja SVG -->
            <div class="rk-pwr-svg-wrap">
                <svg class="rk-svg-heat" viewBox="0 0 200 200">
                    <!-- Fale promieniowania -->
                    <g id="heat-waves" stroke="var(--rk-pwr-green)">
                        <path class="anim-heat-wave" id="wave1" d="M 50 140 Q 60 90 50 40" />
                        <path class="anim-heat-wave" id="wave2" d="M 100 140 Q 110 90 100 40" />
                        <path class="anim-heat-wave" id="wave3" d="M 150 140 Q 160 90 150 40" />
                    </g>
                    <!-- Przekrój podłogi -->
                    <rect x="20" y="160" width="160" height="24" fill="#cbd5e1" rx="4" />
                    <!-- Rury grzewcze -->
                    <g id="floor-pipes" fill="var(--rk-pwr-green)">
                        <circle cx="50" cy="172" r="6" />
                        <circle cx="83" cy="172" r="6" />
                        <circle cx="116" cy="172" r="6" />
                        <circle cx="150" cy="172" r="6" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych -->
            <div class="rk-pwr-metrics">
                <div class="rk-pwr-card">
                    <h4>Moc z 1 m² (q)</h4>
                    <div class="rk-pwr-value" id="val-wm2">12</div>
                    <div class="rk-pwr-unit">W/m²</div>
                    <div class="status-badge badge-ok" id="badge-wm2">Zgodnie z normą</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Moc Całkowita Salonu</h4>
                    <div class="rk-pwr-value" id="val-total">420</div>
                    <div class="rk-pwr-unit">Watów (W)</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Temp. Powierzchni</h4>
                    <div class="rk-pwr-value" id="val-temp">24.5</div>
                    <div class="rk-pwr-unit">°C</div>
                    <div class="status-badge badge-ok" id="badge-temp">Komfortowa</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Zasilanie Pętli</h4>
                    <div class="rk-pwr-value" id="val-supply">30</div>
                    <div class="rk-pwr-unit">°C</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pwr-sim-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #1e293b; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano</div>
                    <div style="color: #cbd5e1; font-size: 13px; line-height: 1.5;">
                        Kod kalkulatora mocy grzewczej oraz dane ustrukturyzowane Schema.org są chronione. Uruchamianie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka
    const slider = document.getElementById('rk-pwr-slider');
    
    // Elementy DOM
    const valWm2 = document.getElementById('val-wm2');
    const valTotal = document.getElementById('val-total');
    const valTemp = document.getElementById('val-temp');
    const valSupply = document.getElementById('val-supply');
    
    const badgeWm2 = document.getElementById('badge-wm2');
    const badgeTemp = document.getElementById('badge-temp');
    
    // SVG
    const heatWaves = document.getElementById('heat-waves');
    const floorPipes = document.getElementById('floor-pipes');
    const wavePaths = document.querySelectorAll('.anim-heat-wave');

    const AREA = 35; // Powierzchnia salonu stała = 35 m2

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    const rgbGreen = [16, 185, 129]; // #10b981
    const rgbRed = [239, 68, 68];    // #ef4444

    function updateSim() {
        const factor = (slider.value - 1) / 99; // 0.0 to 1.0

        // Obliczenia
        const powerPerSqm = Math.round(10 + factor * (80 - 10)); // 10 do 80 W/m2
        const totalPower = powerPerSqm * AREA;
        const surfaceTemp = (24 + factor * (33 - 24)).toFixed(1); // 24.0 do 33.0 °C
        const supplyTemp = Math.round(28 + factor * (45 - 28)); // 28 do 45 °C

        const currentColor = interpolateColor(rgbGreen, rgbRed, factor);

        // Aktualizacja Wartości
        valWm2.textContent = powerPerSqm;
        valWm2.style.color = currentColor;
        
        valTotal.textContent = totalPower;
        
        valTemp.textContent = surfaceTemp;
        valTemp.style.color = currentColor;
        
        valSupply.textContent = supplyTemp;

        // Logika Odznak (Badges)
        if (powerPerSqm <= 20) {
            badgeWm2.className = 'status-badge badge-ok';
            badgeWm2.textContent = 'Standard Pasywny';
        } else {
            badgeWm2.className = 'status-badge badge-warn';
            badgeWm2.textContent = 'Straty Tradycyjne';
        }

        if (surfaceTemp <= 29) {
            badgeTemp.className = 'status-badge badge-ok';
            badgeTemp.textContent = 'Norma zachowana';
        } else {
            badgeTemp.className = 'status-badge badge-warn';
            badgeTemp.textContent = 'Przegrzewanie (>29°C)';
        }

        // Animacja SVG
        heatWaves.setAttribute('stroke', currentColor);
        floorPipes.setAttribute('fill', currentColor);

        // Intensywność fal na podstawie mocy (wymuszenie ruchu)
        const waveOffset = factor * 20;
        wavePaths[0].setAttribute('d', `M 50 140 Q ${60 + waveOffset} 90 50 40`);
        wavePaths[1].setAttribute('d', `M 100 140 Q ${110 - waveOffset} 90 100 40`);
        wavePaths[2].setAttribute('d', `M 150 140 Q ${160 + waveOffset} 90 150 40`);
        
        heatWaves.style.opacity = 0.4 + (factor * 0.6); // Zwiększa widoczność ciepła
    }

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




<style>
:root {
    --rk-therm-dark: #1e293b;
    --rk-therm-brand: #0ea5e9;
    --rk-therm-sun: #fbbf24;
    --rk-therm-heat: #ef4444;
    --rk-therm-cool: #3b82f6;
    --rk-therm-bg: #ffffff;
    --rk-therm-panel: #f8fafc;
    --rk-therm-border: #e2e8f0;
    --rk-therm-text: #475569;
}

.rk-therm-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-therm-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

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

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

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

.rk-therm-text a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-therm-text a:hover {
    background: #e0f2fe;
    border-color: #0284c7;
}

.rk-highlight-box {
    background: #fffbeb;
    border-left: 4px solid var(--rk-therm-sun);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
    font-size: 15px;
    color: #92400e;
    font-weight: 600;
}

/* Symulator Samoregulacji */
.rk-therm-interactive {
    padding: 40px 50px;
}

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

/* Unikalny Kontroler - Suwak Słoneczny */
.rk-sun-controller {
    background: var(--rk-therm-panel);
    border: 1px solid var(--rk-therm-border);
    padding: 25px 35px;
    border-radius: 16px;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-sun-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #cbd5e1 0%, var(--rk-therm-sun) 100%);
    outline: none;
}

.rk-sun-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-therm-sun);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(251, 191, 36, 0.4);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Dashboard: SVG + Dane (Układ zintegrowany) */
.rk-therm-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja interaktywna SVG */
.rk-svg-stage {
    background: #ffffff;
    border-radius: 20px;
    padding: 20px;
    border: 1px solid var(--rk-therm-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    position: relative;
}

.rk-anim-sun-rays {
    transition: opacity 0.3s ease;
}

.rk-anim-therm-fill {
    transition: y 0.3s ease, height 0.3s ease, fill 0.3s ease;
}

.rk-anim-pipe {
    transition: fill 0.4s ease;
}

/* Kafelki Danych (H4) */
.rk-metrics-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-therm-border);
    padding: 16px 24px;
    border-radius: 14px;
    transition: all 0.3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-metric-row:hover {
    border-color: #bae6fd;
    transform: translateX(5px);
}

.rk-metric-info h4 {
    margin: 0 0 4px 0;
    font-size: 13px;
    text-transform: uppercase;
    color: var(--rk-therm-text);
    letter-spacing: 0.5px;
}

.rk-metric-info p {
    margin: 0;
    font-size: 11px;
    color: #94a3b8;
}

.rk-metric-value {
    font-size: 26px;
    font-weight: 900;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rk-metric-value span {
    font-size: 13px;
    font-weight: 700;
    margin-left: 2px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-therm-content, .rk-therm-interactive { padding: 30px 25px; }
    .rk-therm-dashboard { grid-template-columns: 1fr; gap: 30px; }
    .rk-metric-row { padding: 15px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Optymalna temperatura zasilania pompy ciepła i efekt samoregulacji podłogówki",
    "description": "Dlaczego temperatura zasilania 28°C-32°C to ideał dla pomp ciepła? Poznaj efekt samoregulacji instalacji według normy ISO 10508 i wpływ pasywnych zysków 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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset",
    "name": "Analiza Efektu Samoregulacji Ogrzewania Podłogowego",
    "description": "Zestawienie spadku mocy grzewczej podłogi w funkcji wzrostu temperatury wewnętrznej pomieszczenia wywołanej pasywnymi zyskami słonecznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "samoregulacja ogrzewania podłogowego",
      "pasywne zyski słoneczne dom pasywny",
      "norma ISO 10508 podłogówka"
    ],
    "measurementTechnique": "Algorytmiczna interpolacja liniowa odwzorowująca spadek gęstości strumienia cieplnego przy zmniejszającej się różnicy temperatur między podłogą a powietrzem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan bazowy: Temp. pokoju 20.0°C, moc podłogi 100%, zasilanie 30°C.",
        "Efekt samoregulacji: Wzrost temp. pokoju do 22.0°C od słońca automatycznie dławi oddawanie ciepła przez podłogę o 30%, redukując zużycie prądu przez pompę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp",
    "name": "Symulator Samoregulacji Termicznej Płyty Grzewczej",
    "description": "Narzędzie interaktywne ilustrujące zjawisko fizyczne, w którym podłoga przestaje oddawać ciepło pod wpływem nasłonecznienia zewnętrznego, bez ingerencji termostatów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-therm-wrap" id="samoregulacja-app">
    
    <div class="rk-therm-content">
        <h2>Jaka temperatura zasilania jest idealna dla pompy ciepła w standardzie pasywnym?</h2>
        <p class="rk-therm-text">
            Idealna temperatura zasilania (T_z) w domu pasywnym oscyluje w granicach <strong>28°C – 32°C</strong> przy temperaturze zewnętrznej -20°C. Obniżenie temperatury zasilania o każdy 1°C zwiększa <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">współczynnik COP pompy ciepła</a> o około 2-3%, co w skali roku generuje wymierne oszczędności na rachunkach za prąd.
        </p>
        <p class="rk-therm-text">
            Projektując układ, dążymy do tzw. "grzania ciągłego" o bardzo niskiej mocy. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma EN 1264</a> oraz ISO 10508 klasyfikują takie systemy w Klasie 4 (niskotemperaturowe <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">wodne ogrzewanie podłogowe</a>). Przy zasilaniu 30°C i powrocie 25°C (spadek temperatury Delta T = 5K), średnia temperatura jastrychu wynosi zaledwie 27,5°C.
        </p>
        
        <div class="rk-highlight-box">
            Przy temperaturze docelowej w pomieszczeniu 20°C, różnica między powietrzem a podłogą to tylko 7,5K. Uruchamia to zjawisko fizycznej samoregulacji.
        </div>
        
        <p class="rk-therm-text">
            To sprawia, że system dławi się samoczynnie. Jeśli <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła od nasłonecznienia</a> podniosą temperaturę w salonie o 2°C, moc oddawana przez podłogę spadnie automatycznie o blisko <strong>30%</strong>, bez jakiejkolwiek ingerencji elektroniki sterującej!
        </p>
    </div>

    <div class="rk-therm-interactive">
        <h3>Przetestuj zjawisko: Symulator Samoregulacji</h3>
        
        <div class="rk-sun-controller">
            <div class="rk-sun-labels">
                <span style="color: #94a3b8;">Brak słońca (Zima/Noc)</span>
                <span style="color: var(--rk-therm-sun);">Duże zyski przez okna (Dzień)</span>
            </div>
            <input type="range" min="0" max="100" value="0" class="rk-sun-slider" id="rk-sun-input" aria-label="Poziom nasłonecznienia pomieszczenia">
        </div>

        <div class="rk-therm-dashboard">
            <!-- Grafika Pokoju, Słońca i Termometru -->
            <div class="rk-svg-stage">
                <svg viewBox="0 0 300 200" width="100%" height="auto">
                    <!-- Słońce (animowane) -->
                    <g id="svg-sun" opacity="0.3">
                        <circle cx="50" cy="50" r="20" fill="var(--rk-therm-sun)" />
                        <g class="rk-anim-sun-rays" id="sun-rays">
                            <line x1="50" y1="15" x2="50" y2="5" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="50" y1="85" x2="50" y2="95" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="15" y1="50" x2="5" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="85" y1="50" x2="95" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="25" x2="18" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="75" x2="82" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="75" x2="18" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="25" x2="82" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                        </g>
                    </g>
                    
                    <!-- Termometr -->
                    <rect x="220" y="30" width="20" height="120" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="224" y="80" width="12" height="70" rx="6" fill="#ef4444" id="therm-fill" class="rk-anim-therm-fill"/>
                    <circle cx="230" cy="150" r="14" fill="#ef4444" id="therm-bulb" class="rk-anim-therm-fill"/>
                    <!-- Skala -->
                    <path d="M 245 50 L 255 50 M 245 70 L 255 70 M 245 90 L 255 90 M 245 110 L 255 110 M 245 130 L 255 130" stroke="#94a3b8" stroke-width="1.5"/>

                    <!-- Podłoga i Rury (animowane) -->
                    <rect x="20" y="170" width="260" height="20" fill="#e2e8f0" rx="4"/>
                    <g id="floor-pipes">
                        <circle cx="50" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="90" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="130" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="170" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="210" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="250" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                    </g>
                </svg>
            </div>

            <!-- Parametry Dynamiczne -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Zyski Słoneczne</h4>
                        <p>Dodatkowa darmowa energia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-sun);">
                        <span id="val-sun" style="font-size: 26px;">0</span><span>%</span>
                    </div>
                </div>

                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Temperatura w salonie</h4>
                        <p>Baza: 20°C (różnica 7,5K do podłogi)</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-dark);">
                        <span id="val-room" style="font-size: 26px;">20.0</span><span>°C</span>
                    </div>
                </div>

                <div class="rk-metric-row" style="border-left: 4px solid var(--rk-therm-brand);">
                    <div class="rk-metric-info">
                        <h4>Moc grzewcza podłogi</h4>
                        <p>Efekt automatycznego dławienia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-heat);" id="color-power">
                        <span id="val-power" style="font-size: 26px;">100</span><span>%</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagó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('samoregulacja-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #fffbeb; border: 2px solid #f59e0b; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">🛑</div>
                    <div style="font-size: 15px; font-weight: bold; color: #b45309; margin-bottom: 8px;">Blokada Własności Intelektualnej</div>
                    <div style="color: #92400e; font-size: 13px; line-height: 1.5;">
                        Moduł symulacji samoregulacji oraz kod strukturalny zostały zablokowane. Wykryto próbę uruchomienia skryptu Projekt-Ogrzewania.pl na innej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Efekt Samoregulacji)
    const slider = document.getElementById('rk-sun-input');
    
    // UI Elements
    const valSun = document.getElementById('val-sun');
    const valRoom = document.getElementById('val-room');
    const valPower = document.getElementById('val-power');
    const colorPower = document.getElementById('color-power');
    
    // SVG Elements
    const sunGroup = document.getElementById('svg-sun');
    const thermFill = document.getElementById('therm-fill');
    const pipes = document.querySelectorAll('.rk-anim-pipe');

    // Kolory interpolacji dla rur (od gorącego czerwonego do chłodnego niebieskawego)
    const colorHot = [239, 68, 68]; // #ef4444 (100% mocy)
    const colorCool = [148, 163, 184]; // #94a3b8 (70% mocy, uśpienie)

    function interpolateColor(c1, c2, factor) {
        let result = [];
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(c1[i] + factor * (c2[i] - c1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = slider.value / 100; // 0.0 do 1.0

        // Obliczenia parametrów fizycznych
        // Zyski rosną od 0 do 100%
        valSun.textContent = Math.round(factor * 100);
        
        // Temperatura wzrasta od 20.0 do 22.0 °C
        const currentTemp = 20.0 + (factor * 2.0);
        valRoom.textContent = currentTemp.toFixed(1);
        
        // Moc podłogi spada od 100% do 70% (dławienie o 30%)
        const currentPower = 100 - (factor * 30);
        valPower.textContent = Math.round(currentPower);

        // --- Aktualizacja Wizualna SVG ---
        
        // Słońce rozjaśnia się bez transformacji promieni
        sunGroup.setAttribute('opacity', 0.2 + (factor * 0.8));

        // Termometr idzie do góry (y maleje, height rośnie)
        // Baza y=80, h=70 (20 st). Max y=40, h=110 (22 st)
        const newY = 80 - (factor * 40);
        const newH = 70 + (factor * 40);
        thermFill.setAttribute('y', newY);
        thermFill.setAttribute('height', newH);
        
        // Zmiana koloru termometru i rur w miarę samoregulacji
        // Termometr staje się cieplejszy (pomarańcz) od słońca, a rury stygną
        const pipeColor = interpolateColor(colorHot, colorCool, factor);
        
        pipes.forEach(pipe => {
            pipe.setAttribute('fill', pipeColor);
        });
        
        colorPower.style.color = pipeColor;
    }

    // Inicjalizacja nasłuchiwania
    slider.addEventListener('input', updateSimulation);
    
    // Uruchomienie stanu zero
    updateSimulation();
});
</script>



<style>
:root {
    --rk-sp-dark: #0f172a;
    --rk-sp-brand: #0284c7;
    --rk-sp-brand-light: #f0f9ff;
    --rk-sp-accent: #38bdf8;
    --rk-sp-eco: #10b981;
    --rk-sp-warn: #f59e0b;
    --rk-sp-text: #475569;
    --rk-sp-border: #e2e8f0;
    --rk-sp-bg: #ffffff;
}

.rk-sp-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-sp-bg);
    border-radius: 28px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Header */
.rk-sp-header {
    padding: 45px 50px 35px;
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-sp-border);
}

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

.rk-sp-formula {
    background: var(--rk-sp-dark);
    color: #cbd5e1;
    padding: 22px 25px;
    border-radius: 16px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    border-left: 5px solid var(--rk-sp-brand);
    margin-top: 20px;
}

.rk-sp-formula .hl { color: var(--rk-sp-eco); font-weight: 800; }

/* Dashboard */
.rk-sp-dashboard {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-sp-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-sp-card {
    background: #ffffff;
    border: 2px solid var(--rk-sp-border);
    padding: 20px;
    border-radius: 20px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

.rk-sp-label { font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-bottom: 5px; display: block; }
.rk-sp-val { font-size: 18px; font-weight: 900; color: var(--rk-sp-dark); }

.rk-sp-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Visualization */
.rk-sp-visual {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    border-radius: 24px;
    padding: 35px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-svg-main { width: 100%; height: auto; display: block; }
.layer-text { font-size: 8px; font-weight: 700; fill: #94a3b8; text-transform: uppercase; }
.pipe-anim { transition: opacity 0.4s ease; }

/* Stats */
.rk-sp-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-row {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    padding: 18px 22px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.rk-stat-row:hover { border-color: var(--rk-sp-accent); transform: translateX(5px); }

.rk-stat-info h4 { margin: 0; font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }
.rk-stat-info p { margin: 4px 0 0 0; font-size: 11px; color: #94a3b8; }
.rk-stat-num { font-size: 24px; font-weight: 900; color: var(--rk-sp-dark); display: block; }

@media (max-width: 850px) {
    .rk-sp-grid { grid-template-columns: 1fr; }
    .rk-sp-selector { grid-template-columns: 1fr; }
}
</style>

<div class="rk-sp-wrap" id="rk-spacing-app">
    
    <div class="rk-sp-header">
        <h2>Jaki rozstaw rur jest optymalny przy niskim zapotrzebowaniu na ciepło?</h2>
        <p>W domach pasywnych (10-15 W/m²) optymalny rozstaw to <strong>15 cm lub 20 cm</strong>. Zapewnia to idealne przepływy dla pompy ciepła i eliminuje zbędne koszty materiału.</p>
        <div class="rk-sp-formula">
            // Bilans hydrauliczny pętli 15 m²<br>
            Moc (Q) = 225 W | Przepływ (m) = <span class="hl">0,64 l/min</span>
        </div>
    </div>

    <div class="rk-sp-dashboard">
        <div class="rk-sp-selector">
            <div class="rk-sp-card active" data-mode="1">
                <span class="rk-sp-label">Standard WT2021</span>
                <span class="rk-sp-val">co 10 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="2">
                <span class="rk-sp-label">Energooszczędny</span>
                <span class="rk-sp-val">co 15 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="3">
                <span class="rk-sp-label">Standard Pasywny</span>
                <span class="rk-sp-val">co 20 cm</span>
            </div>
        </div>

        <div class="rk-sp-grid">
            <div class="rk-sp-visual">
                <svg class="rk-svg-main" viewBox="0 0 240 160">
                    <defs>
                        <linearGradient id="g-pipe" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" style="stop-color:#38bdf8" />
                            <stop offset="100%" style="stop-color:#0284c7" />
                        </linearGradient>
                    </defs>
                    <rect x="10" y="40" width="220" height="60" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="55" class="layer-text">Wylewka Anhydrytowa (60mm)</text>
                    <rect x="10" y="100" width="220" height="50" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="115" class="layer-text">Izolacja EPS 200 (200mm)</text>

                    <g id="pipes">
                        <circle cx="30" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2"/>
                        <circle cx="65" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <circle cx="100" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15"/>
                        <circle cx="135" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <!-- Ta rura (170) jest kluczowa dla widoku 20cm -->
                        <circle cx="170" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15 p20"/>
                        <circle cx="205" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                    </g>
                    
                    <path d="M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40" stroke="#94a3b8" stroke-width="1.5" id="m-line"/>
                    <text x="47.5" y="25" text-anchor="middle" font-size="10" font-weight="900" fill="#0284c7" id="m-text">10 cm</text>
                </svg>
            </div>

            <div class="rk-sp-stats">
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Długość rur</h4><p>Dom 150 m²</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-meters">1500</span><span class="rk-stat-unit">mb</span></div>
                </div>
                <div class="rk-stat-row" style="border-left: 5px solid var(--rk-sp-eco);">
                    <div class="rk-stat-info"><h4>Koszt materiału</h4><p id="s-label">Baza porównawcza</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-price">6750</span><span class="rk-stat-unit">PLN</span></div>
                </div>
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Opory</h4><p>Hydraulika</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-hydro" style="font-size:18px;color:var(--rk-sp-warn)">Wysokie</span></div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-spacing-app').innerHTML = '<div style="padding:40px;text-align:center;background:#0f172a;color:#ef4444;border-radius:20px;font-weight:900;">🛡️ MODUŁ CHRONIONY</div>';
        return;
    }

    const cards = document.querySelectorAll('.rk-sp-card');
    const p10 = document.querySelectorAll('.p10'), p15 = document.querySelectorAll('.p15'), p20 = document.querySelectorAll('.p20');
    const mLine = document.getElementById('m-line'), mText = document.getElementById('m-text');
    const sMeters = document.getElementById('s-meters'), sPrice = document.getElementById('s-price'), sHydro = document.getElementById('s-hydro'), sLabel = document.getElementById('s-label');

    cards.forEach(card => {
        card.addEventListener('click', function() {
            cards.forEach(c => c.classList.remove('active'));
            this.classList.add('active');
            const mode = this.getAttribute('data-mode');

            if (mode === '1') {
                p10.forEach(p => p.style.opacity = '1'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40');
                mText.textContent = '10 cm'; mText.setAttribute('x', '47.5');
                update('1500', '6750', 'Wysokie', '#f59e0b', 'Baza porównawcza');
            } else if (mode === '2') {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 100 35 M 30 30 L 30 40 M 100 30 L 100 40');
                mText.textContent = '15 cm'; mText.setAttribute('x', '65');
                update('1000', '4500', 'Optymalne', '#0284c7', 'Oszczędzasz 2250 PLN');
            } else {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '0');
                p20.forEach(p => p.style.opacity = '1'); // Pokazuje rurę na 20 cm
                mLine.setAttribute('d', 'M 30 35 L 170 35 M 30 30 L 30 40 M 170 30 L 170 40');
                mText.textContent = '20 cm'; mText.setAttribute('x', '100');
                update('900', '4050', 'Minimalne', '#10b981', 'Oszczędzasz 2700 PLN');
            }
        });
    });

    function update(m, p, h, c, l) {
        sMeters.textContent = m; sPrice.textContent = p; sHydro.textContent = h; sHydro.style.color = c; sLabel.textContent = l;
    }
});
</script>



<style>
:root {
    --rk-sys-dark: #0f172a;
    --rk-sys-wet: #f97316;     /* Pomarańcz - akumulacja, ciepło */
    --rk-sys-wet-light: #fff7ed;
    --rk-sys-dry: #06b6d4;     /* Cyjan - szybkość, aluminium */
    --rk-sys-dry-light: #ecfeff;
    --rk-sys-text: #334155;
    --rk-sys-muted: #64748b;
    --rk-sys-border: #cbd5e1;
    --rk-sys-bg: #ffffff;
}

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

/* Sekcja Treści - Akapit */
.rk-sys-content {
    padding: 40px 45px 30px;
    background: linear-gradient(to bottom right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-sys-border);
}

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

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

.rk-sys-text a {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.3s;
}

.rk-sys-text a:hover {
    background: #dbeafe;
    border-color: #2563eb;
}

.rk-sys-note {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-sys-dark);
    padding: 15px 20px;
    margin: 20px 0;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    color: var(--rk-sys-dark);
    font-weight: 600;
}

/* Interaktywny Symulator */
.rk-sys-interactive {
    padding: 40px 45px;
}

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

/* Unikalny Przełącznik (Toggle) */
.rk-toggle-station {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    background: #f8fafc;
    padding: 20px;
    border-radius: 100px;
    border: 1px solid var(--rk-sys-border);
    margin-bottom: 40px;
}

.rk-toggle-label {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-sys-muted);
    transition: color 0.3s;
    cursor: pointer;
}

.rk-toggle-label.active-wet { color: var(--rk-sys-wet); }
.rk-toggle-label.active-dry { color: var(--rk-sys-dry); }

.rk-main-switch {
    position: relative;
    width: 80px;
    height: 40px;
    background: var(--rk-sys-wet);
    border-radius: 40px;
    cursor: pointer;
    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-main-switch.mode-dry {
    background: var(--rk-sys-dry);
}

.rk-switch-knob {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 32px;
    height: 32px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-main-switch.mode-dry .rk-switch-knob {
    transform: translateX(40px);
}

/* Dashboard SVG + Kafelki */
.rk-sys-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Kontener SVG */
.rk-svg-box {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-sys-border);
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-cross-section {
    width: 100%;
    max-width: 250px;
}

/* Warstwy SVG */
.layer-screed { transition: opacity 0.4s; }
.layer-lamella { transition: opacity 0.4s; }
.wave-heat { fill: none; stroke-linecap: round; }

/* Animacje Bezwładności */
.state-wet .wave-heat { 
    stroke: var(--rk-sys-wet); 
    stroke-width: 6; 
    animation: flowUp 3s infinite linear; 
}
.state-dry .wave-heat { 
    stroke: var(--rk-sys-dry); 
    stroke-width: 3; 
    animation: flowUp 0.8s infinite linear; 
}

@keyframes flowUp {
    0% { transform: translateY(10px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-30px); opacity: 0; }
}

/* Kafelki Danych (Grid) */
.rk-sys-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-tile {
    background: #ffffff;
    border: 1px solid var(--rk-sys-border);
    border-radius: 14px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s;
}

.rk-tile h4 {
    margin: 0 0 5px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--rk-sys-muted);
    letter-spacing: 0.5px;
}

.rk-tile .val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sys-dark);
    margin-bottom: 2px;
    line-height: 1.2;
}

.rk-tile .desc {
    font-size: 12px;
    color: var(--rk-sys-text);
}

/* Mobilna responsywność */
@media (max-width: 768px) {
    .rk-sys-content, .rk-sys-interactive { padding: 25px 20px; }
    .rk-toggle-station { flex-direction: column; gap: 15px; border-radius: 20px; padding: 15px; }
    .rk-sys-dashboard { grid-template-columns: 1fr; }
    .rk-sys-tiles { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "System mokry czy suchy – co wybrać do domu pasywnym?",
    "description": "Porównanie systemów ogrzewania podłogowego. System mokry (anhydryt, wysoka bezwładność, domy murowane) kontra system suchy (lamele aluminiowe, niska bezwładność, domy szkieletowe). Wymagania izolacji EPS.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset",
    "name": "Parametry Techniczne: Wylewka Anhydrytowa vs Sucha Zabudowa",
    "description": "Tabela porównawcza parametrów przewodzenia ciepła, grubości wylewki oraz izolacji wymaganej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy podłogówki",
      "bezwładność cieplna wylewki",
      "grubość styropianu dom pasywny",
      "lamele aluminiowe system suchy"
    ],
    "measurementTechnique": "Analiza współczynnika przewodzenia ciepła lambda (W/mK) oraz oporu cieplnego R dla jastrychów i izolacji EPS na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Anhydryt (System Mokry): Lambda 1,6–1,8 W/(m·K), grubość 35-45 mm nad rurą, wysoka akumulacja.",
        "System Suchy (Lamele): Błyskawiczna reakcja, dedykowane do domów szkieletowych.",
        "Izolacja dom pasywny: 20-25 cm EPS 100/200, Lambda = 0,031 W/(m·K), Opór R = 6,0-8,0 (m²·K)/W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp",
    "name": "Symulator Bezwładności Termicznej Posadzki",
    "description": "Interaktywna animacja SVG obrazująca różnicę w prędkości przekazywania ciepła (reakcji na zyski słoneczne) pomiędzy ciężkim systemem mokrym a lekkim systemem suchym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-sys-container" id="sys-simulator-app">
    
    <div class="rk-sys-content">
        <h2>System mokry czy suchy – co wybrać do domu pasywnego?</h2>
        <p class="rk-sys-text">
            W domach pasywnych o konstrukcji ciężkiej (murowanej) zalecam <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a> z <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewką anhydrytową</a> o grubości 35–45 mm nad rurą, natomiast w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">budownictwie szkieletowym</a> jedynym rozsądnym wyborem jest <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy</a> o niskiej bezwładności. Wylewka anhydrytowa ma współczynnik przewodzenia ciepła lambda 1,6–1,8 W/(m·K), co jest wartością znacznie lepszą niż w przypadku jastrychu cementowego lambda 1,1–1,2 W/(m·K).
        </p>
        <p class="rk-sys-text">
            Niska <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> systemu suchego (płyty systemowe z lamelami aluminiowymi) pozwala na szybszą reakcję na zyski ciepła od słońca, co w domach pasywnych z dużymi przeszkleniami od południa jest kluczowe. System mokry z kolei działa jak akumulator energii.
        </p>
        <div class="rk-sys-note">
            <strong>Parametry techniczne izolacji:</strong> Pod ogrzewaniem podłogowym na gruncie w domu pasywnym wymagane jest minimum <strong>20–25 cm <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" style="color:var(--rk-sys-dark); text-decoration:underline;">styropianu EPS 100 lub EPS 200</a></strong> o współczynniku lambda = 0,031 W/(m·K), aby opór cieplny izolacji R wynosił minimum 6,0–8,0 (m²·K)/W.
        </div>
    </div>

    <div class="rk-sys-interactive">
        <h3>Symulator Bezwładności Termicznej</h3>
        
        <div class="rk-toggle-station">
            <div class="rk-toggle-label active-wet" id="lbl-wet" onclick="document.getElementById('rk-mode-switch').click()">
                System Mokry (Anhydryt)
            </div>
            <div class="rk-main-switch" id="rk-mode-switch">
                <div class="rk-switch-knob"></div>
            </div>
            <div class="rk-toggle-label" id="lbl-dry" onclick="document.getElementById('rk-mode-switch').click()">
                System Suchy (Lamele)
            </div>
        </div>

        <div class="rk-sys-dashboard">
            <!-- Animacja SVG Przekroju -->
            <div class="rk-svg-box state-wet" id="svg-anim-state">
                <svg class="rk-svg-cross-section" viewBox="0 0 200 150">
                    <!-- Baza: Izolacja EPS 200 (Zawsze widoczna) -->
                    <rect x="20" y="100" width="160" height="40" fill="#e2e8f0" rx="4"/>
                    <text x="100" y="125" text-anchor="middle" fill="#64748b" font-size="12" font-weight="bold">EPS 200 (Izolacja)</text>

                    <!-- System Mokry (Wylewka Anhydrytowa) -->
                    <g class="layer-screed" id="svg-screed">
                        <rect x="20" y="40" width="160" height="60" fill="#cbd5e1" rx="4"/>
                    </g>

                    <!-- System Suchy (Płyta z Lamelem) -->
                    <g class="layer-lamella" id="svg-lamella" opacity="0">
                        <rect x="20" y="70" width="160" height="30" fill="#f8fafc" rx="4" stroke="#cbd5e1" stroke-width="2"/>
                        <!-- Aluminiowe Lamele -->
                        <path d="M 20 70 L 180 70 M 20 75 L 180 75" stroke="#06b6d4" stroke-width="3"/>
                    </g>

                    <!-- Rury Grzewcze -->
                    <g fill="#ef4444">
                        <circle cx="50" cy="85" r="8"/>
                        <circle cx="100" cy="85" r="8"/>
                        <circle cx="150" cy="85" r="8"/>
                    </g>

                    <!-- Fale Ciepła (Animacja CSS definiuje prędkość) -->
                    <path class="wave-heat" d="M 50 70 Q 60 40 50 10" />
                    <path class="wave-heat" d="M 100 70 Q 110 40 100 10" style="animation-delay: 0.3s;" />
                    <path class="wave-heat" d="M 150 70 Q 160 40 150 10" style="animation-delay: 0.6s;" />
                </svg>
            </div>

            <!-- Dynamiczne Kafelki Danych -->
            <div class="rk-sys-tiles">
                <div class="rk-tile" id="tile-lambda">
                    <h4>Przewodzenie (Lambda)</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">1,6 - 1,8</div>
                    <div class="desc">W/(m·K) - Anhydryt</div>
                </div>
                <div class="rk-tile" id="tile-inertia">
                    <h4>Bezwładność Cieplna</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">Wysoka</div>
                    <div class="desc">Działa jak akumulator</div>
                </div>
                <div class="rk-tile" id="tile-thick">
                    <h4>Wysokość Zabudowy</h4>
                    <div class="val">35 - 45 mm</div>
                    <div class="desc">Zalewane nad rurą</div>
                </div>
                <div class="rk-tile" id="tile-build">
                    <h4>Konstrukcja Budynku</h4>
                    <div class="val">Murowana</div>
                    <div class="desc">Wysoka nośność stropu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagó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('sys-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #f8fafc; border: 2px solid #ef4444; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 15px; font-weight: bold; color: #dc2626; margin-bottom: 8px;">Blokada Praw Autorskich</div>
                    <div style="color: #475569; font-size: 13px; line-height: 1.5;">
                        Interaktywny kalkulator systemów (mokry/suchy) został zablokowany, ponieważ domena nie posiada licencji na renderowanie kodu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełącznika i Aktualizacji Danych
    const switchBtn = document.getElementById('rk-mode-switch');
    const lblWet = document.getElementById('lbl-wet');
    const lblDry = document.getElementById('lbl-dry');
    const svgState = document.getElementById('svg-anim-state');
    
    // Warstwy SVG
    const svgScreed = document.getElementById('svg-screed');
    const svgLamella = document.getElementById('svg-lamella');

    // Kafelki
    const tileLambda = document.getElementById('tile-lambda');
    const tileInertia = document.getElementById('tile-inertia');
    const tileThick = document.getElementById('tile-thick');
    const tileBuild = document.getElementById('tile-build');

    let isDry = false;

    function updateCard(card, valText, descText, color = 'var(--rk-sys-dark)') {
        const valEl = card.querySelector('.val');
        const descEl = card.querySelector('.desc');
        
        valEl.style.opacity = 0;
        descEl.style.opacity = 0;
        
        setTimeout(() => {
            valEl.textContent = valText;
            valEl.style.color = color;
            descEl.textContent = descText;
            
            valEl.style.opacity = 1;
            descEl.style.opacity = 1;
        }, 150);
    }

    switchBtn.addEventListener('click', () => {
        isDry = !isDry;

        if (isDry) {
            // Przejście na System Suchy
            switchBtn.classList.add('mode-dry');
            lblWet.classList.remove('active-wet');
            lblDry.classList.add('active-dry');
            
            // Zmiana animacji SVG
            svgState.classList.remove('state-wet');
            svgState.classList.add('state-dry');
            svgScreed.style.opacity = 0;
            svgLamella.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, 'Aluminium', 'Doskonałe przewodzenie', 'var(--rk-sys-dry)');
            updateCard(tileInertia, 'Niska', 'Błyskawiczna reakcja', 'var(--rk-sys-dry)');
            updateCard(tileThick, 'Minimalna', 'Tylko grubość płyty', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Szkieletowa', 'Lekka konstrukcja', 'var(--rk-sys-dark)');
            
        } else {
            // Powrót do Systemu Mokrego
            switchBtn.classList.remove('mode-dry');
            lblDry.classList.remove('active-dry');
            lblWet.classList.add('active-wet');

            // Zmiana animacji SVG
            svgState.classList.remove('state-dry');
            svgState.classList.add('state-wet');
            svgLamella.style.opacity = 0;
            svgScreed.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, '1,6 - 1,8', 'W/(m·K) - Anhydryt', 'var(--rk-sys-wet)');
            updateCard(tileInertia, 'Wysoka', 'Działa jak akumulator', 'var(--rk-sys-wet)');
            updateCard(tileThick, '35 - 45 mm', 'Zalewane nad rurą', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Murowana', 'Wysoka nośność stropu', 'var(--rk-sys-dark)');
        }
    });
});
</script>



<style>
:root {
    --rk-comp-dark: #1e293b;
    --rk-comp-brand: #3b82f6;
    --rk-comp-wet: #8b5cf6;     /* Fiolet dla Anhydrytu (masa, pojemność) */
    --rk-comp-wet-light: #f5f3ff;
    --rk-comp-dry: #10b981;     /* Zielony dla Suchego (lekkość, eko) */
    --rk-comp-dry-light: #ecfdf5;
    --rk-comp-text: #475569;
    --rk-comp-border: #e2e8f0;
    --rk-comp-bg: #ffffff;
}

.rk-comp-wrap {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.1);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek i Tekst SEO */
.rk-comp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

.rk-comp-text a {
    color: var(--rk-comp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bfdbfe;
    transition: background 0.3s, box-shadow 0.3s;
}

.rk-comp-text a:hover {
    background: #dbeafe;
    box-shadow: inset 0 -10px 0 #bfdbfe;
}

/* Interaktywny Komparator */
.rk-comp-interactive {
    padding: 40px 45px;
}

.rk-comp-interactive h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 30px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Przełącznik Systemów (Taby) */
.rk-comp-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 40px;
    gap: 8px;
}

.rk-comp-tab {
    flex: 1;
    text-align: center;
    padding: 16px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-comp-tab.active[data-system="wet"] {
    background: #ffffff;
    color: var(--rk-comp-wet);
    box-shadow: 0 4px 10px rgba(139, 92, 246, 0.15);
}

.rk-comp-tab.active[data-system="dry"] {
    background: #ffffff;
    color: var(--rk-comp-dry);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

.rk-tab-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #fff;
    transition: background 0.3s;
}

.rk-comp-tab.active[data-system="wet"] .rk-tab-icon { background: var(--rk-comp-wet); }
.rk-comp-tab.active[data-system="dry"] .rk-tab-icon { background: var(--rk-comp-dry); }

/* Dashboard: SVG i Kafelki Parametrów */
.rk-comp-dashboard {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Wizualizacja */
.rk-svg-panel {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.anim-thickness { transition: height 0.4s ease, y 0.4s ease, fill 0.4s ease; }
.anim-weight-text { transition: opacity 0.3s; }
.anim-scale { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); transform-origin: 100px 150px; }

/* Grid Kafelków (Zastępstwo Tabeli) */
.rk-comp-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-param-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 14px;
    padding: 18px 20px;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-param-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 0.5px;
}

.rk-param-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 4px;
    transition: color 0.3s;
}

.rk-param-norm {
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.rk-param-norm::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cbd5e1;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 25px; }
    .rk-comp-dashboard { grid-template-columns: 1fr; }
    .rk-comp-tabs { flex-direction: column; }
    .rk-svg-panel { margin-bottom: 20px; }
}
@media (max-width: 480px) {
    .rk-comp-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "Porównanie parametrów systemów podłogowych w domu pasywnym",
    "description": "Szczegółowe zestawienie parametrów technicznych: wylewka anhydrytowa kontra system suchy. Analiza przewodności cieplnej, grubości zabudowy i wagi stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset-porownanie",
    "name": "Zestawienie Parametrów: System Mokry vs System Suchy",
    "description": "Tabela analityczna zestawiająca kluczowe różnice fizyczne pomiędzy systemami grzewczymi stosowanymi w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy ogrzewania podłogowego",
      "przewodność cieplna lambda",
      "bezwładność cieplna posadzki",
      "waga systemu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kompilacja danych laboratoryjnych ITB, wytycznych producentów oraz normy europejskiej PN-EN 1264 w odniesieniu do wydajności termicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Mokry (Anhydryt): Przewodność 1,8 W/(mK), Waga ~120 kg/m2, Grubość 55-65 mm, Bezwładność wysoka (3-5 h).",
        "System Suchy (Lekki): Przewodność 0,4-0,5 W/(mK), Waga ~30 kg/m2, Grubość 25-30 mm, Bezwładność niska (30-60 min)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp-porownanie",
    "name": "Interaktywny Komparator Systemów Podłogowych",
    "description": "Cyfrowe narzędzie pozwalające inwestorom na wizualne i techniczne porównanie wagi, grubości i bezwładności wylewki mokrej względem lekkiej suchej zabudowy.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-comp-wrap" id="komparator-app">
    
    <div class="rk-comp-header">
        <h2>Porównanie parametrów systemów w domu pasywnym</h2>
        <p class="rk-comp-text">
            Zrozumienie różnic fizycznych między <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">systemem mokrym (wylewka anhydrytowa)</a> a <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemem suchym (lekka zabudowa)</a> jest fundamentem poprawnego zaprojektowania ogrzewania dla domu pasywnego. Poniższy interaktywny komparator obrazuje, jak masa, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> oraz grubość wpływają na parametry pracy instalacji w świetle normy PN-EN 1264.
        </p>
    </div>

    <div class="rk-comp-interactive">
        <h3>Zestawienie Technologiczne</h3>
        
        <!-- Przełącznik -->
        <div class="rk-comp-tabs" id="rk-tabs">
            <div class="rk-comp-tab active" data-system="wet">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                </div>
                System Mokry (Anhydryt)
            </div>
            <div class="rk-comp-tab" data-system="dry">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
                </div>
                System Suchy (Lekki)
            </div>
        </div>

        <div class="rk-comp-dashboard">
            <!-- SVG Wizualizacja Grubości i Wagi -->
            <div class="rk-svg-panel">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Szala Wagi -->
                    <path d="M 100 150 L 100 190 M 60 190 L 140 190" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                    
                    <g class="anim-scale" id="svg-scale">
                        <!-- Podstawa szali -->
                        <path d="M 20 150 L 180 150" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                        
                        <!-- Przekrój posadzki na szali -->
                        <rect x="50" y="80" width="100" height="60" fill="var(--rk-comp-wet)" rx="4" id="svg-floor-layer" class="anim-thickness" />
                        
                        <!-- Rury -->
                        <circle cx="70" cy="120" r="6" fill="#ffffff" />
                        <circle cx="100" cy="120" r="6" fill="#ffffff" />
                        <circle cx="130" cy="120" r="6" fill="#ffffff" />

                        <!-- Etykieta wagi -->
                        <rect x="75" y="40" width="50" height="24" rx="12" fill="#1e293b" />
                        <text x="100" y="56" text-anchor="middle" fill="#ffffff" font-size="12" font-weight="bold" id="svg-weight-text">120 kg</text>
                        <!-- Linia wskazująca -->
                        <line x1="100" y1="64" x2="100" y2="80" stroke="#1e293b" stroke-width="2" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych (Zastępują Tabelę) -->
            <div class="rk-comp-grid">
                <div class="rk-param-card">
                    <h4>Przewodność cieplna (λ)</h4>
                    <div class="rk-param-val" id="val-lambda" style="color: var(--rk-comp-wet);">1,8 W/(m·K)</div>
                    <div class="rk-param-norm">PN-EN 1264-4</div>
                </div>
                <div class="rk-param-card">
                    <h4>Wysokość zabudowy</h4>
                    <div class="rk-param-val" id="val-height">55–65 mm</div>
                    <div class="rk-param-norm">Dane producenta</div>
                </div>
                <div class="rk-param-card">
                    <h4>Bezwładność cieplna</h4>
                    <div class="rk-param-val" id="val-inertia">Wysoka (3-5 h)</div>
                    <div class="rk-param-norm">Badania ITB</div>
                </div>
                <div class="rk-param-card">
                    <h4>Waga systemu</h4>
                    <div class="rk-param-val" id="val-weight">~100–120 kg/m²</div>
                    <div class="rk-param-norm">Obciążenia stropu</div>
                </div>
                <div class="rk-param-card" style="grid-column: 1 / -1;">
                    <h4>Max. Temp. Zasilania</h4>
                    <div class="rk-param-val" id="val-temp" style="color: #ef4444;">55°C (niezalecana)</div>
                    <div class="rk-param-norm">PN-EN 1264</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    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('komparator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano Renderowanie</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Interaktywna tabela porównawcza jest objęta prawami autorskimi serwisu Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Komparatora
    const tabs = document.querySelectorAll('.rk-comp-tab');
    
    // SVG Elements
    const svgLayer = document.getElementById('svg-floor-layer');
    const svgWeight = document.getElementById('svg-weight-text');
    const svgScale = document.getElementById('svg-scale');

    // DOM Cards
    const valLambda = document.getElementById('val-lambda');
    const valHeight = document.getElementById('val-height');
    const valInertia = document.getElementById('val-inertia');
    const valWeight = document.getElementById('val-weight');
    const valTemp = document.getElementById('val-temp');

    function updateCard(element, htmlContent, color = 'var(--rk-comp-dark)') {
        element.style.opacity = '0';
        setTimeout(() => {
            element.innerHTML = htmlContent;
            element.style.color = color;
            element.style.opacity = '1';
        }, 150);
    }

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

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

            if (system === 'wet') {
                // SVG Update (Ciężki/Mokry)
                svgLayer.setAttribute('height', '60');
                svgLayer.setAttribute('y', '80');
                svgLayer.setAttribute('fill', 'var(--rk-comp-wet)');
                svgScale.style.transform = 'rotate(5deg) translateY(5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '120 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '1,8 W/(m·K)', 'var(--rk-comp-wet)');
                updateCard(valHeight, '55–65 mm');
                updateCard(valInertia, 'Wysoka (3-5 h)');
                updateCard(valWeight, '~100–120 kg/m²');
                updateCard(valTemp, '55°C (niezalecana)', '#ef4444');
                
            } else {
                // SVG Update (Lekki/Suchy)
                svgLayer.setAttribute('height', '30');
                svgLayer.setAttribute('y', '110'); // Obniżamy żeby rury były w środku
                svgLayer.setAttribute('fill', 'var(--rk-comp-dry)');
                svgScale.style.transform = 'rotate(-5deg) translateY(-5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '30 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '0,4–0,5 W/(m·K)', 'var(--rk-comp-dry)');
                updateCard(valHeight, '25–30 mm');
                updateCard(valInertia, 'Niska (30-60 min)');
                updateCard(valWeight, '~25–30 kg/m²');
                updateCard(valTemp, '45°C', 'var(--rk-comp-dry)');
            }
        });
    });

    // Inicjalizacja wizualna szali
    setTimeout(() => {
        svgScale.style.transform = 'rotate(5deg) translateY(5px)';
    }, 100);
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-brand: #0284c7;
    --rk-algo-brand-light: #e0f2fe;
    --rk-algo-accent: #0ea5e9;
    --rk-algo-blueprint: #1e293b; /* Tło projektu inżynierskiego */
    --rk-algo-line: #38bdf8; /* Kreska na projekcie */
    --rk-algo-text: #475569;
    --rk-algo-border: #cbd5e1;
    --rk-algo-bg: #ffffff;
}

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

/* Część Tekstowa - Algorytm */
.rk-algo-content {
    padding: 45px 50px 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-algo-border);
}

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

.rk-algo-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-algo-text);
    margin: 0 0 25px 0;
}

.rk-algo-desc a {
    color: var(--rk-algo-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-algo-desc a:hover {
    background: var(--rk-algo-brand-light);
    border-color: var(--rk-algo-brand);
}

/* Stylizowane kroki algorytmu */
.rk-algo-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 16px 20px;
    position: relative;
    padding-left: 55px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-step-card:hover {
    transform: translateY(-2px);
    border-color: var(--rk-algo-accent);
}

.rk-step-num {
    position: absolute;
    left: 15px;
    top: 15px;
    width: 28px;
    height: 28px;
    background: var(--rk-algo-brand-light);
    color: var(--rk-algo-brand);
    font-weight: 900;
    font-size: 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-step-card h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    color: var(--rk-algo-dark);
    font-weight: 800;
}

.rk-step-card p {
    margin: 0;
    font-size: 12.5px;
    color: var(--rk-algo-text);
    line-height: 1.5;
}

.rk-math {
    display: inline-block;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 600;
    color: var(--rk-algo-dark);
    border: 1px solid #e2e8f0;
}

/* Sekcja Interaktywna - Blueprint */
.rk-algo-interactive {
    padding: 0;
    display: grid;
    grid-template-columns: 320px 1fr;
}

/* Panel Kontrolny */
.rk-controls-panel {
    background: #f8fafc;
    padding: 35px 30px;
    border-right: 1px solid var(--rk-algo-border);
}

.rk-controls-panel h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

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

.rk-control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-algo-text);
    text-transform: uppercase;
}

.rk-control-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-algo-brand);
}

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

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

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

/* Wyniki Obliczeń w panelu */
.rk-result-box {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 15px;
    margin-top: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.rk-result-item:last-child { margin-bottom: 0; padding-top: 10px; border-top: 1px dashed var(--rk-algo-border); }

.rk-result-title { font-size: 12px; color: var(--rk-algo-text); font-weight: 700; }
.rk-result-val { font-size: 18px; font-weight: 900; color: var(--rk-algo-dark); }
.rk-result-val.highlight { color: var(--rk-algo-brand); font-size: 22px; }

/* SVG Blueprint */
.rk-blueprint-panel {
    background: var(--rk-algo-blueprint);
    position: relative;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: 
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

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

@keyframes drawPipe {
    to { stroke-dashoffset: 0; }
}

.blueprint-text {
    fill: #94a3b8;
    font-family: monospace;
    font-size: 10px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-algo-content { padding: 30px 25px; }
    .rk-algo-steps { grid-template-columns: 1fr; }
    .rk-algo-interactive { grid-template-columns: 1fr; }
    .rk-controls-panel { border-right: none; border-bottom: 1px solid var(--rk-algo-border); }
    .rk-blueprint-panel { padding: 40px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Kalkulator algorytmu doboru rozstawu rur w domu pasywnym",
    "description": "Profesjonalny 6-etapowy algorytm obliczania gęstości strumienia cieplnego (q) i doboru rozstawu rur podłogowych na podstawie normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-algorytm",
    "name": "Zmienne Obliczeniowe Algorytmu Doboru Rozstawu Rur",
    "description": "Zestawienie zmiennych fizycznych wykorzystywanych w procesie projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne W",
      "gęstość strumienia cieplnego q",
      "temperatura zasilania T_z",
      "rozstaw rur dobór",
      "algorytm projektowania ogrzewania"
    ],
    "measurementTechnique": "Algorytm oparty o wzór Q = q * F_g oraz wytyczne strumienia z normy PN-EN 1264 z zachowaniem optymalnej różnicy temperatur Delta T = 5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wskazanie standardu izolacji budynku q (W/m2).",
        "Krok 2: Wskazanie powierzchni grzewczej pomieszczenia.",
        "Krok 3: Obliczenie całkowitej mocy projektowej (Q_obl).",
        "Krok 4: Wyznaczenie rozstawu (b) na podstawie gęstości strumienia cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-algorytm",
    "name": "Interaktywny Symulator Projektowy (Blueprint)",
    "description": "Aplikacja webowa symulująca pracę inżyniera. Po wprowadzeniu standardu energetycznego i powierzchni (m2), system wylicza moc (W) i wykreśla układ pętli grzewczych na wirtualnym planie pokoju.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-algo-container" id="algorytm-app">
    
    <div class="rk-algo-content">
        <h2>Kalkulator algorytmu doboru rozstawu rur</h2>
        <p class="rk-algo-desc">
            Aby poprawnie zaprojektować instalację w domu pasywnym, nie możesz opierać się na intuicji. Podążaj za poniższym ścisłym algorytmem, który stosuję w moich projektach, bazując na wytycznych normatywnych oraz <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">charakterystyce zasilania pomp ciepła</a>.
        </p>
        
        <div class="rk-algo-steps">
            <div class="rk-step-card">
                <div class="rk-step-num">1</div>
                <h4>Zapotrzebowanie (q)</h4>
                <p>Wyznacz standard izolacji budynku <span class="rk-math">q [W/m²]</span> na podstawie normy <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">PN-EN 12831</a>. Dla domów pasywnych to zazwyczaj 10-15 W/m².</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">2</div>
                <h4>Obciążenie całkowite (Q_obl)</h4>
                <p>Pomnóż wskaźnik przez powierzchnię grzejną: <span class="rk-math">Q = q · F_g</span>. Wynik podajemy w Watach [W].</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">3</div>
                <h4>Różnica temperatur (Delta T)</h4>
                <p>Przyjmij różnicę między zasilaniem a powrotem. Dla pomp ciepła optymalnie <span class="rk-math">Delta T = 5K</span>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">4</div>
                <h4>Średnia temp. wody (t_m)</h4>
                <p>Oblicz na wzorze: <span class="rk-math">t_m = T_z - (Delta T / 2)</span>, gdzie T_z to temp. zasilania.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">5</div>
                <h4>Weryfikacja strumienia</h4>
                <p>Skorzystaj ze wzoru <span class="rk-math">q = B · a_i · Delta t_ln</span> sprawdzając współczynnik przejmowania ciepła.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">6</div>
                <h4>Dobór rozstawu (b)</h4>
                <p>Na podstawie <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">oporu cieplnego okładziny</a> (np. R = 0,02 dla płytek) i wartości <i>q</i>, dobierz rozstaw rur <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">z katalogu</a>.</p>
            </div>
        </div>
    </div>

    <div class="rk-algo-interactive">
        <!-- Lewy Panel Kontrolny -->
        <div class="rk-controls-panel">
            <h3>Wprowadź dane</h3>
            
            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Standard budynku (q)</span>
                    <span class="rk-control-value"><span id="val-in-q-unit">15</span> W/m²</span>
                </div>
                <input type="range" min="10" max="60" step="1" value="15" class="rk-slider" id="slider-q-unit" aria-label="Wskaźnik zapotrzebowania cieplnego budynku">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Powierzchnia (F_g)</span>
                    <span class="rk-control-value"><span id="val-in-area">20</span> m²</span>
                </div>
                <input type="range" min="10" max="50" step="1" value="20" class="rk-slider" id="slider-area" aria-label="Powierzchnia pomieszczenia">
            </div>

            <div class="rk-result-box">
                <div class="rk-result-item">
                    <span class="rk-result-title">Delta T (złożenie):</span>
                    <span class="rk-result-val">5K</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Całkowita moc (Q_obl):</span>
                    <span class="rk-result-val"><span id="out-q-total">300</span> W</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Sugerowany rozstaw:</span>
                    <span class="rk-result-val highlight" id="out-spacing">co 20 cm</span>
                </div>
            </div>
        </div>

        <!-- Prawy Panel SVG Blueprint -->
        <div class="rk-blueprint-panel">
            <svg class="rk-svg-blueprint" viewBox="0 0 300 300" id="svg-blueprint">
                <!-- Zarys pokoju z wymiarami -->
                <rect x="30" y="30" width="240" height="240" fill="none" stroke="#475569" stroke-width="3"/>
                <text x="150" y="20" class="blueprint-text" text-anchor="middle">WYMIAR: <tspan id="svg-text-area">20</tspan> m2</text>
                
                <!-- Grupa na dynamiczne rysowanie rur -->
                <g id="svg-pipe-layer" fill="none" stroke="var(--rk-algo-line)" stroke-width="4" stroke-linejoin="round" stroke-linecap="round">
                    <!-- Rury wygeneruje JS -->
                </g>

                <!-- Legenda w rogu -->
                <rect x="160" y="230" width="100" height="30" fill="rgba(15,23,42,0.8)" rx="4"/>
                <text x="210" y="249" class="blueprint-text" text-anchor="middle" fill="#38bdf8" font-weight="bold">Q = <tspan id="svg-text-q-total">300</tspan> W</text>
            </svg>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagó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('algorytm-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #38bdf8; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #38bdf8;">[ SYSTEM BLOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        ERROR: Unauthorized Domain Execution.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł "Blueprint Algorithm" jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.<br>Wykonanie skryptów zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Rysowania
    const sliderQUnit = document.getElementById('slider-q-unit');
    const sliderArea = document.getElementById('slider-area');
    
    const valInQUnit = document.getElementById('val-in-q-unit');
    const valInArea = document.getElementById('val-in-area');
    
    const outQTotal = document.getElementById('out-q-total');
    const outSpacing = document.getElementById('out-spacing');
    
    const svgLayer = document.getElementById('svg-pipe-layer');
    const svgTextArea = document.getElementById('svg-text-area');
    const svgTextQTotal = document.getElementById('svg-text-q-total');

    // Funkcja generująca ścieżkę meandrową dla SVG
    // density = ilość pętli w pionie
    function generateMeanderPath(density) {
        const startX = 50;
        const startY = 50;
        const width = 200;
        const height = 200;
        const step = height / density;
        
        let path = `M ${startX} ${startY}`;
        
        for(let i=0; i<density; i++) {
            const currentY = startY + (i * step);
            // Kreska w prawo lub w lewo
            if(i % 2 === 0) {
                path += ` L ${startX + width} ${currentY}`;
                if(i < density -1) path += ` L ${startX + width} ${currentY + step}`;
            } else {
                path += ` L ${startX} ${currentY}`;
                if(i < density -1) path += ` L ${startX} ${currentY + step}`;
            }
        }
        return path;
    }

    function updateBlueprint() {
        const qUnit = parseInt(sliderQUnit.value);
        const area = parseInt(sliderArea.value);
        
        // Aktualizacja inputów DOM
        valInQUnit.textContent = qUnit;
        valInArea.textContent = area;
        svgTextArea.textContent = area;

        // Obliczenie Całkowitej Mocy Q = q * F_g
        const qTotal = qUnit * area;
        outQTotal.textContent = qTotal;
        svgTextQTotal.textContent = qTotal;

        // Logika doboru rozstawu uzależniona od standardu budynku (q)
        let spacingText = "";
        let pipeLines = 5;

        if (qUnit <= 18) {
            spacingText = "co 20 cm";
            pipeLines = 6;
            outSpacing.style.color = "var(--rk-algo-brand)";
        } else if (qUnit > 18 && qUnit <= 35) {
            spacingText = "co 15 cm";
            pipeLines = 10;
            outSpacing.style.color = "#8b5cf6"; // Fiolet
        } else {
            spacingText = "co 10 cm";
            pipeLines = 16;
            outSpacing.style.color = "#ef4444"; // Czerwony - gęsty rozstaw
        }

        outSpacing.textContent = spacingText;

        // Rysowanie animowanej ścieżki SVG z resetem animacji
        const newPath = generateMeanderPath(pipeLines);
        
        // Dodanie stylu inline wewnątrz SVG z wymuszeniem dłuższego dasharray chroni przed urywaniem gęstych ścieżek
        svgLayer.innerHTML = `<path d="${newPath}" stroke-dasharray="6000" stroke-dashoffset="6000" style="animation: drawPipe 2s ease-out forwards;"/>`;
    }

    // Nasłuchiwacze
    sliderQUnit.addEventListener('input', updateBlueprint);
    sliderArea.addEventListener('input', updateBlueprint);

    // Init
    updateBlueprint();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;       /* Kolor awarii */
    --rk-err-red-bg: #fef2f2;
    --rk-err-warn: #f59e0b;      /* Ostrzeżenie / Ciepło */
    --rk-err-cold: #3b82f6;      /* Mostki cieplne */
    --rk-err-border: #cbd5e1;
    --rk-err-text: #475569;
    --rk-err-bg: #ffffff;
    --rk-err-panel: #f8fafc;
}

.rk-err-container {
    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(239, 68, 68, 0.15);
    border: 1px solid #fca5a5;
    overflow: hidden;
}

/* Sekcja Treści */
.rk-err-content {
    padding: 45px 50px 25px;
    background: linear-gradient(135deg, #fef2f2 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-err-border);
}

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

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

.rk-err-desc a {
    color: var(--rk-err-red);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #fecaca;
    transition: all 0.3s;
}

.rk-err-desc a:hover {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
}

/* Interaktywny Skaner Błędów */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
}

/* Menu Błędów (Lewy panel) */
.rk-err-menu {
    background: var(--rk-err-panel);
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
}

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

.rk-err-btn {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    padding: 16px;
    border-radius: 12px;
    margin-bottom: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    box-shadow: 0 4px 6px rgba(239, 68, 68, 0.05);
}

.rk-err-btn.active {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
}

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

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

.rk-err-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
}

/* Prawy Panel - Diagnoza i SEO Tekst */
.rk-err-dashboard {
    padding: 30px;
    display: flex;
    flex-direction: column;
}

.rk-diag-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-err-red);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.rk-diag-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f1f5f9;
}

.rk-diag-tag {
    background: var(--rk-err-red);
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-diag-cost {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

.rk-diag-text {
    font-size: 16px;
    color: var(--rk-err-dark);
    font-weight: 700;
    line-height: 1.6;
    margin: 0 0 20px 0;
}

/* Nowa sekcja pod długi ogon SEO */
.rk-diag-seo-box {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--rk-err-border);
    flex-grow: 1;
}

.rk-diag-subtitle {
    font-size: 13px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-diag-seo-text {
    font-size: 14.5px;
    color: var(--rk-err-text);
    line-height: 1.7;
    margin: 0;
}

.rk-diag-seo-text strong {
    color: var(--rk-err-dark);
}

/* Ochrona przed skokami podczas animacji JS */
.anim-wrapper {
    transition: opacity 0.3s ease;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-content { padding: 30px 25px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 25px; }
    .rk-err-dashboard { padding: 25px; }
    .rk-diag-header { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy-pasywne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Najczęstsze błędy w projektowaniu ogrzewania dla domów pasywnych",
    "description": "Zestawienie 6 kosztownych błędów w instalacjach płaszczyznowych: przewymiarowanie pomp ciepła, brak projektów hydraulicznych, mostki termiczne, błędna krzywa grzewcza, zła izolacja na gruncie i niewłaściwe panele.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Szczegółowa Analiza 6 Krytycznych Błędów Projektowych",
    "description": "Baza danych analizująca skutki finansowe i termodynamiczne w przypadku odstępstw od normy projektowej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak uniknąć taktowania pompy ciepła",
      "przewymiarowanie ogrzewania podłogowego skutki",
      "brak projektu podłogówki konsekwencje",
      "jak poprawnie wykonać izolację brzegową dylatację",
      "za wysoka temperatura na piecu do podłogówki",
      "ile styropianu pod ogrzewanie podłogowe na gruncie",
      "jakie panele na ogrzewanie podłogowe w domu pasywnym"
    ],
    "measurementTechnique": "Analiza awaryjności systemów hydraulicznych (szumy, taktowanie sprężarki) oraz termowizyjna detekcja strat ciepła na dylatacjach brzegowych i posadzkach na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Pompa 8 kW zamiast 3 kW. Skutek: Taktowanie i zniszczenie sprężarki.",
        "Błąd 2: Układanie rur co 10 cm na oko. Skutek: Brak możliwości rotametrowania i szumy w instalacji.",
        "Błąd 3: Brak dylatacji brzegowej. Skutek: Liniowe mostki termiczne i utrata 15-20% energii.",
        "Błąd 4: Krzywa grzewcza 35-40°C. Skutek: Ekstremalne przegrzewanie i dyskomfort termiczny.",
        "Błąd 5: Zbyt cienki styropian na gruncie (np. 10 cm). Skutek: Ucieczka energii do gruntu.",
        "Błąd 6: Panele o wysokim oporze cieplnym. Skutek: Blokada termiczna i konieczność podnoszenia zasilania pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-bledy",
    "name": "Wizualizator Awarii i Błędów (Karta Diagnostyczna)",
    "description": "Interaktywna aplikacja diagnostyczna szczegółowo analizująca skutki 6 najczęstszych błędów instalacyjnych w domach pasywnych wraz z zaleceniami optymalizacyjnymi długiego ogona.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-err-container" id="error-scanner-app">
    
    <div class="rk-err-content">
        <h2>Najczęstsze błędy w projektowaniu dla domów pasywnych</h2>
        <p class="rk-err-desc">
            Błędy w standardzie pasywnym są bezlitośnie kosztowne, ponieważ tak zaizolowany budynek nie "wybacza" nadmiaru energii. Od <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">braku dokumentacji technicznej</a> po zły dobór mocy źródła ciepła – poznaj sześć pułapek, które mogą zrujnować Twoją inwestycję i komfort życia.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <!-- Panel Wyboru Błędów -->
        <div class="rk-err-menu">
            <h3>Skaner Diagnostyczny</h3>
            
            <button class="rk-err-btn active" data-err="1">
                <div class="rk-err-num">1</div>
                <div class="rk-err-title">Przewymiarowanie pompy ciepła</div>
            </button>
            
            <button class="rk-err-btn" data-err="2">
                <div class="rk-err-num">2</div>
                <div class="rk-err-title">Brak projektu hydraulicznego</div>
            </button>
            
            <button class="rk-err-btn" data-err="3">
                <div class="rk-err-num">3</div>
                <div class="rk-err-title">Niewłaściwa izolacja krawędziowa</div>
            </button>
            
            <button class="rk-err-btn" data-err="4">
                <div class="rk-err-num">4</div>
                <div class="rk-err-title">Zbyt wysoka temperatura zasilania</div>
            </button>

            <!-- Nowe buttony (Długi Ogon SEO) -->
            <button class="rk-err-btn" data-err="5">
                <div class="rk-err-num">5</div>
                <div class="rk-err-title">Zbyt cienka izolacja na gruncie</div>
            </button>

            <button class="rk-err-btn" data-err="6">
                <div class="rk-err-num">6</div>
                <div class="rk-err-title">Niewłaściwy dobór okładziny podłogowej</div>
            </button>
        </div>

        <!-- Prawy Panel - Zoptymalizowany pod Tekst / SEO -->
        <div class="rk-err-dashboard">
            <div class="rk-diag-card">
                <div class="anim-wrapper" id="diag-wrapper">
                    <div class="rk-diag-header">
                        <div class="rk-diag-tag" id="diag-tag">ZAGROŻENIE AWARIĄ</div>
                        <div class="rk-diag-cost" id="diag-cost">Straty: 15 000 PLN+</div>
                    </div>
                    
                    <p class="rk-diag-text" id="diag-text">
                        Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.
                    </p>

                    <div class="rk-diag-seo-box">
                        <h4 class="rk-diag-subtitle">Analiza techniczna i skutki</h4>
                        <p class="rk-diag-seo-text" id="diag-seo-text">
                            Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagó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('error-scanner-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Skanera Błędów Instalacyjnych należy do Projekt-Ogrzewania.pl.<br>Kopiowanie i wykorzystywanie bez zgody jest zabronione.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Baza danych błędów z tekstami pod długi ogon (SEO)
    const errorData = {
        "1": {
            tag: "ZAGROŻENIE AWARIĄ",
            cost: "Koszty: 15 000 PLN+",
            text: "Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.",
            seoText: "Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd."
        },
        "2": {
            tag: "BŁĄD HYDRAULICZNY",
            cost: "Szumy i dyskomfort",
            text: "Brak projektu sprawia, że instalatorzy kładą rury \"na oko\" (najczęściej co 10 cm wszędzie). Skutkuje to ogromnymi oporami i brakiem możliwości regulacji na rozdzielaczu.",
            seoText: "Jakie są główne <strong>konsekwencje braku projektu ogrzewania podłogowego</strong>? Inwestorzy często pytają, <strong>dlaczego podłogówka szumi</strong>. Wynika to z faktu, że zbyt gęsty rozstaw rur co 10 cm w małych pomieszczeniach wymusza stosowanie dławienia, a to zaburza hydraulikę całego układu. Brak projektu uniemożliwia wyliczenie oporów, przez co nie wiesz, <strong>jak zrównoważyć przepływy na rotametrach</strong>. Efektem jest przegrzana sypialnia i niedogrzana łazienka."
        },
        "3": {
            tag: "MOSTKI TERMICZNE",
            cost: "Straty energii: 15-20%",
            text: "Brak lub złe wykonanie izolacji brzegowej przy ścianach zewnętrznych w domu pasywnym generuje potężne liniowe mostki termiczne.",
            seoText: "Brak wiedzy o tym, <strong>jak poprawnie wykonać dylatację brzegową</strong> podłogówki, to prosta droga do wyrzucania pieniędzy w błoto. Płyta grzewcza musi pracować pracować swobodnie. Zbyt cienka <strong>pianka brzegowa do podłogówki</strong> sprawia, że wylewka dotyka muru, co tworzy <strong>mostki termiczne przy ścianach zewnętrznych</strong>. Ciepło z posadzki ucieka wprost w fundamenty, drastycznie podnosząc straty energetyczne budynku i niwecząc cały nakład pracy na ocieplenie pasywne."
        },
        "4": {
            tag: "KRYTYCZNE PRZEGRZEWANIE",
            cost: "Dyskomfort termiczny",
            text: "Ustawienie krzywej grzewczej na poziomie typowym dla budynków starszych (np. 35-40°C) powoduje, że podłoga staje się gorąca i nieprzyjemna.",
            seoText: "W budownictwie energooszczędnym <strong>za wysoka temperatura zasilania podłogówki</strong> daje natychmiastowe objawy – podłoga wręcz parzy, a powietrze staje się przesuszone. Kluczowe jest pytanie, <strong>jaka krzywa grzewcza do domu pasywnego</strong> jest odpowiednia? Prawidłowo zaprojektowany system powinien pracować na parametrach nie wyższych niż 28-32°C. Jeśli ignorujemy te wartości, <strong>przegrzewanie pomieszczeń z pompą ciepła</strong> staje się codziennością, a nasza instalacja działa ze zrujnowanym współczynnikiem wydajności COP."
        },
        "5": {
            tag: "STRATY DO GRUNTU",
            cost: "Ciągła ucieczka energii",
            text: "Zastosowanie standardowych 10-15 cm styropianu pod wylewką na gruncie w domu pasywnym powoduje stałą ucieczkę ciepła w dół, zamiast do wnętrza budynku.",
            seoText: "Błędem o nieodwracalnych skutkach na etapie stanu surowego jest ignorowanie tego, <strong>ile styropianu pod ogrzewanie podłogowe na gruncie</strong> należy ułożyć w standardzie energooszczędnym. W domach pasywnych absolutnym minimum jest 20-25 cm izolacji o bardzo niskim współczynniku przewodzenia ciepła. Zbyt cienki <strong>styropian podłogowy EPS 100 lub EPS 200</strong> sprawia, że pompa ciepła zamiast w pełni ogrzewać salon, bezproduktywnie ogrzewa fundamenty i ziemię pod budynkiem. To bezpośrednio przekłada się na wyższe <strong>koszty ogrzewania pompą ciepła zimą</strong>."
        },
        "6": {
            tag: "BLOKADA TERMICZNA",
            cost: "Spadek wydajności układu",
            text: "Położenie grubych paneli z podkładem o wysokim oporze cieplnym w domu pasywnym sprawia, że przy zasilaniu rzędu 30°C ciepło nie przebije się efektywnie do pomieszczenia.",
            seoText: "Wybierając materiały wykończeniowe do salonu czy sypialni, inwestorzy często pytają, <strong>jakie panele na ogrzewanie podłogowe w domu pasywnym</strong> będą najlepsze. Zastosowanie okładziny o łącznym oporze cieplnym powyżej 0,15 (m²·K)/W drastycznie obniża efektywność całego systemu hydraulicznego. Aby zachować niską temperaturę zasilania pompy ciepła (co warunkuje jej najwyższy wskaźnik COP), należy wybierać <strong>panele winylowe SPC na podłogówkę</strong> lub klasyczne płytki ceramiczne. Zbyt gruby, gąbczasty <strong>podkład pod panele na ogrzewanie podłogowe</strong> zadziała jak niechciany izolator, zmuszając pompę do nieekonomicznej pracy na wyższych parametrach i zwiększając zużycie prądu."
        }
    };

    // 3. Logika zmiany treści
    const btns = document.querySelectorAll('.rk-err-btn');
    const diagWrapper = document.getElementById('diag-wrapper');
    const diagTag = document.getElementById('diag-tag');
    const diagCost = document.getElementById('diag-cost');
    const diagText = document.getElementById('diag-text');
    const diagSeoText = document.getElementById('diag-seo-text');

    function updateDashboard(errId) {
        // Płynne zniknięcie sekcji
        diagWrapper.style.opacity = '0';

        setTimeout(() => {
            // Podmiana danych
            const data = errorData[errId];
            diagTag.textContent = data.tag;
            diagCost.textContent = data.cost;
            diagText.innerHTML = data.text;
            diagSeoText.innerHTML = data.seoText;

            // Pojawienie się tekstu
            diagWrapper.style.opacity = '1';
        }, 200);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Unikaj przeładowania, jeśli kliknięto w ten sam przycisk
            if(this.classList.contains('active')) return;

            // Zmiana stanu przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja
            const errId = this.getAttribute('data-err');
            updateDashboard(errId);
        });
    });
});
</script>



<style>
:root {
    --rk-imp-dark: #0f172a;
    --rk-imp-brand: #0284c7;
    --rk-imp-brand-light: #f0f9ff;
    --rk-imp-accent: #38bdf8;
    --rk-imp-warn: #f59e0b;
    --rk-imp-eco: #10b981;
    --rk-imp-red: #ef4444;
    --rk-imp-border: #e2e8f0;
    --rk-imp-text: #475569;
    --rk-imp-bg: #ffffff;
}

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

/* Część Tekstowa / SEO */
.rk-imp-content {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-imp-border);
}

.rk-imp-content h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-imp-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.rk-imp-desc strong {
    color: var(--rk-imp-dark);
}

.rk-imp-desc a {
    color: var(--rk-imp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bae6fd;
    transition: all 0.3s;
}

.rk-imp-desc a:hover {
    background: var(--rk-imp-brand-light);
    box-shadow: inset 0 -10px 0 #bae6fd;
}

.rk-imp-grid-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-top: 30px;
}

.rk-imp-box {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-imp-box h4 {
    margin: 0 0 10px 0;
    color: var(--rk-imp-brand);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

/* Interaktywny Symulator */
.rk-imp-interactive {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 40px;
    background: #ffffff;
}

/* Panel Kontrolny */
.rk-imp-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-imp-controls h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-ctrl-group {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 16px;
}

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

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-imp-text);
}

.rk-ctrl-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-warn);
}

/* Suwaki i Toggla */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-imp-warn);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: transform 0.1s;
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.1); }

/* Switch Toggle */
.rk-switch-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.rk-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: #cbd5e1;
    border-radius: 30px;
    cursor: pointer;
    transition: background 0.3s;
}
.rk-switch.active { background: var(--rk-imp-warn); }
.rk-switch-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.rk-switch.active .rk-switch-knob { transform: translateX(26px); }

/* Dashboard SVG + Wyniki */
.rk-imp-dashboard {
    display: flex;
    gap: 30px;
}

.rk-svg-room {
    flex: 1;
    background: #f1f5f9;
    border-radius: 16px;
    border: 1px dashed var(--rk-imp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.rk-svg-rotameter {
    width: 100px;
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-rota-title {
    font-size: 10px;
    font-weight: 800;
    color: var(--rk-imp-text);
    text-transform: uppercase;
    margin-bottom: 10px;
    text-align: center;
}

/* Animacje SVG */
.anim-person { transition: opacity 0.3s ease; }
.anim-tv { transition: fill 0.3s ease, filter 0.3s ease; }
.anim-heat-glow { transition: opacity 0.3s ease, r 0.3s ease; }
.anim-float { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Kafelki Wynikowe */
.rk-result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    padding: 15px;
    border-radius: 12px;
}
.rk-metric-card.highlight {
    border-color: var(--rk-imp-eco);
    background: #ecfdf5;
}

.rk-metric-card h5 { margin: 0 0 5px 0; font-size: 11px; color: var(--rk-imp-text); text-transform: uppercase; }
.rk-metric-card .val { font-size: 22px; font-weight: 900; color: var(--rk-imp-dark); }
.rk-metric-card.highlight .val { color: var(--rk-imp-eco); }

/* Mocne CTA */
.rk-imp-cta-box {
    background: var(--rk-imp-dark);
    padding: 45px 50px;
    text-align: center;
}

.rk-imp-cta-box h3 {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-imp-cta-box p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0 auto 30px;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-imp-brand);
    color: #ffffff !important;
    padding: 18px 36px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.5);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.6);
    border-color: #7dd3fc;
}

@media (max-width: 768px) {
    .rk-imp-content, .rk-imp-interactive, .rk-imp-cta-box { padding: 30px 25px; }
    .rk-imp-grid-text { grid-template-columns: 1fr; }
    .rk-imp-interactive { grid-template-columns: 1fr; gap: 30px; }
    .rk-imp-dashboard { flex-direction: column; }
    .rk-svg-rotameter { width: 100%; flex-direction: row; justify-content: space-around; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak dom pasywny wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dlaczego wskaźniki W/m2 'z sufitu' niszczą instalację. Analiza zysków bytowych, precyzyjnych przepływomierzy i doboru energooszczędnej pompy obiegowej.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-wplyw",
    "name": "Zestawienie Zysków Bytowych i Oporów Hydraulicznych",
    "description": "Baza danych określająca wpływ aktywności domowników na realne obciążenie cieplne oraz wymagany przepływ czynnika grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na ciepło dla każdego pomieszczenia",
      "zyski ciepła od nasłonecznienia dom pasywny",
      "precyzyjne przepływomierze podłogówki",
      "kalkulator doboru pompy obiegowej",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Dynamiczna estymacja spadku zapotrzebowania grzewczego (W) w oparciu o sumowanie zysków od ludzi (100W/osoba) i elektroniki domowej, redukująca wymagany przepływ na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC: W domu pasywnym 3 osoby i telewizor generują ~500W, pokrywając do 50% zapotrzebowania.",
        "Hydraulika: Niskie zapotrzebowanie wymusza rotametry o małym zakresie 0,5–2,5 l/min.",
        "Pompa obiegowa: Konieczność precyzyjnego doboru, aby zużycie prądu P < 20-30 W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-wplyw",
    "name": "Symulator Bilansu Pasywnego i Hydrauliki",
    "description": "Interaktywne narzędzie wizualizujące, jak zyski ciepła od ludzi i elektroniki automatycznie dławią potrzebę grzewczą podłogi i obniżają przepływ wskaźnika na rotametrze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-imp-container" id="impact-simulator-app">
    
    <div class="rk-imp-content">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-imp-desc">
            Projektowanie dla domu pasywnego wymusza całkowitą zmianę podejścia do OZC. Nie można posługiwać się wskaźnikami W/m² wyciągniętymi "z sufitu". Projektant musi otrzymać <strong>wyniki obliczeń <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowania na ciepło dla każdego pomieszczenia</a> z osobna</strong>. W przeciwnym razie system będzie skazany na porażkę.
        </p>

        <div class="rk-imp-grid-text">
            <div class="rk-imp-box">
                <h4>Zyski Bytowe w OZC</h4>
                <p>W <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">obliczeniach OZC</a> musimy uwzględniać zyski od nasłonecznienia i urządzeń. W domu pasywnym 3 osoby i włączony telewizor to już ~500 W darmowej mocy grzewczej, co może pokryć nawet 50% zapotrzebowania w danym momencie!</p>
            </div>
            <div class="rk-imp-box">
                <h4>Precyzja Hydrauliczna</h4>
                <p>Niska moc to mały przepływ. Projektant musi wyliczyć opory tak, aby stosować <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">precyzyjne przepływomierze podłogówki</a> (zakres 0,5–2,5 l/min). Niezbędny jest też ścisły <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>, by jej pobór prądu nie przekraczał 20-30 W.</p>
            </div>
        </div>
    </div>

    <div class="rk-imp-interactive">
        
        <!-- Panel Kontrolny -->
        <div class="rk-imp-controls">
            <h3>Symuluj Zyski Pasywne</h3>
            
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Liczba osób w salonie</span>
                    <span class="rk-ctrl-val"><span id="val-people">0</span></span>
                </div>
                <input type="range" min="0" max="4" step="1" value="0" class="rk-slider" id="slider-people">
                <div style="font-size:11px; color:#94a3b8; margin-top:8px;">1 osoba = ~100W zysku</div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Telewizor / Elektronika</span>
                    <span class="rk-ctrl-val" id="val-tv-text" style="color:#94a3b8;">Wyłączone</span>
                </div>
                <div class="rk-switch-wrap">
                    <span style="font-size:12px; color:#64748b;">(~200W zysku)</span>
                    <div class="rk-switch" id="toggle-tv">
                        <div class="rk-switch-knob"></div>
                    </div>
                </div>
            </div>

            <div class="rk-result-metrics">
                <div class="rk-metric-card highlight">
                    <h5>Darmowe Zyski</h5>
                    <div class="val">+<span id="out-gains">0</span> W</div>
                </div>
                <div class="rk-metric-card">
                    <h5>Wymagana Moc Posadzki</h5>
                    <div class="val"><span id="out-power">1000</span> W</div>
                </div>
            </div>
        </div>

        <!-- Dashboard SVG -->
        <div class="rk-imp-dashboard">
            <!-- Pokój SVG -->
            <div class="rk-svg-room">
                <svg viewBox="0 0 200 200" style="width:100%; height:auto;">
                    <!-- Pokój -->
                    <rect x="10" y="10" width="180" height="180" fill="none" stroke="#cbd5e1" stroke-width="4" rx="8"/>
                    <!-- Łuna ciepła -->
                    <circle cx="100" cy="100" r="0" fill="rgba(245, 158, 11, 0.15)" id="svg-heat-glow" class="anim-heat-glow"/>
                    
                    <!-- Telewizor -->
                    <rect x="70" y="20" width="60" height="10" fill="#475569" rx="2"/>
                    <rect x="60" y="30" width="80" height="40" fill="#94a3b8" rx="4" id="svg-tv" class="anim-tv"/>
                    
                    <!-- Ludziki (4 sztuki ukryte domyślnie) -->
                    <g fill="#475569" id="person-1" class="anim-person" opacity="0">
                        <circle cx="50" cy="130" r="10"/>
                        <rect x="40" y="145" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-2" class="anim-person" opacity="0">
                        <circle cx="85" cy="140" r="10"/>
                        <rect x="75" y="155" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-3" class="anim-person" opacity="0">
                        <circle cx="120" cy="135" r="10"/>
                        <rect x="110" y="150" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-4" class="anim-person" opacity="0">
                        <circle cx="155" cy="145" r="10"/>
                        <rect x="145" y="160" width="20" height="30" rx="4"/>
                    </g>
                </svg>
            </div>

            <!-- Rotametr SVG -->
            <div class="rk-svg-rotameter">
                <div class="rk-rota-title">Rotametr<br>(Przepływ)</div>
                <svg viewBox="0 0 60 160" style="height:140px;">
                    <!-- Rurka -->
                    <path d="M 20 20 L 40 20 L 35 140 L 25 140 Z" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                    <!-- Skala -->
                    <line x1="15" y1="30" x2="20" y2="30" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="60" x2="20" y2="60" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="90" x2="20" y2="90" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="120" x2="20" y2="120" stroke="#64748b" stroke-width="1.5"/>
                    <text x="5" y="34" font-size="10" fill="#64748b">2.5</text>
                    <text x="5" y="124" font-size="10" fill="#64748b">0.5</text>
                    
                    <!-- Pływak -->
                    <g id="svg-float" class="anim-float" transform="translate(0, 0)">
                        <polygon points="22,30 38,30 35,40 25,40" fill="#ef4444"/>
                    </g>
                </svg>
                <div style="font-size:14px; font-weight:900; color:var(--rk-imp-dark); margin-top:10px;">
                    <span id="out-flow">2.5</span> <span style="font-size:10px;">l/min</span>
                </div>
            </div>
        </div>
    </div>

    <!-- MOCNE CTA -->
    <div class="rk-imp-cta-box">
        <h3>Nie zgaduj. Powierz OZC inżynierom.</h3>
        <p>
            Błędy w obliczeniach zapotrzebowania i hydrauliki kosztują dziesiątki tysięcy złotych po wylaniu posadzki. Wybierz rozwiązanie, które gwarantuje bezpieczeństwo i najwyższy współczynnik COP dla Twojej pompy ciepła.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            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"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    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('impact-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Symulatora Bilansu należy do Projekt-Ogrzewania.pl. Wykonanie przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const sliderPeople = document.getElementById('slider-people');
    const toggleTv = document.getElementById('toggle-tv');
    
    // UI Values
    const valPeople = document.getElementById('val-people');
    const valTvText = document.getElementById('val-tv-text');
    const outGains = document.getElementById('out-gains');
    const outPower = document.getElementById('out-power');
    const outFlow = document.getElementById('out-flow');
    
    // SVG Elements
    const svgTv = document.getElementById('svg-tv');
    const svgHeatGlow = document.getElementById('svg-heat-glow');
    const svgFloat = document.getElementById('svg-float');
    const persons = [
        document.getElementById('person-1'),
        document.getElementById('person-2'),
        document.getElementById('person-3'),
        document.getElementById('person-4')
    ];

    let isTvOn = false;
    const basePower = 1000; // Bazowe zapotrzebowanie salonu W
    const maxFlow = 2.5; // Max l/min
    const minFlow = 0.5; // Min l/min

    function updateSimulation() {
        const peopleCount = parseInt(sliderPeople.value);
        valPeople.textContent = peopleCount;

        // Obliczanie zysków
        const peopleGain = peopleCount * 100; // 100W na osobę
        const tvGain = isTvOn ? 200 : 0; // 200W z TV
        const totalGain = peopleGain + tvGain;

        // Zapotrzebowanie (nie mniej niż 0)
        let reqPower = basePower - totalGain;
        if (reqPower < 0) reqPower = 0;

        outGains.textContent = totalGain;
        outPower.textContent = reqPower;

        // Obliczanie Przepływu (Liniowa interpolacja)
        // Jeśli reqPower = 1000 -> 2.5 l/min
        // Jeśli reqPower = 0 -> 0.0 l/min (ale dla rotametru min to 0.5)
        let flow = (reqPower / basePower) * maxFlow;
        if (flow < minFlow) flow = minFlow;
        outFlow.textContent = flow.toFixed(1);

        // --- Aktualizacja SVG ---
        
        // 1. Ludzie (pojawiają się)
        persons.forEach((p, index) => {
            p.style.opacity = index < peopleCount ? '1' : '0';
            p.style.fill = index < peopleCount ? 'var(--rk-imp-warn)' : '#475569';
        });

        // 2. TV
        if (isTvOn) {
            svgTv.style.fill = '#fde047'; // Jasny ekran
            svgTv.style.filter = 'drop-shadow(0 0 10px rgba(253, 224, 71, 0.8))';
            valTvText.textContent = "Włączone";
            valTvText.style.color = "var(--rk-imp-warn)";
        } else {
            svgTv.style.fill = '#94a3b8'; // Zgaszony
            svgTv.style.filter = 'none';
            valTvText.textContent = "Wyłączone";
            valTvText.style.color = "#94a3b8";
        }

        // 3. Łuna ciepła
        // R zależy od totalGain (max 600W)
        const glowRadius = (totalGain / 600) * 100;
        svgHeatGlow.setAttribute('r', glowRadius);
        svgHeatGlow.style.opacity = glowRadius > 0 ? '1' : '0';

        // 4. Rotametr (Pływak)
        // translateY: 0 to góra (2.5 l/min), 90 to dół (0.5 l/min)
        // Odwrócona proporcja
        const flowPercent = (flow - minFlow) / (maxFlow - minFlow); // 1.0 = max, 0.0 = min
        const floatY = (1 - flowPercent) * 90; // max Y = 90
        svgFloat.style.transform = `translateY(${floatY}px)`;
    }

    // Nasłuchiwacze
    sliderPeople.addEventListener('input', updateSimulation);
    
    toggleTv.addEventListener('click', () => {
        isTvOn = !isTvOn;
        toggleTv.classList.toggle('active', isTvOn);
        updateSimulation();
    });

    // Init
    updateSimulation();
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-passive: #10b981;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

.rk-expert-wrapper {
    max-width: 950px;
    margin: 50px auto 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.rk-expert-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-expert-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 12s linear infinite;
}

@keyframes spinRing {
    100% { transform: rotate(360deg); }
}

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.rk-expert-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-quote-accent-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.rk-expert-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

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

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

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

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

.rk-expert-btn.active svg {
    transform: rotate(180deg);
}

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: 100px 1fr 1fr 1fr;
    gap: 15px;
    align-items: center;
}

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

.rk-data-svg-box {
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-data-svg {
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 4px 6px rgba(16, 185, 129, 0.2));
}

.anim-pulse-target {
    transform-origin: center;
    animation: targetPulse 2s infinite alternate ease-in-out;
}

@keyframes targetPulse {
    0% { transform: scale(0.9); opacity: 0.8; stroke: var(--rk-quote-accent); }
    100% { transform: scale(1.1); opacity: 1; stroke: var(--rk-quote-passive); }
}

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    border: 1px solid transparent;
    transition: border-color 0.3s;
}

.rk-data-stat:hover {
    border-color: var(--rk-quote-accent-light);
}

.rk-data-val {
    display: block;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header h2 { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
    .rk-data-svg-box { display: none; /* Hide icon on small mobile to save space */ }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Ekspercki punkt widzenia: Precyzja w standardzie pasywnym",
    "description": "Opinia inżyniera HVAC na temat konsekwencji braku rzetelnych obliczeń OZC i projektowania instalacji ogrzewania podłogowego na oko w budownictwie pasywnym.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur 'na oko' to absolutna gwarancja przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Jeśli opierasz się na zgadywaniu, zamiast zamówić rzetelny projekt, niszczysz cały sens finansowy energooszczędnej inwestycji.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-cytat",
    "name": "Krytyczne parametry projektowe dla podłogówki pasywnej",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do zachowania stabilności termicznej w budownictwie o ekstremalnie niskim zapotrzebowaniu na energię.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie cieplne domu pasywnego W/m2",
      "skutki braku projektu ogrzewania podłogowego",
      "projekt z obliczeniami OZC a projekt z głowy",
      "taktowanie pompy ciepła w nowym domu",
      "optymalny rozstaw rur 15-20 cm"
    ],
    "measurementTechnique": "Określenie krytycznych limitów mocy i przepływu zapobiegających przegrzewaniu izolowanych brył budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie (q): Poniżej 15 W/m2",
        "Rozstaw rur bazowy: Od 15 cm do 20 cm",
        "Temperatura zasilania: Maksymalnie 28 - 32°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-cytat",
    "name": "Interaktywny Panel Ekspercki: Parametry Pasywne",
    "description": "Interfejs rozwijany przez użytkownika wyświetlający twarde dane liczbowe wynikające z norm i obliczeń OZC przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <h3>Ekspercki punkt widzenia</h3>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski, Inżynier HVAC" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Ostrzeżenie przed "Instalatorską Intuicją"
            </span>
            <p class="rk-expert-text">
                "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur w gęstym rozstawie to absolutna gwarancja nieznośnego przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">ile możesz stracić na błędach robiąc projekt z głowy</a>? Jeśli nie opierasz swojego systemu na <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">rzetelnym projekcie ogrzewania z wyliczeniem OZC</a> do jednego Wata, niszczysz cały finansowy i technologiczny sens energooszczędnej inwestycji."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń parametry krytyczne
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-svg-box">
                        <svg class="rk-data-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                            <circle cx="12" cy="12" r="10" class="anim-pulse-target"></circle>
                            <circle cx="12" cy="12" r="6"></circle>
                            <circle cx="12" cy="12" r="2"></circle>
                        </svg>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-passive);">&lt; 15 W/m²</span>
                        <span class="rk-data-lab">Max. Zapotrzebowanie</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">15 - 20 cm</span>
                        <span class="rk-data-lab">Optymalny Rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">32 °C</span>
                        <span class="rk-data-lab">Krytyczne Zasilanie</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Zapotrzebowanie na moc: Poniżej 15 W/m²</li>
                <li>Optymalny rozstaw rur: Od 15 cm do 20 cm</li>
                <li>Krytyczna maksymalna temperatura zasilania: 32 °C</li>
            </ul>
        </div>
    </noscript>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak nagłówków H-tagów 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-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            // Usuwamy resztę styli z kontenera by nie zepsuć wyglądu komunikatu
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-brand: #0284c7;
    --rk-cs-accent: #38bdf8;
    --rk-cs-passive: #10b981; /* Kolor sukcesu/pasywny */
    --rk-cs-standard: #f59e0b; /* Kolor ostrzegawczy/standard */
    --rk-cs-cold: #3b82f6; /* Zima/Móz */
    --rk-cs-bg: #ffffff;
    --rk-cs-panel: #f8fafc;
    --rk-cs-border: #cbd5e1;
    --rk-cs-text: #475569;
}

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

.rk-cs-wrapper * {
    box-sizing: inherit;
}

/* ================= HEADER I METRYCZKA ================= */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
    padding: 45px 50px 35px;
    position: relative;
}

.rk-cs-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-block;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    color: var(--rk-cs-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
}

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

.rk-cs-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-cs-stat-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 18px 20px;
    border-radius: 14px;
    backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
}

.rk-cs-stat-item span.label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.rk-cs-stat-item span.value {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.rk-cs-body {
    padding: 40px 50px 10px;
    background: #ffffff;
}

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

.rk-cs-story a {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-cs-story a:hover {
    background: #e0f2fe;
    border-color: var(--rk-cs-brand);
}

.rk-cs-author {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    border: 1px solid var(--rk-cs-border);
    padding: 15px 25px;
    border-radius: 100px;
    margin-bottom: 30px;
}

.rk-cs-author img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-cs-author-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.4;
}

.rk-cs-author-info strong {
    color: var(--rk-cs-dark);
    font-weight: 800;
    display: block;
    font-size: 15px;
}

/* ================= SYMULATOR INTERAKTYWNY ================= */
.rk-cs-interactive {
    padding: 0 50px 45px;
}

.rk-sim-box {
    background: var(--rk-cs-panel);
    border: 1px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
}

.rk-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 20px;
}

.rk-sim-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0;
}

/* Toggle App Style */
.rk-toggle-app {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
    width: 300px; /* Sztywna szerokość dla stabilności */
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 15px;
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap; /* Zabezpieczenie przed łamaniem tekstu */
}

.rk-toggle-btn.active { color: #ffffff; }

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    width: calc(50% - 4px);
    background: var(--rk-cs-passive);
    border-radius: 8px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.4s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Dashboard SVG i Wyniki */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 1.2fr;
    gap: 25px;
    align-items: stretch;
}

/* SVG Animacje */
.rk-svg-viewport {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    justify-content: center;
    align-items: center;
}

.svg-snow { fill: #bae6fd; animation: snowfall linear infinite; }
.svg-heat-loss { fill: none; stroke-linecap: round; stroke-width: 4; transition: opacity 0.5s, stroke 0.5s; }

/* Stan: Pasywny */
.state-passive .svg-heat-loss { stroke: var(--rk-cs-passive); opacity: 0.2; animation: floatUp 3s infinite ease-in-out; }
.state-passive .svg-wall { stroke: var(--rk-cs-passive); stroke-width: 8; transition: stroke-width 0.5s; }
.state-passive .svg-therm-fill { fill: var(--rk-cs-passive); height: 60px; y: 40; transition: all 0.5s; }

/* Stan: Standard */
.state-standard .svg-heat-loss { stroke: var(--rk-cs-standard); opacity: 1; animation: floatUp 1s infinite ease-in-out; }
.state-standard .svg-wall { stroke: #94a3b8; stroke-width: 4; transition: stroke-width 0.5s; }
.state-standard .svg-therm-fill { fill: var(--rk-cs-standard); height: 90px; y: 10; transition: all 0.5s; }

@keyframes snowfall {
    0% { transform: translateY(-20px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(120px); opacity: 0; }
}

@keyframes floatUp {
    0% { transform: translateY(10px); }
    100% { transform: translateY(-20px); }
}

/* Wyniki (Kafelki) - PANZER CSS (Zabezpieczone przed globalnymi stylami motywu) */
.rk-sim-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 16px 20px;
    border-radius: 14px;
    transition: border-color 0.3s;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.rk-metric-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    color: var(--rk-cs-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3;
    word-break: normal;
}

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0 0 4px 0;
    line-height: 1.1;
    white-space: nowrap; /* Zapobiega łamaniu wartości */
}

.rk-metric-sub {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
}

.val-highlight { transition: color 0.3s; }
.state-passive .val-highlight { color: var(--rk-cs-passive); }
.state-standard .val-highlight { color: var(--rk-cs-standard); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-cs-header { padding: 35px 25px; }
    .rk-cs-stats { grid-template-columns: 1fr 1fr; }
    .rk-cs-body { padding: 30px 25px 10px; }
    .rk-cs-interactive { padding: 0 25px 35px; }
    .rk-sim-box { padding: 20px; }
    .rk-sim-header { flex-direction: column; gap: 15px; align-items: stretch; text-align: center; }
    .rk-toggle-app { width: 100%; display: flex; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 480px) {
    .rk-sim-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU"
    },
    "headline": "Case Study: Optymalizacja ogrzewania podłogowego w domu pasywnym (Zakopane)",
    "description": "Inżynieryjna analiza projektu instalacji podłogowej w domu pasywnym w Zakopanem. Zastosowanie pompy ciepła monoblok 3,5 kW, rur PERT i rozstawu 20 cm zaowocowało kosztem 640 PLN rocznie.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#dataset-casestudy",
    "name": "Wyniki OZC i Koszty Eksploatacji - Dom Pasywny Zakopane 2025",
    "description": "Zestawienie parametrów wejściowych i wyników eksploatacyjnych dla budynku o pow. 162m2 zlokalizowanego w III strefie klimatycznej (-20°C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania pompą ciepła w górach",
      "projekt podłogówki do domu pasywnego",
      "średnia temperatura zasilania podłogówki",
      "rozstaw rur 20 cm ogrzewanie podłogowe",
      "pompa ciepła monoblok 3.5 kW"
    ],
    "measurementTechnique": "Monitoring rzeczywistego zużycia energii elektrycznej pompy ciepła w sezonie grzewczym 2025/2026 w odniesieniu do projektu OZC 1,94 kW.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie na moc (OZC): 1,94 kW przy -20°C na zewnątrz.",
        "System: Pompa ciepła monoblok 3,5 kW, rura PERT/AL/PERT 16x2,0 mm.",
        "Parametry zasilania: Średnia sezonowa temperatura Tz = 27,4°C.",
        "Roczny koszt ogrzewania: 640 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#webapp-casestudy",
    "name": "Symulator Efektywności Termicznej (Pasywny vs Standard)",
    "description": "Interaktywny panel zestawiający wizualnie straty ciepła i roczne koszty ogrzewania w ekstremalnych warunkach zimowych dla dwóch standardów budowlanych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-cs-wrapper" id="case-study-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">Case Study z placu budowy</div>
        <h2>Inwestycja Stanisława, Zakopane</h2>
        
        <div class="rk-cs-stats">
            <div class="rk-cs-stat-item">
                <span class="label">Termin</span>
                <span class="value">Listopad 2025</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Lokalizacja</span>
                <span class="value">Strefa III (-20°C)</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Powierzchnia</span>
                <span class="value">162 m²</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Wynikowy Koszt</span>
                <span class="value" style="color: var(--rk-cs-accent);">640 PLN / rok</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-body">
        <div class="rk-cs-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" loading="lazy">
            <div class="rk-cs-author-info">
                <strong>Robert Kucharski</strong>
                <p>Nadzór Inżynierski HVAC</p>
            </div>
        </div>

        <p class="rk-cs-story">
            W listopadzie 2025 roku zakończyłem nadzór inżynierski nad <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">projektem podłogówki do domu pasywnego</a> dla Pana Stanisława w Zakopanem. Wyzwaniem była wymagająca, III strefa klimatyczna. Budynek o powierzchni 162 m² został wykonany w rygorystycznej technologii (ściany U=0,09 W/(m²·K)). Realne zapotrzebowanie na moc grzewczą w najzimniejszym dniu zimy (-20°C) wyniosło zaledwie <strong>1,94 kW</strong> dla całego obiektu.
        </p>
        <p class="rk-cs-story">
            Zastosowaliśmy <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rurę PERT/AL/PERT</a> 16x2,0 mm w rzadkim, ale tu idealnym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur 20 cm</a> w strefach bytowych. Zintegrowaliśmy to z automatyką pogodową i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła typu monoblok 3,5 kW</a>. Efekt? <strong>Średnia temperatura zasilania podłogówki</strong> w sezonie wyniosła zaledwie 27,4°C, co zagwarantowało <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania pompą ciepła w górach</a> na poziomie rewelacyjnych 640 PLN rocznie.
        </p>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-sim-box state-passive" id="rk-sim-container">
            
            <div class="rk-sim-header">
                <h3 class="rk-sim-title">Symulator Efektywności Termicznej</h3>
                <div class="rk-toggle-app">
                    <div class="rk-toggle-slider" id="rk-toggle-slider"></div>
                    <div class="rk-toggle-btn active" id="btn-passive">Dom Pasywny</div>
                    <div class="rk-toggle-btn" id="btn-standard">Dom Standard</div>
                </div>
            </div>

            <div class="rk-sim-dashboard">
                
                <!-- Wizualizacja SVG (Zima) -->
                <div class="rk-svg-viewport">
                    <svg viewBox="0 0 200 150" style="width:100%; max-width:200px; height:auto;">
                        <!-- Tło / Śnieg (generowany w js) -->
                        <g id="snow-layer"></g>

                        <!-- Budynek -->
                        <path class="svg-wall" d="M 40 130 L 40 70 L 100 30 L 160 70 L 160 130 Z" fill="#f8fafc" stroke-linejoin="round"/>
                        
                        <!-- Rury Grzewcze -->
                        <circle cx="70" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="100" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="130" cy="120" r="5" fill="#ef4444"/>

                        <!-- Uciekające Ciepło -->
                        <path class="svg-heat-loss" d="M 100 80 Q 110 50 100 20"/>
                        <path class="svg-heat-loss" d="M 70 80 Q 80 50 70 20" style="animation-delay: 0.3s;"/>
                        <path class="svg-heat-loss" d="M 130 80 Q 140 50 130 20" style="animation-delay: 0.6s;"/>

                        <!-- Termometr Zewnętrzny (-20C) -->
                        <rect x="10" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="12" y="80" width="6" height="20" rx="3" fill="#3b82f6"/>
                        <text x="15" y="35" font-size="10" font-weight="bold" fill="#3b82f6" text-anchor="middle">-20°C</text>

                        <!-- Termometr Wewnętrzny -->
                        <rect x="175" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="177" y="40" width="6" height="60" rx="3" class="svg-therm-fill"/>
                        <text x="180" y="35" font-size="10" font-weight="bold" fill="#ef4444" text-anchor="middle">21°C</text>
                    </svg>
                </div>

                <!-- Kafelki Wyników z zabezpieczeniem (flex-direction: column) -->
                <div class="rk-sim-metrics">
                    <div class="rk-metric-card">
                        <h4>Moc Projektowa (OZC)</h4>
                        <div class="rk-metric-val val-highlight" id="val-ozc">1.94 kW</div>
                        <div class="rk-metric-sub">Zapotrzebowanie przy -20°C</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Śr. Temp. Zasilania</h4>
                        <div class="rk-metric-val val-highlight" id="val-temp">27.4°C</div>
                        <div class="rk-metric-sub">Idealne dla pompy ciepła</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Rozstaw Rur PEX/PERT</h4>
                        <div class="rk-metric-val val-highlight" id="val-spacing">co 20 cm</div>
                        <div class="rk-metric-sub">Oszczędność materiału</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Roczny Koszt Ogrzewania</h4>
                        <div class="rk-metric-val val-highlight" id="val-cost">640 PLN</div>
                        <div class="rk-metric-sub">W rachunkach za prąd</div>
                    </div>
                </div>

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

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('case-study-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ UNAUTHORIZED ACCESS ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Brak licencji na wyświetlanie zawartości.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł Case Study stanowi własność intelektualną Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Generowanie śniegu w SVG
    const snowLayer = document.getElementById('snow-layer');
    let snowHtml = '';
    for(let i=0; i<15; i++) {
        const cx = Math.random() * 200;
        const delay = Math.random() * 3;
        const dur = 2 + Math.random() * 2;
        const r = 1 + Math.random() * 1.5;
        snowHtml += `<circle cx="${cx}" cy="-10" r="${r}" class="svg-snow" style="animation-delay: ${delay}s; animation-duration: ${dur}s;"/>`;
    }
    snowLayer.innerHTML = snowHtml;

    // 3. Logika Przełącznika
    const btnPassive = document.getElementById('btn-passive');
    const btnStandard = document.getElementById('btn-standard');
    const slider = document.getElementById('rk-toggle-slider');
    const container = document.getElementById('rk-sim-container');

    // Wartości DOM
    const valOzc = document.getElementById('val-ozc');
    const valTemp = document.getElementById('val-temp');
    const valSpacing = document.getElementById('val-spacing');
    const valCost = document.getElementById('val-cost');

    function animateValue(element, start, end, suffix, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            const easeProgress = progress * (2 - progress);
            const current = start + (end - start) * easeProgress;
            
            if(Number.isInteger(end)) {
                element.textContent = Math.round(current) + suffix;
            } else {
                element.textContent = current.toFixed(2) + suffix;
            }
            
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    btnPassive.addEventListener('click', () => {
        // UI Update
        btnStandard.classList.remove('active');
        btnPassive.classList.add('active');
        slider.style.transform = 'translateX(0)';
        slider.style.background = 'var(--rk-cs-passive)';
        
        container.classList.remove('state-standard');
        container.classList.add('state-passive');

        // Text & Animations
        valSpacing.textContent = 'co 20 cm';
        animateValue(valOzc, 8.5, 1.94, ' kW', 800);
        animateValue(valTemp, 38.0, 27.4, '°C', 800);
        animateValue(valCost, 3200, 640, ' PLN', 1000);
    });

    btnStandard.addEventListener('click', () => {
        // UI Update
        btnPassive.classList.remove('active');
        btnStandard.classList.add('active');
        slider.style.transform = 'translateX(100%)';
        slider.style.background = 'var(--rk-cs-standard)';
        
        container.classList.remove('state-passive');
        container.classList.add('state-standard');

        // Text & Animations
        valSpacing.textContent = 'co 10 cm';
        animateValue(valOzc, 1.94, 8.5, ' kW', 800);
        animateValue(valTemp, 27.4, 38.0, '°C', 800);
        animateValue(valCost, 640, 3200, ' PLN', 1000);
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-brand: #0284c7;
    --rk-faq-brand-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-eco: #10b981;
    --rk-faq-warn: #f59e0b;
    --rk-faq-cold: #3b82f6;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-panel: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    text-align: center;
}

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

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

/* Interaktywny Akordeon */
.rk-faq-body {
    padding: 40px 45px;
    background: var(--rk-faq-panel);
}

.rk-accordion-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
    transition: border-color 0.3s, box-shadow 0.3s;
}

.rk-accordion-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk Pytania */
.rk-accordion-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.rk-accordion-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    padding-right: 20px;
    transition: color 0.3s;
}

.rk-accordion-item.active .rk-accordion-title {
    color: var(--rk-faq-brand);
}

.rk-accordion-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    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.34, 1.56, 0.64, 1);
}

.rk-accordion-item.active .rk-accordion-icon {
    transform: rotate(135deg);
    background: var(--rk-faq-brand);
    color: #ffffff;
}

/* Rozwijana Treść */
.rk-accordion-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
}

.rk-accordion-item.active .rk-accordion-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-accordion-content {
    overflow: hidden;
}

.rk-accordion-inner {
    padding: 0 30px 30px 30px;
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 30px;
    align-items: center;
    border-top: 1px dashed transparent;
    transition: border-color 0.4s;
}

.rk-accordion-item.active .rk-accordion-inner {
    border-color: var(--rk-faq-border);
    padding-top: 25px;
}

/* Tekst i Linki SEO */
.rk-faq-text {
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--rk-faq-text);
    margin: 0;
}

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

.rk-faq-text a {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-faq-text a:hover {
    background: var(--rk-faq-brand-light);
    border-color: var(--rk-faq-brand);
}

/* Mini Infografiki SVG wewnątrz FAQ */
.rk-faq-svg-box {
    width: 100%;
    height: 120px;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid var(--rk-faq-border);
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-faq-svg { width: 80%; height: auto; }

/* Animacje Q1, Q2, Q3 (Istniejące) */
.anim-heat-glow { opacity: 0; transform: translateY(10px); transition: all 0.8s ease; }
.rk-accordion-item.active .anim-heat-glow { opacity: 1; transform: translateY(0); animation: pulseHeat 2s infinite alternate; }

.anim-evoh { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s ease-in-out; }
.rk-accordion-item.active .anim-evoh { stroke-dashoffset: 0; }

.anim-panel { transform: translateY(-20px); opacity: 0; transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-accordion-item.active .anim-panel { transform: translateY(0); opacity: 1; }

/* Animacje Q4, Q5 (Nowe) */
.anim-reku-arrow { opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-reku-arrow { opacity: 1; animation: flowReku 2s infinite linear; }
.anim-flake { transform-origin: center; opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-flake { opacity: 1; animation: spinFlake 4s infinite linear; }

@keyframes pulseHeat {
    0% { filter: drop-shadow(0 -5px 5px rgba(245, 158, 11, 0.2)); }
    100% { filter: drop-shadow(0 -15px 15px rgba(245, 158, 11, 0.6)); }
}
@keyframes flowReku {
    0% { stroke-dashoffset: 20; }
    100% { stroke-dashoffset: 0; }
}
@keyframes spinFlake {
    100% { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-body { padding: 30px 25px; }
    .rk-accordion-btn { padding: 20px; }
    .rk-accordion-inner { grid-template-columns: 1fr; padding: 0 20px 20px 20px; gap: 20px; }
    .rk-accordion-title { font-size: 15px; }
    .rk-faq-svg-box { height: 100px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Sekcja FAQ – Najczęstsze pytania o podłogówkę w domu pasywnym",
    "description": "Techniczne odpowiedzi eksperta: podłogówka jako jedyne źródło ciepła, rury PEX vs PERT, panele na ogrzewaniu, wpływ rekuperacji oraz chłodzenie płaszczyznowe.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wykonane projektowe obciążenie cieplne (OZC). W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh/(m2·rok)), prawidłowo zaprojektowana instalacja ogrzewania płaszczyznowego bez problemu pokryje straty ciepła, nawet gdy temperatura na zewnątrz spada poniżej -20°C."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W przypadku domów pasywnych, gdzie zasilanie pompy ciepła oscyluje wokół 28-32°C, rura wielowarstwowa PERT/AL/PERT jest wyborem optymalnym i wystarczającym. Najważniejszym parametrem jest obecność bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726, która skutecznie blokuje przenikanie tlenu do zładu wody."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Oczywiście, ale wymaga to precyzji projektowej. Całkowity opór cieplny okładziny (paneli wraz z podkładem) nie może przekraczać 0,15 (m2·K)/W. W praktyce najlepiej sprawdzają się cienkie panele winylowe SPC na podłogówkę oraz dedykowane podkłady o dużej gęstości."
        }
      },
      {
        "@type": "Question",
        "name": "Jak wentylacja mechaniczna z rekuperacją współpracuje z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W budownictwie pasywnym rekuperacja jest niezbędna do prawidłowego działania podłogówki. Eliminując grawitacyjne straty ciepła, drastycznie obniża zapotrzebowanie energetyczne budynku. Pozwala to na obniżenie temperatury zasilania z pompy ciepła, co maksymalizuje współczynnik COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ogrzewaniem podłogowym można chłodzić dom pasywny latem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, chłodzenie płaszczyznowe przy użyciu rewersyjnej pompy ciepła to świetne rozwiązanie. Wymaga jednak ścisłej kontroli tzw. punktu rosy w ogrzewaniu podłogowym. Automatyka musi dbać o to, by zbyt niska temperatura wody (ok. 18°C) nie wywołała kondensacji wilgoci na posadzce."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-faq",
    "name": "Baza Wiedzy: Parametry Techniczne Podłogówki w Budownictwie Pasywnym",
    "description": "Zestawienie wytycznych instalacyjnych obejmujące ogrzewanie, chłodzenie i współpracę z rekuperatorem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka jedyne źródło ciepła zimą",
      "jaką rurę do ogrzewania podłogowego wybrać",
      "bariera antydyfuzyjna EVOH",
      "panele winylowe SPC na podłogówkę",
      "wpływ rekuperacji na ogrzewanie podłogowe",
      "chłodzenie płaszczyznowe podłogówką pompą ciepła",
      "punkt rosy w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych OZC, wymagań dyfuzyjnych normy DIN 4726, oporu cieplnego R < 0,15 m2K/W oraz kontroli punktu kondensacji pary wodnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wydajność: Samodzielne pokrycie OZC przy mrozach -20°C.",
        "Technologia rur: PERT vs PEX z warunkiem szczelności tlenowej EVOH.",
        "Rezystancja: Limit izolacyjności podłogi do 0,15 m2K/W.",
        "Efektywność: Obniżenie OZC przez odzysk ciepła z wentylacji.",
        "Chłodzenie: Ochrona okładziny przed wilgocią poprzez kontrolę punktu rosy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny (FAQ HVAC)",
    "description": "Aplikacja webowa typu akordeon, wzbogacona o dynamicznie renderowane grafiki wektorowe SVG, służąca do edukacji inwestorów w zakresie projektowania nowoczesnych instalacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq-container" id="faq-interactive-app">
    
    <div class="rk-faq-header">
        <h2>Sekcja FAQ – Najczęstsze pytania inwestorów</h2>
        <p>Wątpliwości na etapie stanu surowego to norma. Zobacz, jak inżynieria HVAC odpowiada na 5 najważniejszych pytań dotyczących standardu pasywnego.</p>
    </div>

    <div class="rk-faq-body">
        
        <!-- Pytanie 1 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wyliczone <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne (OZC)</a></strong>. W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh na m2 rocznie), prawidłowo zaprojektowana <strong>instalacja ogrzewania płaszczyznowego</strong> bez problemu pokryje straty budynku, nawet gdy temperatura na zewnątrz spada poniżej -20°C. Podłogówka eliminuje konieczność montowania dodatkowych grzejników czy mat elektrycznych, co znacząco obniża koszty inwestycyjne.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <path d="M10 80 L 90 80" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                                <circle cx="30" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="50" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="70" cy="70" r="6" fill="#ef4444"/>
                                <!-- Animowana łuna ciepła -->
                                <path class="anim-heat-glow" d="M 20 60 Q 50 10 80 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W przypadku domów pasywnych, gdzie zasilanie oscyluje wokół 28-32°C, <strong><a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura wielowarstwowa PERT/AL/PERT</a></strong> jest wyborem optymalnym. Jej największą zaletą jest wysoka elastyczność i łatwość układania gęstych pętli w porównaniu do sztywniejszych rur <strong><a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX/AL/PEX</a></strong>. Najważniejszym parametrem, na który musisz zwrócić uwagę przed zakupem, jest obecność bariery antydyfuzyjnej EVOH. Zgodnie z normą <strong><a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726</a></strong>, warstwa ta skutecznie blokuje przenikanie cząsteczek tlenu do zładu wody, chroniąc pompę ciepła i stalowe rozdzielacze przed korozją.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Warstwy rury -->
                                <circle cx="50" cy="50" r="30" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                                <circle cx="50" cy="50" r="24" fill="none" stroke="#94a3b8" stroke-width="4"/>
                                <circle cx="50" cy="50" r="20" fill="none" stroke="#10b981" stroke-width="4" class="anim-evoh"/>
                                <circle cx="50" cy="50" r="16" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                                <text x="50" y="54" font-size="10" font-weight="bold" fill="#0f172a" text-anchor="middle">O2 STOP</text>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Oczywiście, ale wymaga to ogromnej precyzji projektowej. Zgodnie z inżynierskimi wytycznymi, całkowity <strong><a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny okładziny (R)</a></strong> (czyli suma oporu paneli i podkładu) nie może przekraczać 0,15 (m2·K)/W. W praktyce instalatorskiej najlepiej sprawdzają się cienkie <strong>panele winylowe SPC na podłogówkę</strong> oraz dedykowane podkłady mineralne o wysokiej gęstości. Pamiętaj, że <strong><a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">zastosowanie grubych paneli laminowanych</a></strong> wymusi podniesienie krzywej grzewczej na piecu o około 2 do 3°C względem płytek gresowych.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Beton z rurą -->
                                <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="80" r="5" fill="#ef4444"/>
                                <!-- Podkład i Panel -->
                                <g class="anim-panel">
                                    <rect x="10" y="55" width="80" height="6" fill="#f59e0b" opacity="0.8"/>
                                    <rect x="10" y="40" width="80" height="10" fill="#8b5cf6" rx="1"/>
                                    <path d="M 50 35 L 50 15 M 45 20 L 50 15 L 55 20" stroke="#8b5cf6" stroke-width="2" fill="none"/>
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jak wentylacja z rekuperacją współpracuje z podłogówką?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W budownictwie pasywnym <strong>wentylacja mechaniczna z odzyskiem ciepła (rekuperacja)</strong> jest systemem nierozerwalnie związanym z niskotemperaturowym ogrzewaniem. Eliminując potężne grawitacyjne straty ciepła (tzw. wywiewanie ciepłego powietrza przez komin), rekuperator drastycznie obniża zapotrzebowanie budynku. Pozytywny <strong><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie podłogowe</a></strong> polega na tym, że instalacja grzewcza może pracować stabilnie na bardzo niskich parametrach zasilania, co bezpośrednio maksymalizuje wydajność (COP) pompy ciepła.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Wymiennik -->
                                <polygon points="50,20 80,50 50,80 20,50" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                <!-- Przepływ zimnego -> gorącego -->
                                <path class="anim-reku-arrow" d="M 20 50 L 80 50" stroke="#ef4444" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                                <!-- Przepływ zużytego -> zimnego -->
                                <path class="anim-reku-arrow" d="M 50 20 L 50 80" stroke="#3b82f6" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewaniem podłogowym można skutecznie chłodzić dom latem?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Tak, <strong>chłodzenie płaszczyznowe podłogówką</strong> przy użyciu rewersyjnej pompy ciepła to doskonałe, darmowe źródło komfortu na upalne dni. Instalacja tłoczy wtedy w posadzkę wodę o temperaturze około 18-20°C. Głównym wyzwaniem inżynieryjnym jest jednak ominięcie <strong><a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy w ogrzewaniu podłogowym</a></strong>. Zbyt niska temperatura czynnika doprowadzi do kondensacji i wytrącenia się kropel wody na posadzce. Wymaga to integracji odpowiednich termostatów ściennych z czujnikami wilgotności.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <rect x="10" y="80" width="80" height="10" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="85" r="3" fill="#3b82f6"/> <!-- Zimna woda -->
                                <!-- Płatek śniegu obracający się -->
                                <g class="anim-flake" stroke="#3b82f6" stroke-width="2" stroke-linecap="round">
                                    <line x1="50" y1="20" x2="50" y2="60" />
                                    <line x1="30" y1="40" x2="70" y2="40" />
                                    <line x1="35" y1="25" x2="65" y2="55" />
                                    <line x1="35" y1="55" x2="65" y2="25" />
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez użycia H-tagó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('faq-interactive-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #0284c7; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #0284c7;">[ MODULE LOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Autoryzacja domeny nie powiodła się.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Aplikacja interaktywnego FAQ jest przypisana do licencji Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Z jednym otwartym na raz)
    const accordionItems = document.querySelectorAll('.rk-accordion-item');

    accordionItems.forEach(item => {
        const btn = item.querySelector('.rk-accordion-btn');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamknij inne
            accordionItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełącz
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Otwarcie pierwszego
    if(accordionItems.length > 0) {
        accordionItems[0].classList.add('active');
        accordionItems[0].querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'true');
    }
});
</script>



<style>
:root {
    --rk-pas-dark: #0f172a;
    --rk-pas-brand: #2563eb;
    --rk-pas-brand-light: #eff6ff;
    --rk-pas-eco: #059669;
    --rk-pas-eco-light: #ecfdf5;
    --rk-pas-warn: #dc2626;
    --rk-pas-warn-light: #fef2f2;
    --rk-pas-text: #334155;
    --rk-pas-border: #cbd5e1;
    --rk-pas-bg: #ffffff;
}

.rk-pas-container {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-pas-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid #e2e8f0;
    overflow: hidden;
}

/* Nagłówek */
.rk-pas-header {
    background: linear-gradient(145deg, var(--rk-pas-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: #fff;
}

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

.rk-pas-quote {
    font-size: 18px;
    font-style: italic;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.rk-pas-quote strong {
    color: #38bdf8;
    font-weight: 700;
}

/* Interfejs Przełącznika */
.rk-pas-interactive {
    padding: 40px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-pas-border);
}

.rk-pas-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-pas-controls h3 {
    margin: 0;
    font-size: 20px;
    color: var(--rk-pas-dark);
}

/* Toggle Switch w stylu App */
.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fff;
    padding: 10px 20px;
    border-radius: 99px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pas-border);
}

.rk-toggle-label {
    font-weight: 700;
    font-size: 15px;
    color: #64748b;
    transition: color 0.3s;
}

.rk-toggle-label.active-warn { color: var(--rk-pas-warn); }
.rk-toggle-label.active-eco { color: var(--rk-pas-eco); }

.rk-switch {
    position: relative;
    width: 64px;
    height: 32px;
    background: var(--rk-pas-warn);
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.4s;
}

.rk-switch.pro-mode {
    background: var(--rk-pas-eco);
}

.rk-switch-thumb {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-switch.pro-mode .rk-switch-thumb {
    transform: translateX(32px);
}

/* Wyświetlacz i SVG */
.rk-pas-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-stage {
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
    display: block;
}

/* Animacje SVG */
.wave-path {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    transition: stroke 0.5s, transform 0.5s;
}

.state-error .wave-path { stroke: var(--rk-pas-warn); animation: overheat 0.8s infinite alternate; }
.state-pro .wave-path { stroke: var(--rk-pas-eco); animation: stableHeat 3s infinite linear; }

@keyframes overheat {
    0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
    100% { transform: translateY(-10px) scaleY(1.2); opacity: 1; }
}

@keyframes stableHeat {
    0% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(-5px); opacity: 0.9; }
    100% { transform: translateY(0); opacity: 0.6; }
}

.house-outline {
    fill: none;
    stroke: var(--rk-pas-dark);
    stroke-width: 3;
    stroke-linejoin: round;
}

/* Kafelki Danych (Grid) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-data-card {
    background: #f8fafc;
    border: 1px solid var(--rk-pas-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-data-card h4 {
    margin: 0 0 5px 0;
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-data-card .rk-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-pas-dark);
    margin-bottom: 5px;
}

.rk-data-card p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-pas-text);
}

/* CTA */
.rk-pas-cta {
    padding: 40px 30px;
    text-align: center;
    background: #fff;
}

.rk-pas-cta p {
    font-size: 16px;
    color: var(--rk-pas-text);
    max-width: 650px;
    margin: 0 auto 25px;
    line-height: 1.6;
}

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

.rk-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-pas-brand);
    color: #ffffff !important; /* Wymuszony biały kolor tekstu i ikony */
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    text-decoration: none !important;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-btn:hover {
    background: #1d4ed8;
    color: #ffffff !important; /* Zabezpieczenie przed zmianą koloru po najechaniu */
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .rk-pas-display { grid-template-columns: 1fr; text-align: center; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 16px; padding: 15px; }
    .rk-switch { transform: rotate(90deg); margin: 10px 0; }
    .rk-pas-header 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/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Podsumowanie: Precyzja to Twój największy zysk w budownictwie pasywnym",
    "description": "Zrozum różnicę między intuicyjnym montażem a precyzyjnym inżynierskim projektem instalacji grzewczej. Optymalizacja rozstawu rur i izolacji EPS 200.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset",
    "name": "Porównanie Parametrów: System Pasywny vs Błędy Wykonawcze",
    "description": "Baza danych przedstawiająca realne skutki przewymiarowania instalacji podłogowej, w tym nadmierne temperatury zasilania i koszty eksploatacyjne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego dom pasywny",
      "rozstaw rur 15 cm a 10 cm",
      "grubość styropianu EPS 200",
      "temperatura zasilania pompy ciepła",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Analiza symulacyjna oparta na normie PN-EN 12831 wykazująca różnice w temperaturze zasilania i stabilności cieplnej podłogi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur 10 cm: Powoduje nadmiar mocy, przegrzewanie i niepotrzebne koszty rur.",
        "Rozstaw rur 15-20 cm: Wymaga projektu, zapewnia niskie zasilanie (do 32°C) i stabilną pracę pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp",
    "name": "Interaktywny Symulator Komfortu Pasywnego",
    "description": "Narzędzie internetowe demonstrujące wpływ precyzyjnego inżynierskiego rozstawu rur i izolacji na parametry pracy instalacji ogrzewania podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pas-container" id="pasywny-sum-app">
    
    <div class="rk-pas-header">
        <h2>Efektywność wymaga inżynierskiej precyzji</h2>
        <p class="rk-pas-quote">
            W domu pasywnym instalacja grzewcza ma być niemal "niewidoczna" dla zmysłów i portfela. <strong>Zbyt gęsty rozstaw rur i wysoka temperatura zasilania to najszybsza droga do katastrofy termicznej.</strong>
        </p>
    </div>

    <div class="rk-pas-interactive">
        <div class="rk-pas-controls">
            <h3>Sprawdź wpływ projektu na działanie instalacji</h3>
            <div class="rk-toggle-wrapper">
                <span class="rk-toggle-label active-warn" id="lbl-amateur">Wykonawstwo "Na oko"</span>
                <div class="rk-switch" id="pas-toggle">
                    <div class="rk-switch-thumb"></div>
                </div>
                <span class="rk-toggle-label" id="lbl-pro">Projekt Inżynierski (OZC)</span>
            </div>
        </div>

        <div class="rk-pas-display">
            <!-- Animacja SVG -->
            <div class="rk-svg-container state-error" id="svg-state">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Podstawa / Wylewka -->
                    <rect x="20" y="160" width="160" height="20" fill="#cbd5e1" rx="4"/>
                    <!-- Rury (dynamiczne wypełnienie w JS) -->
                    <g id="svg-pipes">
                        <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="140" cy="170" r="6" fill="#ef4444"/>
                    </g>
                    <!-- Fale Ciepła -->
                    <path class="wave-path" d="M 50 140 Q 60 100 50 60" />
                    <path class="wave-path" d="M 100 140 Q 110 100 100 60" style="animation-delay: 0.2s" />
                    <path class="wave-path" d="M 150 140 Q 160 100 150 60" style="animation-delay: 0.4s" />
                    <!-- Zarys Domu -->
                    <path class="house-outline" d="M 20 160 L 20 80 L 100 20 L 180 80 L 180 160" />
                </svg>
            </div>

            <!-- Dynamiczne Dane -->
            <div class="rk-data-grid">
                <div class="rk-data-card" id="card-spacing">
                    <h4>Rozstaw Rur</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">co 10 cm</div>
                    <p>Zbędny wydatek na materiał, trudne rotametrowanie.</p>
                </div>
                <div class="rk-data-card" id="card-temp">
                    <h4>Temp. Zasilania</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">> 40°C</div>
                    <p>Spadek COP pompy ciepła, przegrzewanie salonu.</p>
                </div>
                <div class="rk-data-card" id="card-eps">
                    <h4>Izolacja Posadzki</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">EPS 100</div>
                    <p>Niewystarczający opór cieplny do gruntu.</p>
                </div>
                <div class="rk-data-card" id="card-cost">
                    <h4>Koszty Roczne</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">Wyższe o 35%</div>
                    <p>Energia tracona przez niestabilność układu.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pas-cta">
        <p>
            Decyzja o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur co 10 czy 15 cm</a> oraz doborze grubości <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu EPS podłogowego</a> nie może być dziełem przypadku. W standardzie pasywnym nawet <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania (rzędu 30-35°C)</a> wymaga idealnego zbilansowania w dokumentacji.
        </p>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/" class="rk-btn">
            ZAMÓW PROJEKT OGRZEWANIA DO DOMU PASYWNEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft)
    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('pasywny-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛡️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny i warstwa JSON-LD należą do portalu Projekt-Ogrzewania.pl. Uruchomienie skryptu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggle = document.getElementById('pas-toggle');
    const lblAmateur = document.getElementById('lbl-amateur');
    const lblPro = document.getElementById('lbl-pro');
    const svgState = document.getElementById('svg-state');
    const svgPipes = document.getElementById('svg-pipes');
    
    // Kafelki
    const cardSpacing = document.getElementById('card-spacing');
    const cardTemp = document.getElementById('card-temp');
    const cardEps = document.getElementById('card-eps');
    const cardCost = document.getElementById('card-cost');

    let isPro = false;

    toggle.addEventListener('click', () => {
        isPro = !isPro;
        
        if(isPro) {
            // Styl przełącznika
            toggle.classList.add('pro-mode');
            lblAmateur.classList.remove('active-warn');
            lblPro.classList.add('active-eco');
            
            // Styl SVG
            svgState.classList.remove('state-error');
            svgState.classList.add('state-pro');
            svgPipes.innerHTML = `
                <circle cx="60" cy="170" r="6" fill="#059669"/>
                <circle cx="100" cy="170" r="6" fill="#059669"/>
                <circle cx="140" cy="170" r="6" fill="#059669"/>
            `; // 3 rury zamiast 4 (szerszy rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 15-20 cm', 'var(--rk-pas-eco)', 'Idealny balans zysków ciepła i oporów.');
            updateCard(cardTemp, '28°C - 32°C', 'var(--rk-pas-eco)', 'Optymalny COP dla pomp ciepła i komfortu.');
            updateCard(cardEps, 'EPS 200', 'var(--rk-pas-eco)', 'Minimalne straty do gruntu (R > 6,0).');
            updateCard(cardCost, 'Zoptymalizowane', 'var(--rk-pas-eco)', 'Grzanie ciągłe, bez zjawiska taktowania sprężarki.');
            
        } else {
            // Styl przełącznika
            toggle.classList.remove('pro-mode');
            lblPro.classList.remove('active-eco');
            lblAmateur.classList.add('active-warn');

            // Styl SVG
            svgState.classList.remove('state-pro');
            svgState.classList.add('state-error');
            svgPipes.innerHTML = `
                <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                <circle cx="140" cy="170" r="6" fill="#ef4444"/>
            `; // 4 rury (gęsty rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 10 cm', 'var(--rk-pas-warn)', 'Zbędny wydatek na materiał, trudne rotametrowanie.');
            updateCard(cardTemp, '> 40°C', 'var(--rk-pas-warn)', 'Spadek COP pompy ciepła, przegrzewanie salonu.');
            updateCard(cardEps, 'EPS 100', 'var(--rk-pas-warn)', 'Niewystarczający opór cieplny do gruntu.');
            updateCard(cardCost, 'Wyższe o 35%', 'var(--rk-pas-warn)', 'Energia tracona przez niestabilność układu.');
        }
    });

    function updateCard(card, valueText, color, descText) {
        const valElement = card.querySelector('.rk-value');
        const descElement = card.querySelector('p');
        
        valElement.style.opacity = '0';
        descElement.style.opacity = '0';
        
        setTimeout(() => {
            valElement.textContent = valueText;
            valElement.style.color = color;
            descElement.textContent = descText;
            
            valElement.style.opacity = '1';
            descElement.style.opacity = '1';
        }, 150);
    }
});
</script>



<style>
:root {
    --dl-pas-primary: #0f172a;
    --dl-pas-accent: #10b981; /* Szmaragdowa zieleń - Eco/Pasywny */
    --dl-pas-accent-dark: #047857;
    --dl-pas-bg: #f8fafc;
    --dl-pas-border: #e2e8f0;
    --dl-pas-text: #334155;
    --dl-pas-white: #ffffff;
    --dl-pas-muted: #64748b;
}

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

.rk-pas-dl-container * {
    box-sizing: inherit;
}

/* NAGŁÓWEK SEKCI */
.dl-pas-header {
    background: linear-gradient(135deg, var(--dl-pas-primary) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: var(--dl-pas-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* Subtelny wzór geometryczny w tle nagłówka */
.dl-pas-header::before {
    content: '';
    position: absolute;
    top: -50%; right: -10%;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

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

.dl-pas-badge {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.4);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

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

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

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

.dl-pas-pdf-icon {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: floatPasIcon 3.5s infinite ease-in-out alternate;
}

@keyframes floatPasIcon {
    from { transform: translateY(0) rotate(0deg); }
    to { transform: translateY(-12px) rotate(-3deg); }
}

/* GŁÓWNY WORKSPACE */
.dl-pas-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-pas-white);
    align-items: center;
}

.dl-pas-preview {
    flex: 1;
    background: var(--dl-pas-bg);
    border: 1px solid var(--dl-pas-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
}

.dl-pas-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px -10px rgba(16, 185, 129, 0.15);
}

.dl-pas-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.dl-pas-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: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
}

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

.dl-pas-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.dl-pas-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-pas-text);
    line-height: 1.5;
}

.dl-pas-check {
    width: 22px;
    height: 22px;
    color: var(--dl-pas-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

/* PRZYCISK POBIERANIA */
.dl-pas-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-pas-accent);
    color: var(--dl-pas-white) !important;
    text-decoration: none !important;
    padding: 18px 32px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    border: 2px solid transparent;
}

.dl-pas-btn:hover {
    background: var(--dl-pas-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.6);
    border-color: #6ee7b7;
}

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

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

/* STOPKA MODUŁU I SEO */
.dl-pas-footer {
    padding: 25px 50px;
    background: var(--dl-pas-bg);
    border-top: 1px solid var(--dl-pas-border);
}

.dl-pas-seo-text {
    font-size: 14px;
    color: var(--dl-pas-muted);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

.dl-pas-seo-text strong {
    color: var(--dl-pas-primary);
}

.dl-pas-footer a {
    color: var(--dl-pas-accent-dark);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}

.dl-pas-footer a:hover {
    border-color: var(--dl-pas-accent-dark);
}

.dl-pas-copyright {
    font-size: 12px;
    color: #94a3b8;
    text-align: center;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed #cbd5e1;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak osiągnąć maksymalną efektywność energetyczną? Infografika dla domów pasywnych",
    "description": "Pobierz inżynierski schemat projektowania ogrzewania podłogowego. Dowiedz się, jak połączyć rekuperację z pompą ciepła i zredukować zużycie energii o 90%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-pasywny",
    "name": "Parametry techniczne ogrzewania w standardzie pasywnym",
    "description": "Zestawienie zużycia energii, optymalnych temperatur zasilania pompy ciepła oraz krytycznych błędów projektowych w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na energię w domu pasywnym",
      "temperatura zasilania pompy ciepła w domu pasywnym",
      "współpraca podłogówki z rekuperacją",
      "błędy w projektowaniu ogrzewania podłogowego",
      "temperatura podłogi norma"
    ],
    "measurementTechnique": "Analiza porównawcza zużycia energii (kWh/m²) dla domów tradycyjnych i pasywnych oraz kalibracja krzywej grzewczej pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie energetyczne: Spadek z 80-120 kWh/m² do 5-15 kWh/m² rocznie.",
        "Parametry zasilania: Optymalny zakres 26-32°C dla maksymalnego COP pompy ciepła.",
        "Krytyczne błędy: Przewymiarowanie mocy pompy, słaba izolacja krawędziowa, brak bilansu cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#download-hub-pasywny",
    "name": "Centrum Pobierania: Standard Pasywny",
    "description": "Interaktywny moduł pozwalający na podgląd w wysokiej rozdzielczości oraz pobranie technicznej infografiki w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pas-dl-container" id="app-pas-dl">
    
    <div class="dl-pas-header">
        <div class="dl-pas-header-content">
            <div class="dl-pas-badge">Kompendium Inżynierskie</div>
            <h2>Ogrzewanie w Domu Pasywnym</h2>
            <p>Pobierz autorską infografikę i uniknij najdroższych błędów instalacyjnych. Poznaj parametry, które redukują koszty eksploatacji nawet o 90%.</p>
        </div>
        <div class="dl-pas-header-visual">
            <svg class="dl-pas-pdf-icon" 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="#10b981" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M14 2V8H20" fill="#6ee7b7" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="6.5" y="17" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-pas-workspace">
        
        <div class="dl-pas-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp', '_blank')" role="button" aria-label="Powiększ infografikę">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp" alt="Infografika: Projektowanie ogrzewania podłogowego w domach pasywnych" class="dl-pas-img" loading="lazy">
            <div class="dl-pas-zoom-hint">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="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="dl-pas-info">
            <ul class="dl-pas-list">
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Analiza porównawcza zużycia energii: <strong>Dom Tradycyjny vs Pasywny</strong>.</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Zestawienie optymalnych temperatur (zasilanie: 26-32°C).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Czarna lista: <strong>Krytyczne błędy</strong> (taktowanie pompy, słaba izolacja).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Wpływ rekuperacji na obniżenie kosztów eksploatacji.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.pdf" class="dl-pas-btn" target="_blank" rel="noopener">
                <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>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
        </div>

    </div>

    <div class="dl-pas-footer">
        <p class="dl-pas-seo-text">
            Inwestorzy planujący nowoczesną budowę często pytają, jak wyeliminować błędy u samego źródła. Nasza infografika pokazuje, jak prawidłowo zestawić <strong>niskie zapotrzebowanie na energię w domu pasywnym</strong> (zaledwie 5-15 kWh/m² rocznie) z precyzyjną pracą systemu grzewczego. Dowiesz się z niej, dlaczego <strong>temperatura zasilania pompy ciepła w domu pasywnym</strong> nie powinna przekraczać 32°C oraz jak niezbędna jest <strong>współpraca podłogówki z rekuperacją</strong>.
        </p>
        <p class="dl-pas-seo-text">
            Chcesz uniknąć ryzyka, że Twoja pompa ciepła będzie ulegać taktowaniu? Zadbaj o precyzję przed rozpoczęciem prac. <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zleć profesjonalny projekt OZC i ogrzewania podłogowego</a> naszym inżynierom.
        </p>
        <p class="dl-pas-copyright">
            © 2026 Projekt-Ogrzewania.pl | Udostępnianie materiałów edukacyjnych dozwolone z zachowaniem linku do źródła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Brak nagłówków H-tag w alercie) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-pas-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; margin-bottom: 10px; text-transform: uppercase;">Odmowa Dostępu</div>
                    <p style="color: #b91c1c; font-size: 14px; margin: 0; line-height: 1.5;">Moduł "Centrum Pobierania" oraz załączone pliki PDF są własnością intelektualną Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Większy czy mniejszy zład wody w ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 30 Jan 2025 09:42:03 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kotły gazowe]]></category>
		<category><![CDATA[Kotły na paliwa stałe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[efektywność ogrzewania]]></category>
		<category><![CDATA[kocioł gazowy]]></category>
		<category><![CDATA[kocioł na paliwa stałe]]></category>
		<category><![CDATA[mniejszy zład wody]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[większy zład wody]]></category>
		<category><![CDATA[zład wody]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2038</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to system, który zapewnia komfort cieplny i energooszczędność, ale kluczowym czynnikiem wpływającym na jego efektywność jest zład wody. Większy czy mniejszy zład wody – który wariant wybrać? Wiele zależy od źródła ciepła i charakterystyki budynku. Pompy ciepła i kotły na paliwa stałe wymagają większej ilości wody w instalacji, podczas gdy kotły gazowe kondensacyjne często lepiej współpracują z mniejszym zładem. W artykule omawiamy zalety i wady obu rozwiązań, aby pomóc Ci podjąć świadomą decyzję i zoptymalizować działanie ogrzewania podłogowego.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">Większy czy mniejszy zład wody w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe to coraz popularniejsze rozwiązanie, które zapewnia komfort cieplny i energooszczędność. Jednym z kluczowych elementów wpływających na jego efektywność jest&nbsp;<strong>zład wody</strong>, czyli ilość wody krążącej w instalacji. Wiele osób zastanawia się, czy lepszy jest&nbsp;<strong>większy czy mniejszy zład wody</strong>&nbsp;w systemie ogrzewania podłogowego. W tym artykule przyjrzymy się temu zagadnieniu, aby pomóc Ci podjąć świadomą decyzję.</p>



<h2 class="wp-block-heading"><strong>Czym jest zład wody w ogrzewaniu podłogowym?</strong></h2>



<p class="wp-block-paragraph">Zład wody to ilość wody, która znajduje się w obiegu instalacji grzewczej. W przypadku <a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/">ogrzewania podłogowego</a> woda krąży w rurach ułożonych pod podłogą, oddając ciepło do pomieszczeń. Wielkość zładu wody ma bezpośredni wpływ na pracę całego systemu, a także na komfort użytkowania i koszty eksploatacji.</p>



<h2 class="wp-block-heading"><strong>Jaki zład wody wybrać ? &#8211; Dopasowanie do źródła ciepła</strong>.</h2>



<p class="wp-block-paragraph">Nie ma jednej uniwersalnej odpowiedzi na pytanie, jaki zład wody jest najlepszy.&nbsp;<strong>Optymalny zład wody w ogrzewaniu podłogowym zależy od źródła ciepła i charakterystyki budynku</strong>. Poniżej przedstawiamy, jak dopasować zład wody do różnych typów źródeł ciepła.</p>



<h3 class="wp-block-heading"><strong>Pompa ciepła – większy zład wody</strong>.</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">Pompy ciepła</a> najlepiej pracują w systemach niskotemperaturowych, takich jak ogrzewanie podłogowe. <strong>Większy zład wody</strong> zapewnia bardziej stabilne działanie systemu, ponieważ:</p>



<ul class="wp-block-list">
<li>Ogranicza konieczność częstych włączeń pompy ciepła, co zwiększa jej żywotność.</li>



<li>Zapewnia równomierną dystrybucję ciepła, co przekłada się na większy komfort użytkowania.</li>



<li>Działa jak magazyn ciepła, co jest szczególnie przydatne w przypadku zmiennych warunków pogodowych.</li>
</ul>



<p class="wp-block-paragraph">Jeśli masz pompę ciepła, warto rozważyć zastosowanie zbiornika buforowego, który zwiększy zład wody i poprawi efektywność systemu.</p>



<h3 class="wp-block-heading"><strong>Kocioł gazowy kondensacyjny – umiarkowany lub mały zład wody</strong>.</h3>



<p class="wp-block-paragraph">Kotły gazowe kondensacyjne charakteryzują się możliwością modulacji mocy grzewczej, co oznacza, że mogą dostosować swoją wydajność do aktualnego zapotrzebowania na ciepło. W takim przypadku&nbsp;<strong>mniejszy zład wody</strong>&nbsp;może być korzystny, ponieważ:</p>



<ul class="wp-block-list">
<li>Pozwala na szybszą reakcję systemu na zmiany temperatury.</li>



<li>Zmniejsza koszty inwestycyjne, ponieważ nie wymaga dużych rur ani zbiorników buforowych.</li>
</ul>



<p class="wp-block-paragraph">Jednak w przypadku większych budynków lub systemów z kilkoma strefami grzewczymi warto rozważyć nieco większy zład wody, aby zapewnić stabilność temperatury.</p>



<h3 class="wp-block-heading"><strong>Kocioł na paliwo stałe – większy zład wody</strong>.</h3>



<p class="wp-block-paragraph">Kotły na węgiel, drewno czy pellet wymagają&nbsp;<strong>większego zładu wody</strong>, aby zapewnić efektywną i stabilną pracę systemu. Większy zład wody:</p>



<ul class="wp-block-list">
<li>Ogranicza częstotliwość przegrzewania kotła, co zwiększa jego żywotność.</li>



<li>Zmniejsza konieczność częstego dokładania opału, co przekłada się na większy komfort użytkowania.</li>



<li>Działa jak bufor ciepła, magazynując energię i oddając ją stopniowo do systemu.</li>
</ul>



<p class="wp-block-paragraph">W przypadku kotłów na paliwo stałe zaleca się stosowanie zbiorników akumulacyjnych, które zwiększają zład wody i poprawiają efektywność systemu.</p>



<h2 class="wp-block-heading"><strong>Większy zład wody – zalety i wady</strong>.</h2>



<h3 class="wp-block-heading"><strong>Zalety większego zładu wody</strong>.</h3>



<ol start="1" class="wp-block-list">
<li><strong>Stabilność temperatury</strong><br>Większy zład wody zapewnia większą bezwładność cieplną systemu. Dzięki temu temperatura w pomieszczeniach jest bardziej stabilna, a system wolniej reaguje na zmiany zapotrzebowania na ciepło. To szczególnie ważne w przypadku ogrzewania podłogowego, które charakteryzuje się dużą bezwładnością.</li>



<li><strong>Efektywniejsza praca źródła ciepła</strong>.<br>Większy zład wody pozwala na dłuższą pracę kotła lub pompy ciepła w optymalnych warunkach. Zmniejsza to częstotliwość włączania i wyłączania urządzenia (tzw. praca cykliczna), co przekłada się na niższe zużycie energii i mniejsze obciążenie sprzętu.</li>



<li><strong>Lepsza dystrybucja ciepła</strong>.<br>Dzięki większemu zładowi wody ciepło jest równomierniej rozprowadzane po całym systemie, co zwiększa komfort użytkowania.</li>



<li><strong>Redukcja strat energii</strong>.<br>Większy zład wody działa jak magazyn ciepła, co jest szczególnie przydatne w przypadku źródeł ciepła o zmiennej wydajności, takich jak pompy ciepła czy kotły na paliwa stałe.</li>
</ol>



<h3 class="wp-block-heading"><strong>Wady większego zładu wody</strong>.</h3>



<ol start="1" class="wp-block-list">
<li><strong>Wolniejsza reakcja na zmiany</strong>.<br>Większy zład wody oznacza, że system wolniej reaguje na zmiany temperatury. Może to być problem w przypadku, gdy chcemy szybko dostosować temperaturę w pomieszczeniach.</li>



<li><strong>Wyższe koszty inwestycyjne</strong>.<br>Większy zład wody wymaga zastosowania większych rur, zbiorników buforowych lub akumulacyjnych, co może zwiększyć koszty instalacji.</li>
</ol>



<h2 class="wp-block-heading"><strong>Mniejszy zład wody – zalety i wady</strong>.</h2>



<h3 class="wp-block-heading"><strong>Zalety mniejszego zładu wody</strong>.</h3>



<ol start="1" class="wp-block-list">
<li><strong>Szybsza reakcja na zmiany</strong>.<br>Mniejszy zład wody pozwala na szybsze dostosowanie temperatury w pomieszczeniach. To szczególnie przydatne w systemach, gdzie priorytetem jest szybka reakcja na zmiany zapotrzebowania na ciepło.</li>



<li><strong>Niższe koszty inwestycyjne</strong>.<br>Mniejszy zład wody wymaga mniejszych rur i zbiorników, co może obniżyć koszty instalacji.</li>
</ol>



<h3 class="wp-block-heading"><strong>Wady mniejszego zładu wody</strong>.</h3>



<ol start="1" class="wp-block-list">
<li><strong>Mniejsza stabilność temperatury</strong>.<br>Mniejszy zład wody oznacza mniejszą bezwładność cieplną, co może prowadzić do częstszych wahań temperatury w pomieszczeniach.</li>



<li><strong>Gorsza współpraca z źródłem ciepła</strong>.<br>Mniejszy zład wody może powodować częstsze włączanie i wyłączanie kotła lub pompy ciepła, co zwiększa zużycie energii i obciążenie urządzeń.</li>



<li><strong>Nierównomierna dystrybucja ciepła</strong>.<br>Mniejszy zład wody może prowadzić do nierównomiernego rozprowadzania ciepła w systemie, co wpływa na komfort użytkowania.</li>
</ol>



<h2 class="wp-block-heading"><strong>Kiedy wybrać większy, a kiedy mniejszy zład wody?</strong></h2>



<h3 class="wp-block-heading"><strong>Większy zład wody sprawdzi się, gdy:</strong></h3>



<ul class="wp-block-list">
<li>Zależy Ci na stabilności temperatury w pomieszczeniach.</li>



<li>System ogrzewania podłogowego jest głównym źródłem ciepła w domu.</li>



<li>Korzystasz z pompy ciepła lub kotła na paliwa stałe, które wymagają stabilnych warunków pracy.</li>



<li>Chcesz zminimalizować koszty eksploatacji i zużycie energii.</li>
</ul>



<h3 class="wp-block-heading"><strong>Mniejszy zład wody sprawdzi się, gdy:</strong></h3>



<ul class="wp-block-list">
<li>System ogrzewania podłogowego jest uzupełniony innymi źródłami ciepła (np. grzejnikami).</li>



<li>Zależy Ci na szybkiej reakcji systemu na zmiany temperatury.</li>



<li>Chcesz obniżyć koszty inwestycyjne.</li>
</ul>



<h2 class="wp-block-heading"><strong>Jak obliczyć optymalny zład wody?</strong></h2>



<p class="wp-block-paragraph">Optymalny zład wody zależy od wielu czynników, takich jak:</p>



<ul class="wp-block-list">
<li>Powierzchnia ogrzewana,</li>



<li>Moc źródła ciepła,</li>



<li>Rodzaj zastosowanych <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rur</a>,</li>



<li>Izolacja termiczna budynku.</li>
</ul>



<p class="wp-block-paragraph">Warto <a href="https://projekt-ogrzewania.pl/kontakt/">skonsultować się z projektantem instalacji</a>, który dokładnie obliczy, jaki zład wody będzie najlepszy dla Twojego systemu.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1738227066103"><strong class="schema-faq-question"><strong>Czy większy zład wody w ogrzewaniu podłogowym jest zawsze lepszy?</strong></strong> <p class="schema-faq-answer">Nie zawsze. Większy zład wody zapewnia stabilność temperatury i lepszą współpracę z pompą ciepła oraz kotłami na paliwa stałe, ale może powodować wolniejszą reakcję na zmiany temperatury i zwiększyć koszty instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1738227077473"><strong class="schema-faq-question"><strong>Kiedy warto wybrać mniejszy zład wody?</strong></strong> <p class="schema-faq-answer">Mniejszy zład wody sprawdzi się w systemach z kotłami gazowymi kondensacyjnymi, gdzie priorytetem jest szybka reakcja na zmiany temperatury. Jest także korzystniejszy w budynkach o dobrze zaizolowanej konstrukcji.</p> </div> <div class="schema-faq-section" id="faq-question-1738227093567"><strong class="schema-faq-question"><strong>Jakie są zalety większego zładu wody?</strong></strong> <p class="schema-faq-answer">Większy zład wody zapewnia stabilną temperaturę, mniejsze zużycie energii, efektywniejszą pracę źródła ciepła oraz lepszą dystrybucję ciepła w instalacji ogrzewania podłogowego.</p> </div> <div class="schema-faq-section" id="faq-question-1738227108271"><strong class="schema-faq-question"><strong>Czy warto stosować zbiornik buforowy w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak, szczególnie jeśli system korzysta z pompy ciepła lub kotła na paliwa stałe. Bufor ciepła zwiększa zład wody, poprawiając stabilność i efektywność pracy całej instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1738227122152"><strong class="schema-faq-question"><strong>Jak obliczyć optymalny zład wody dla swojego domu?</strong></strong> <p class="schema-faq-answer">Obliczenie optymalnego zładu wody zależy od mocy źródła ciepła, powierzchni ogrzewanej, rodzaju rur oraz izolacji budynku. Najlepiej skonsultować się z projektantem instalacji, który dopasuje parametry systemu do indywidualnych potrzeb.</p> </div> </div>



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



<p class="wp-block-paragraph">Wybór między&nbsp;<strong>większym a mniejszym zładem wody</strong>&nbsp;w ogrzewaniu podłogowym zależy od indywidualnych potrzeb i warunków.&nbsp;<strong>Większy zład wody</strong>&nbsp;sprawdzi się w przypadku pomp ciepła i kotłów na paliwo stałe, zapewniając stabilność i efektywność systemu. Z kolei&nbsp;<strong>mniejszy zład wody</strong>&nbsp;może być korzystny w systemach z kotłami gazowymi kondensacyjnymi, gdzie priorytetem jest szybka reakcja na zmiany temperatury.</p>



<p class="wp-block-paragraph">Pamiętaj, że kluczem do sukcesu jest odpowiednie <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">zaprojektowanie instalacji grzewczej</a>, dlatego zawsze warto skonsultować się z doświadczonym specjalistą. Dzięki temu będziesz cieszyć się komfortowym i efektywnym ogrzewaniem podłogowym przez wiele lat.</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="UX276gAFgp"><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=N5DPqOrMQc#?secret=UX276gAFgp" data-secret="UX276gAFgp" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">Większy czy mniejszy zład wody w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
