<?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 Komfort cieplny - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/komfort-cieplny/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/komfort-cieplny/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 06 Jul 2026 12:39:28 +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 Komfort cieplny - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/komfort-cieplny/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>Sterowanie strefowe ogrzewaniem &#8211; czy warto?</title>
		<link>https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 11:58:52 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędny dom]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[inteligentny dom]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[siłowniki na rozdzielacz]]></category>
		<category><![CDATA[sterowanie strefowe ogrzewaniem]]></category>
		<category><![CDATA[termostaty pokojowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2994</guid>

					<description><![CDATA[<p>Inżynierski Punkt Widzenia Sterowanie strefowe ogrzewaniem – czy warto? Instalujesz nowoczesną pompę ciepła za kilkadziesiąt tysięcy złotych, a parametrami w całym domu ma sterować jeden tani termostat zawieszony w salonie? To prosta droga do przegrzanej sypialni, zimnej łazienki i zrujnowania żywotności sprężarki. Szybka odpowiedź: Czy warto? Zdecydowanie tak. Pełne sterowanie strefowe w domu powyżej 80&#8230;&#160;<a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/" rel="bookmark">Dowiedz się więcej &#187;<span class="screen-reader-text">Sterowanie strefowe ogrzewaniem &#8211; czy warto?</span></a></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe ogrzewaniem &#8211; czy warto?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light-blue: #f0f9ff;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray: #64748b;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-accent: #38bdf8;
}

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

/* Sekcja Nagłówkowa - Mocny Hook */
.rk-intro-header {
    padding: 45px 50px 40px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-intro-blue);
    position: relative;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-intro-accent);
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

.rk-intro-hook {
    font-size: 18px;
    font-weight: 700;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 800px;
    line-height: 1.6;
    border-left: 4px solid var(--rk-intro-red);
    padding-left: 20px;
    text-align: left;
    background: rgba(0,0,0,0.2);
    padding: 20px;
    border-radius: 0 12px 12px 0;
}

/* Szybka Odpowiedź (Quick Answer) */
.rk-intro-qa {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-intro-surface);
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-qa-box {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--rk-intro-border);
    background: #ffffff;
}

.rk-qa-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-qa-box p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0;
}

.rk-qa-box strong {
    color: var(--rk-intro-green);
    background: var(--rk-intro-surface);
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--rk-intro-border);
}

/* Interaktywne Spis Treści SVG */
.rk-intro-nav {
    padding: 40px;
    background: var(--rk-intro-surface);
}

.rk-nav-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    text-transform: uppercase;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-nav-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-nav-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 15px 20px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-nav-item:hover {
    border-color: var(--rk-intro-blue);
    transform: translateX(5px);
    color: var(--rk-intro-blue);
}

.rk-nav-icon {
    width: 32px;
    height: 32px;
    background: var(--rk-intro-light-blue);
    color: var(--rk-intro-blue);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Interaktywny Moduł Zalet */
.rk-intro-interactive {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-interactive-card {
    border: 2px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    background: var(--rk-intro-surface);
}

.rk-interactive-card.active {
    border-color: var(--rk-intro-blue);
    background: var(--rk-intro-light-blue);
    box-shadow: 0 10px 20px rgba(2, 132, 199, 0.1);
}

.rk-card-svg {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px auto;
}

.rk-interactive-card h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-interactive-card p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-intro-gray);
    line-height: 1.5;
}

/* Zmienne stany SVG (bez animacji - tylko kliknięcie) */
.svg-state-off { display: block; }
.svg-state-on { display: none; fill: var(--rk-intro-blue); }
.rk-interactive-card.active .svg-state-off { display: none; }
.rk-interactive-card.active .svg-state-on { display: block; }

@media (max-width: 768px) {
    .rk-intro-header, .rk-qa-box, .rk-intro-nav, .rk-intro-interactive { padding: 30px 20px; }
    .rk-intro-qa { grid-template-columns: 1fr; }
    .rk-qa-box { border-right: none; border-bottom: 1px solid var(--rk-intro-border); }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-hook { font-size: 16px; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Sterowanie strefowe ogrzewaniem – czy warto? Prawda o kosztach i komforcie",
    "description": "Zastanawiasz się, czy inwestować w sterowanie strefowe ogrzewaniem podłogowym? Odkryj inżynierskie fakty, wyliczenia ROI oraz wpływ automatyki na bezawaryjność instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "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-05",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-wstep",
    "name": "Zestawienie korzyści i zakresu wdrożenia sterowania strefowego",
    "description": "Baza wiedzy agregująca kluczowe parametry opłacalności: od oszczędności energii po asymetrię temperatur w poszczególnych strefach budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie strefowe ogrzewaniem czy warto",
      "automatyka do ogrzewania podłogowego opinie",
      "jeden termostat w domu czy strefy",
      "jak obniżyć koszty ogrzewania pompą ciepła",
      "asymetria temperatur podłogówka",
      "zdalne sterowanie ogrzewaniem wifi"
    ],
    "measurementTechnique": "Agregacja inżynierskich wskaźników zysku: redukcja kosztów rocznych o 18-23% w stosunku do instalacji jednoczujnikowej, podniesienie bezpieczeństwa hydraulicznego agregatu grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szybka odpowiedź: Pełne sterowanie strefowe to jedyny sposób na asymetrię temperatur (24°C łazienka, 18°C sypialnia).",
        "Oszczędności: Gwarancja redukcji rachunków o blisko 20% poprzez zarządzanie zyskami pasywnymi.",
        "Warunek techniczny: Automatyka musi być zintegrowana z hydraulicznym bilansem instalacji już na etapie projektu OZC."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-wstep",
    "name": "Interaktywny Przewodnik: Sterowanie Strefowe w Pigułce",
    "description": "Aplikacja wprowadzająca pozwalająca czytelnikowi na szybką nawigację po korzyściach i zagadnieniach technicznych artykułu poprzez interaktywne panele.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-widget" id="wstep-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Inżynierski Punkt Widzenia
        </div>
        <h2>Sterowanie strefowe ogrzewaniem – czy warto?</h2>
        <div class="rk-intro-hook">
            Instalujesz <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" style="color: #38bdf8;">nowoczesną pompę ciepła</a> za kilkadziesiąt tysięcy złotych, a parametrami w całym domu ma sterować jeden tani termostat zawieszony w salonie? To prosta droga do przegrzanej sypialni, zimnej łazienki i zrujnowania żywotności sprężarki.
        </div>
    </div>

    <div class="rk-intro-qa">
        <div class="rk-qa-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-green)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Szybka odpowiedź:
            </h3>
            <p>
                <strong>Czy warto? Zdecydowanie tak.</strong> Pełne sterowanie strefowe w domu powyżej 80 m² obniża koszty eksploatacyjne o <strong>18-23% rocznie</strong>. To jedyny system, który fizycznie gwarantuje asymetrię temperatur (przyjemne 24°C w łazience i zdrowe 18°C w sypialni).
                <br><br>
                Istnieje jednak twardy warunek: automatyka nie naprawi błędów układacza rur. System strefowy musi być zintegrowany z precyzyjnym <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczeniem OZC</a> i bilansem hydraulicznym.
            </p>
        </div>

        <div class="rk-intro-nav">
            <div class="rk-nav-title">Czego dowiesz się z tego artykułu:</div>
            <div class="rk-nav-list">
                <div class="rk-nav-item">
                    <div class="rk-nav-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                    Jak algorytmy TPI/PWM radzą sobie z potężną bezwładnością wylewki jastrychowej.
                </div>
                <div class="rk-nav-item">
                    <div class="rk-nav-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                    Dokładny kosztorys montażu i kalkulator zwrotu z inwestycji (ROI) na 2026 rok.
                </div>
                <div class="rk-nav-item">
                    <div class="rk-nav-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg></div>
                    Dlaczego podłączenie stref bez sprzęgła/bufora zniszczy Twoją pompę ciepła.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-intro-interactive">
        <h3 style="text-align: center; font-size: 22px; font-weight: 900; color: var(--rk-intro-dark); margin: 0 0 20px 0;">Odkryj 4 filary mądrej automatyki</h3>
        <p style="text-align: center; color: var(--rk-intro-gray); margin: 0 0 30px 0; font-size: 15px;">Kliknij kafelek, aby sprawdzić, co kryje się za inżynierskim podejściem do sterowania ogrzewaniem.</p>
        
        <div class="rk-interactive-grid">
            
            <div class="rk-interactive-card active" onclick="activateCard(this)">
                <svg class="rk-card-svg" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-dark)" stroke-width="1.5">
                    <rect x="3" y="4" width="18" height="18" rx="2" ry="2" class="svg-state-off"></rect>
                    <line x1="16" y1="2" x2="16" y2="6" class="svg-state-off"></line>
                    <line x1="8" y1="2" x2="8" y2="6" class="svg-state-off"></line>
                    <line x1="3" y1="10" x2="21" y2="10" class="svg-state-off"></line>
                    
                    <rect x="3" y="4" width="18" height="18" rx="2" ry="2" stroke="none" class="svg-state-on"></rect>
                    <path d="M8 14l3 3 5-5" stroke="#ffffff" stroke-width="2" class="svg-state-on" stroke-linecap="round"></path>
                </svg>
                <h4>Rytm Dobowy</h4>
                <p>System sam obniży temperaturę o 2°C, gdy wyjdziesz do pracy, tnąc rachunki bez ingerencji w Twój komfort popołudniowy.</p>
            </div>

            <div class="rk-interactive-card" onclick="activateCard(this)">
                <svg class="rk-card-svg" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-dark)" stroke-width="1.5">
                    <circle cx="12" cy="12" r="5" class="svg-state-off"></circle>
                    <line x1="12" y1="1" x2="12" y2="3" class="svg-state-off"></line>
                    <line x1="12" y1="21" x2="12" y2="23" class="svg-state-off"></line>
                    <line x1="4.22" y1="4.22" x2="5.64" y2="5.64" class="svg-state-off"></line>
                    <line x1="18.36" y1="18.36" x2="19.78" y2="19.78" class="svg-state-off"></line>
                    <line x1="1" y1="12" x2="3" y2="12" class="svg-state-off"></line>
                    <line x1="21" y1="12" x2="23" y2="12" class="svg-state-off"></line>
                    <line x1="4.22" y1="19.78" x2="5.64" y2="18.36" class="svg-state-off"></line>
                    <line x1="18.36" y1="5.64" x2="19.78" y2="4.22" class="svg-state-off"></line>

                    <circle cx="12" cy="12" r="8" stroke="none" class="svg-state-on"></circle>
                    <path d="M12 2v20M2 12h20M5 5l14 14" stroke="#ffffff" stroke-width="2" class="svg-state-on"></path>
                </svg>
                <h4>Zyski Pasywne</h4>
                <p>Słońce nagrzewa Twój salon przez wielkie okna? Strefa zamyka przepływ natychmiast, zatrzymując marnowanie pobieranej energii.</p>
            </div>

            <div class="rk-interactive-card" onclick="activateCard(this)">
                <svg class="rk-card-svg" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-dark)" stroke-width="1.5">
                    <path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" class="svg-state-off"></path>

                    <rect x="4" y="4" width="16" height="16" rx="4" stroke="none" class="svg-state-on"></rect>
                    <path d="M8 12h8M12 8v8" stroke="#ffffff" stroke-width="2" class="svg-state-on"></path>
                </svg>
                <h4>Bilans Hydrauliczny</h4>
                <p>Tylko mądre zaprogramowanie obciążeń <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">chroni podzespoły mechaniczne</a>. Inteligentne strefy zapobiegają dławieniu przepływów na rozdzielaczu.</p>
            </div>

            <div class="rk-interactive-card" onclick="activateCard(this)">
                <svg class="rk-card-svg" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-dark)" stroke-width="1.5">
                    <rect x="5" y="2" width="14" height="20" rx="2" ry="2" class="svg-state-off"></rect>
                    <line x1="12" y1="18" x2="12.01" y2="18" class="svg-state-off"></line>
                    <path d="M8 10h.01M12 10h.01M16 10h.01" class="svg-state-off" stroke-linecap="round"></path>

                    <rect x="5" y="2" width="14" height="20" rx="2" ry="2" stroke="none" class="svg-state-on"></rect>
                    <path d="M9 11l2 2 4-4" stroke="#ffffff" stroke-width="2" class="svg-state-on" stroke-linecap="round" stroke-linejoin="round"></path>
                    <line x1="12" y1="18" x2="12.01" y2="18" stroke="#ffffff" stroke-width="2" class="svg-state-on"></line>
                </svg>
                <h4>Pełna Kontrola (Smart)</h4>
                <p>Zarządzaj temperaturą i harmonogramem z poziomu smartfona. Dostosowuj klimat z dowolnego miejsca na Ziemi poprzez WiFi.</p>
            </div>

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

<script>
function activateCard(clickedCard) {
    // Usunięcie klasy active ze wszystkich kart
    const cards = document.querySelectorAll('.rk-interactive-card');
    cards.forEach(card => {
        card.classList.remove('active');
    });
    // Aktywacja klikniętej
    clickedCard.classList.add('active');
}
</script>



<style>
:root {
    --rk-ctrl-dark: #0f172a;
    --rk-ctrl-blue: #0284c7;
    --rk-ctrl-blue-light: #e0f2fe;
    --rk-ctrl-red: #ef4444;
    --rk-ctrl-red-light: #fef2f2;
    --rk-ctrl-green: #10b981;
    --rk-ctrl-gray: #64748b;
    --rk-ctrl-gray-light: #f1f5f9;
    --rk-ctrl-bg: #ffffff;
    --rk-ctrl-border: #e2e8f0;
}

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

/* Header */
.rk-ctrl-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-ctrl-border);
}

.rk-ctrl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-ctrl-blue);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

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

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

/* Interactive Simulator */
.rk-ctrl-app {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-ctrl-border);
}

/* Controls Panel */
.rk-ctrl-panel {
    padding: 35px 30px;
    background: var(--rk-ctrl-gray-light);
    border-right: 1px solid var(--rk-ctrl-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

.rk-ctrl-val {
    background: #ffffff;
    color: var(--rk-ctrl-blue);
    padding: 4px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 18px;
    font-weight: 900;
    border: 1px solid var(--rk-ctrl-border);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

/* Range Slider */
.rk-ctrl-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--rk-ctrl-blue) 0%, var(--rk-ctrl-red) 100%);
    outline: none;
    cursor: pointer;
}

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

.rk-ctrl-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

.rk-ctrl-status-box {
    background: #ffffff;
    border: 1px solid var(--rk-ctrl-border);
    border-radius: 12px;
    padding: 15px;
}

.rk-ctrl-status-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-ctrl-gray);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-ctrl-status-text {
    font-size: 15px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.3s;
}

.status-active { color: var(--rk-ctrl-red); }
.status-idle { color: var(--rk-ctrl-blue); }

/* SVG Viewer */
.rk-ctrl-viewer {
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    position: relative;
}

.rk-loop-svg {
    width: 100%;
    max-width: 500px;
    height: auto;
    overflow: visible;
}

/* SVG Animations */
.anim-signal {
    stroke-dasharray: 8;
    animation: signalFlow 0.8s linear infinite;
    opacity: 0;
    transition: opacity 0.3s;
}

@keyframes signalFlow {
    to { stroke-dashoffset: -16; }
}

.anim-stem {
    transition: transform 0.5s ease-in-out;
}

.anim-heat {
    stroke-dasharray: 15;
    animation: heatFlow 1s linear infinite;
    opacity: 0;
    transition: opacity 0.5s;
}

@keyframes heatFlow {
    to { stroke-dashoffset: -30; }
}

/* Components Grid */
.rk-comp-section {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-ctrl-border);
}

.rk-comp-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ctrl-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

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

.rk-comp-card {
    background: var(--rk-ctrl-gray-light);
    border-left: 4px solid var(--rk-ctrl-blue);
    border-radius: 0 12px 12px 0;
    padding: 20px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rk-comp-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

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

.rk-comp-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-ctrl-gray);
}

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

.rk-comp-tag {
    display: inline-block;
    background: #ffffff;
    padding: 4px 8px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-ctrl-dark);
    margin-top: 10px;
    border: 1px solid var(--rk-ctrl-border);
}

@media (max-width: 768px) {
    .rk-ctrl-header, .rk-ctrl-panel, .rk-ctrl-viewer, .rk-comp-section { padding: 30px 20px; }
    .rk-ctrl-app { grid-template-columns: 1fr; }
    .rk-ctrl-panel { border-right: none; border-bottom: 1px solid var(--rk-ctrl-border); }
    .rk-ctrl-header h2 { font-size: 24px; }
    .rk-loop-svg { max-width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-dzialanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Czym jest sterowanie strefowe ogrzewaniem podłogowym i jak działa w praktyce?",
    "description": "Zrozumienie mechanizmu pętli regulacyjnej automatyki strefowej klasy A (norma PN-EN ISO 52120-1) na podstawie termostatów, listwy i siłowników termoelektrycznych.",
    "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-12-29",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-komponenty",
    "name": "Specyfikacja Komponentów Automatyki Strefowej",
    "description": "Zestawienie głównych elementów zamkniętej pętli regulacyjnej ogrzewania podłogowego, ich parametrów elektrycznych i wpływu na wydajność cieplną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 1264-4",
      "siłowniki termoelektryczne NC do rozdzielacza",
      "listwa sterująca do ogrzewania podłogowego",
      "histereza termostatu pokojowego",
      "zjawisko overshooting w podłogówce"
    ],
    "measurementTechnique": "Weryfikacja parametrów z normą PN-EN ISO 52120-1 dla klasy A, z uwzględnieniem dokładności termostatów (±0,1°C), asymetrii temperatur (4-6 K) oraz czasów reakcji siłowników NC (pobór 1-2W, czas otwarcia 3-5 min).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Termostaty pokojowe: Przewodowe (230V/bus) lub bezprzewodowe (ZigBee/868 MHz) z dokładnością do ±0,1°C.",
        "Listwa sterująca: Centralny mózg zarządzający pompą i sygnałem do kotła ze stykiem beznapięciowym.",
        "Siłowniki termoelektryczne: Montowane na gwint M30x1,5, element PTC rozszerza wosk, otwierając przepływ 35°C/30°C.",
        "Zawory strefowe z siłownikami obrotowymi: Dla odcinania zasilania całych rozdzielaczy i kondygnacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-petla",
    "name": "Symulator Pętli Regulacyjnej",
    "description": "Interaktywny symulator procesu automatycznej regulacji wydajności cieplnej. Wizualizuje przepływ sygnału od czujnika pokojowego, przez listwę sterującą, aż do siłownika i otwarcia pętli grzewczej przy spadku temperatury.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ctrl-widget" id="dzialanie-app">
    <div class="rk-ctrl-header">
        <div class="rk-ctrl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Zasada Działania
        </div>
        <h2>Czym jest sterowanie strefowe ogrzewaniem podłogowym i jak działa w praktyce?</h2>
        <p>Sterowanie strefowe to proces zamykania i otwierania pętli grzewczych na podstawie sygnałów z lokalnych czujników. Eliminuje to zjawisko <em>overshooting</em> i pozwala na asymetrię temperatur (nawet 4-6 K) pomiędzy pokojami.</p>
    </div>

    <div class="rk-ctrl-app">
        <div class="rk-ctrl-panel">
            <div>
                <div class="rk-ctrl-label">
                    <span>Temp. w sypialni</span>
                    <span class="rk-ctrl-val" id="ctrlVal">18.5°C</span>
                </div>
                <input type="range" class="rk-ctrl-slider" id="ctrlSlider" min="16" max="22" step="0.1" value="18.5">
                <p style="font-size: 12px; color: var(--rk-ctrl-gray); margin-top: 10px;">Zmień temperaturę, aby zaobserwować reakcję pętli regulacyjnej. Nastawa termostatu: <strong>19.0°C</strong>.</p>
            </div>

            <div class="rk-ctrl-status-box">
                <div class="rk-ctrl-status-title">Status układu automatyki</div>
                <div class="rk-ctrl-status-text status-active" id="ctrlStatus">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    <span>Grzanie Aktywne (Siłownik ON)</span>
                </div>
            </div>
            
            <div class="rk-ctrl-status-box">
                <div class="rk-ctrl-status-title">Zasilanie pętli</div>
                <div class="rk-ctrl-status-text status-active" id="ctrlFlow">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    <span>Przepływ otwarty (35°C)</span>
                </div>
            </div>
        </div>

        <div class="rk-ctrl-viewer">
            <svg class="rk-loop-svg" viewBox="0 0 500 300" preserveAspectRatio="xMidYMid meet">
                <rect x="20" y="50" width="120" height="150" rx="10" fill="#f8fafc" stroke="#cbd5e1" stroke-width="3"/>
                <text x="80" y="80" font-family="Inter" font-weight="700" font-size="14" fill="#64748b" text-anchor="middle">Sypialnia</text>
                
                <rect x="55" y="110" width="50" height="60" rx="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/>
                <text x="80" y="145" font-family="Inter" font-weight="900" font-size="14" fill="#0f172a" text-anchor="middle" id="svgTemp">18.5</text>
                
                <path d="M 105 140 L 200 140" fill="none" stroke="#64748b" stroke-width="3"/>
                <path d="M 105 140 L 200 140" fill="none" stroke="#ef4444" stroke-width="3" id="animSignal" class="anim-signal"/>

                <rect x="200" y="100" width="80" height="80" rx="8" fill="#1e293b"/>
                <text x="240" y="145" font-family="Inter" font-weight="700" font-size="12" fill="#ffffff" text-anchor="middle">Listwa</text>
                <circle cx="240" cy="120" r="4" fill="#ef4444" id="ledMaster"/>

                <path d="M 280 140 L 360 140" fill="none" stroke="#64748b" stroke-width="3"/>
                <path d="M 280 140 L 360 140" fill="none" stroke="#ef4444" stroke-width="3" id="animPower" class="anim-signal"/>

                <rect x="340" y="180" width="140" height="30" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>
                <text x="410" y="200" font-family="Inter" font-weight="700" font-size="12" fill="#475569" text-anchor="middle">Rozdzielacz</text>
                
                <path d="M 380 210 L 380 280 Q 380 290 390 290 L 460 290" fill="none" stroke="#e2e8f0" stroke-width="12"/>
                <path d="M 380 210 L 380 280 Q 380 290 390 290 L 460 290" fill="none" stroke="#ef4444" stroke-width="8" id="animWater" class="anim-heat"/>

                <g transform="translate(360, 130)">
                    <rect x="0" y="0" width="40" height="40" rx="4" fill="#ffffff" stroke="#0f172a" stroke-width="3"/>
                    <text x="20" y="25" font-family="Inter" font-weight="800" font-size="12" fill="#0f172a" text-anchor="middle">NC</text>
                    <rect x="16" y="40" width="8" height="15" fill="#94a3b8" id="svgStem" class="anim-stem" transform="translate(0, -10)"/>
                </g>

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

    <div class="rk-comp-section">
        <h3>Podstawowe komponenty systemu strefowego</h3>
        <div class="rk-comp-grid">
            <div class="rk-comp-card">
                <h4>1. Termostaty pokojowe (Czujniki)</h4>
                <p>Zbierają odczyty temperatury operacyjnej z dokładnością <strong>±0,1°C</strong>. Mogą komunikować się bezprzewodowo (868 MHz / ZigBee) lub przewodowo (230V / bus) z <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">najwyższą precyzją</a>.</p>
            </div>

            <div class="rk-comp-card">
                <h4>2. Listwa sterująca (Centrala)</h4>
                <p>Mózg całego systemu ukryty w szafce. Przetwarza sygnały od termostatów, przekaźnikiem beznapięciowym uruchamia źródło ciepła i włącza pompę obiegową.</p>
                <div class="rk-comp-tag">Zasilanie 230V</div>
            </div>

            <div class="rk-comp-card">
                <h4>3. Siłowniki termoelektryczne</h4>
                <p>Nakręcane na gwint <strong>M30x1,5</strong> zaworów rozdzielacza. Typ NC (Normalnie Zamknięty) posiada element PTC, który pod wpływem prądu rozgrzewa wosk i unosi trzpień, <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">otwierając przepływ wody</a>.</p>
                <div class="rk-comp-tag">Pobór mocy 1-2W</div>
            </div>

            <div class="rk-comp-card">
                <h4>4. Zawory strefowe obrotowe</h4>
                <p>Stosowane w większych instalacjach na głównych podejściach do <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczy podłogówki</a>. Odcinają zasilanie całych kondygnacji w przypadku braku zapotrzebowania.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('ctrlSlider');
    const valDisplay = document.getElementById('ctrlVal');
    const svgTemp = document.getElementById('svgTemp');
    
    // Status Elements
    const ctrlStatus = document.getElementById('ctrlStatus');
    const ctrlFlow = document.getElementById('ctrlFlow');
    
    // Animation Elements
    const animSignal = document.getElementById('animSignal');
    const animPower = document.getElementById('animPower');
    const ledMaster = document.getElementById('ledMaster');
    const svgStem = document.getElementById('svgStem');
    const animWater = document.getElementById('animWater');

    // Hysteresis State logic
    // Target is 19.0°C. 
    // Turn ON if drops below 18.5°C
    // Turn OFF if reaches >= 19.0°C
    let isHeating = true; // start with heating ON at 18.5

    function updateSystem() {
        const temp = parseFloat(slider.value);
        valDisplay.textContent = temp.toFixed(1) + "°C";
        svgTemp.textContent = temp.toFixed(1);

        // Hysteresis Logic
        if (temp >= 19.0) {
            isHeating = false;
        } else if (temp < 18.5) {
            isHeating = true;
        }

        if (isHeating) {
            // State: ACTIVE
            ctrlStatus.className = "rk-ctrl-status-text status-active";
            ctrlStatus.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg><span>Grzanie Aktywne (Siłownik ON)</span>`;
            
            ctrlFlow.className = "rk-ctrl-status-text status-active";
            ctrlFlow.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg><span>Przepływ otwarty (35°C)</span>`;

            // Turn on SVG animations
            animSignal.style.opacity = '1';
            animPower.style.opacity = '1';
            ledMaster.setAttribute('fill', '#ef4444');
            svgStem.style.transform = 'translate(0, -10px)'; // Stem up (valve open)
            animWater.style.opacity = '1';
            
            valDisplay.style.color = 'var(--rk-ctrl-red)';
            valDisplay.style.borderColor = 'rgba(239, 68, 68, 0.4)';

        } else {
            // State: IDLE
            ctrlStatus.className = "rk-ctrl-status-text status-idle";
            ctrlStatus.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg><span>Brak Zapotrzebowania (IDLE)</span>`;
            
            ctrlFlow.className = "rk-ctrl-status-text status-idle";
            ctrlFlow.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg><span>Zawór zamknięty sprężyną</span>`;

            // Turn off SVG animations
            animSignal.style.opacity = '0';
            animPower.style.opacity = '0';
            ledMaster.setAttribute('fill', '#64748b');
            svgStem.style.transform = 'translate(0, 0px)'; // Stem down (valve closed)
            animWater.style.opacity = '0';
            
            valDisplay.style.color = 'var(--rk-ctrl-blue)';
            valDisplay.style.borderColor = 'rgba(2, 132, 199, 0.2)';
        }
    }

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



<style>
:root {
    --rk-sch-dark: #0f172a;
    --rk-sch-blue: #0284c7;
    --rk-sch-light-blue: #f0f9ff;
    --rk-sch-red: #ef4444;
    --rk-sch-green: #10b981;
    --rk-sch-gray: #64748b;
    --rk-sch-border: #e2e8f0;
    --rk-sch-bg: #ffffff;
    --rk-sch-surface: #f8fafc;
    --rk-sch-accent: #38bdf8;
}

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

/* Sekcja Nagłówkowa */
.rk-sch-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-sch-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-sch-blue);
}

.rk-sch-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-sch-accent);
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Interaktywny Moduł ze Schematem */
.rk-sch-app {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: var(--rk-sch-surface);
    border-bottom: 1px solid var(--rk-sch-border);
}

/* Lewa Kolumna - Obraz */
.rk-sch-img-col {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-sch-border);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-sch-img {
    width: 100%;
    max-width: 600px;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    border: 1px solid rgba(2, 132, 199, 0.1);
    transition: transform 0.3s ease;
}

/* Prawa Kolumna - Nawigacja i Treść */
.rk-sch-nav-col {
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-sch-nav-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sch-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-sch-btn {
    padding: 15px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-sch-border);
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-sch-btn:hover {
    border-color: var(--rk-sch-blue);
    transform: translateX(-5px);
}

.rk-sch-btn.active {
    background: var(--rk-sch-light-blue);
    border-color: var(--rk-sch-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.1);
}

.rk-sch-btn-icon {
    width: 32px;
    height: 32px;
    background: var(--rk-sch-surface);
    color: var(--rk-sch-gray);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

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

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

/* Dynamiczny Opis */
.rk-sch-desc-box {
    margin-top: 15px;
    background: #ffffff;
    border: 2px solid var(--rk-sch-blue);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.1);
    min-height: 220px;
}

.rk-sch-desc-content {
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

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

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

.rk-sch-desc-content h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sch-dark);
}

.rk-sch-desc-content p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rk-sch-desc-content a {
    color: var(--rk-sch-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.rk-sch-temp-tag {
    display: inline-block;
    background: var(--rk-sch-dark);
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 13px;
    font-weight: 700;
    margin-top: 5px;
}

/* Sekcja Teorii i Długiego Ogona */
.rk-sch-theory {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-sch-theory h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-sch-dark);
    margin: 0 0 20px 0;
}

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

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

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

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

@media (max-width: 768px) {
    .rk-sch-header, .rk-sch-img-col, .rk-sch-nav-col, .rk-sch-theory { padding: 30px 20px; }
    .rk-sch-app { grid-template-columns: 1fr; }
    .rk-sch-img-col { border-right: none; border-bottom: 1px solid var(--rk-sch-border); }
    .rk-sch-header h2 { font-size: 24px; }
    .rk-sch-desc-box { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-schemat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Schemat instalacji sterowania strefowego – jak połączyć rozdzielacz z automatyką?",
    "description": "Interaktywny schemat podłączenia ogrzewania podłogowego. Zobacz jak zintegrować termostaty bezprzewodowe, listwę centralną, pompę obiegową i siłowniki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Sterowanie-strefowe-ogrzewaniem-schemat.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-schemat",
    "name": "Parametry robocze układu strefowego wg schematu",
    "description": "Zestawienie topologii połączeń bezprzewodowych oraz asymetrii temperatur wyjściowych dla poszczególnych pętli ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat podłączenia ogrzewania podłogowego",
      "jak podłączyć siłowniki do listwy sterującej",
      "bezprzewodowe sterowanie podłogówką schemat",
      "schemat podłączenia pompy obiegowej do listwy",
      "topologia układu strefowego podłogówki"
    ],
    "measurementTechnique": "Analiza schematu ideowego prezentującego zróżnicowanie nastaw termostatów w 4 niezależnych strefach termicznych (19.5°C, 20.0°C, 21.0°C, 23.0°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Termostaty pokojowe (WiFi): Ustawiają niezależne parametry od 19.5°C (sypialnia) do 23.0°C (łazienka).",
        "Listwa (Master): Odbiera sygnał RF i dystrybuuje napięcie 230V na siłowniki oraz pompę obiegową.",
        "Rozdzielacz z siłownikami NC: Fizyczne dławienie lub otwieranie przepływu czynnika grzewczego w pętlach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-schemat",
    "name": "Interaktywny Schemat Podłączenia Automatyki",
    "description": "Aplikacja wizualna pozwalająca użytkownikowi na interaktywną analizę poszczególnych węzłów schematu instalacji ogrzewania podłogowego (źródło ciepła, rozdzielacz, termostaty).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sch-widget" id="schemat-interaktywny-app">
    <div class="rk-sch-header">
        <div class="rk-sch-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Topologia Instalacji
        </div>
        <h2>Schemat sterowania strefowego – jak połączyć rozdzielacz z automatyką?</h2>
        <p>Zrozumienie układu to fundament poprawnego wykonawstwa. Przedstawiony schemat obrazuje kompletną, bezprzewodową architekturę systemu, gwarantującą pełną asymetrię temperatur.</p>
    </div>

    <div class="rk-sch-app">
        <div class="rk-sch-img-col">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Sterowanie-strefowe-ogrzewaniem-schemat.webp" alt="Schemat podłączenia sterowania strefowego ogrzewania podłogowego - listwa, rozdzielacz, termostaty" class="rk-sch-img" id="schematImg">
        </div>

        <div class="rk-sch-nav-col">
            <div class="rk-sch-nav-title">Analiza węzłów schematu</div>
            
            <button class="rk-sch-btn active" data-node="termostaty">
                <div class="rk-sch-btn-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <span class="rk-sch-btn-text">Termostaty (Asymetria)</span>
            </button>

            <button class="rk-sch-btn" data-node="listwa">
                <div class="rk-sch-btn-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <span class="rk-sch-btn-text">Listwa Centralna</span>
            </button>

            <button class="rk-sch-btn" data-node="rozdzielacz">
                <div class="rk-sch-btn-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="4" y1="9" x2="20" y2="9"></line><line x1="4" y1="15" x2="20" y2="15"></line><line x1="10" y1="3" x2="8" y2="21"></line><line x1="16" y1="3" x2="14" y2="21"></line></svg>
                </div>
                <span class="rk-sch-btn-text">Rozdzielacz i Siłowniki</span>
            </button>

            <button class="rk-sch-btn" data-node="pompa">
                <div class="rk-sch-btn-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <span class="rk-sch-btn-text">Pompa i Źródło Ciepła</span>
            </button>

            <div class="rk-sch-desc-box">
                
                <div id="desc-termostaty" class="rk-sch-desc-content active">
                    <h4>Asymetria temperatur (WiFi)</h4>
                    <p>Zwróć uwagę na prawą stronę schematu. Bezprzewodowe <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostaty pokojowe</a> żądają różnych nastaw: od <strong>19.5°C</strong> (np. sypialnia) do <strong>23.0°C</strong> (np. łazienka).</p>
                    <p>Czujniki te komunikują się drogą radiową z modułem odbiornika, eliminując potrzebę kucia ścian pod kable sygnałowe.</p>
                    <div class="rk-sch-temp-tag">19.5°C &rarr; 23.0°C</div>
                </div>

                <div id="desc-listwa" class="rk-sch-desc-content">
                    <h4>Główne centrum dowodzenia</h4>
                    <p>Czarna jednostka na schemacie to listwa sterująca (Master). Jej głównym zadaniem jest logiczne sparowanie sygnału z konkretnego termostatu z odpowiednim wyjściem prądowym (230V).</p>
                    <p>W momencie gdy termostat żąda ciepła, listwa podaje napięcie na <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownik termoelektryczny</a> konkretnej pętli.</p>
                </div>

                <div id="desc-rozdzielacz" class="rk-sch-desc-content">
                    <h4>Fizyczne otwarcie przepływu</h4>
                    <p>W dolnej prawej sekcji widać <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz podłogówki</a>. Siłowniki (czarne kostki na zaworach) otrzymują prąd z listwy i unoszą trzpienie.</p>
                    <p>Dzięki temu gorąca woda zasilająca (oznaczona kolorem czerwonym) może wpłynąć tylko do tych pętli grzewczych, w których temperatura spadła poniżej zadanej normy.</p>
                </div>

                <div id="desc-pompa" class="rk-sch-desc-content">
                    <h4>Sygnał do startu</h4>
                    <p>Listwa sterująca posiada moduł pompowy oraz styk beznapięciowy. Jeśli <strong>którakolwiek strefa</strong> wymaga grzania, listwa uruchamia <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> widoczną na czerwonej rurze zasilającej.</p>
                    <p>Gdy wszystkie termostaty osiągną temperaturę, listwa wyłącza pompę, oszczędzając energię elektryczną.</p>
                </div>

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

    <div class="rk-sch-theory">
        <h3>Praktyczne wytyczne do schematu instalacji</h3>
        <div class="rk-sch-grid">
            <div class="rk-sch-card">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sch-blue)" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Jak podłączyć pompę obiegową?
                </h4>
                <p>Na schemacie widać wyraźnie, że pompa jest wpięta szeregowo w układ zasilania (czerwona linia). <strong>Schemat podłączenia pompy obiegowej do listwy</strong> musi bezwzględnie przewidywać opóźnienie wyłączenia (tzw. wybieg pompy), aby odebrać resztkowe ciepło ze źródła, chroniąc kocioł lub bufor przed przegrzaniem.</p>
            </div>
            
            <div class="rk-sch-card">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sch-blue)" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Bezprzewodowe sterowanie podłogówką
                </h4>
                <p>Kropkowane linie oznaczają komunikację bez kabli. To idealne rozwiązanie przy modernizacji (remoncie). Wymaga jednak montażu centralnej listwy w pobliżu źródła zasilania 230V, od której wyprowadzane są już standardowe, fizyczne kable (najczęściej 2&#215;0.75 mm²) zasilające głowice na belce rozdzielacza.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-sch-btn');
    const contents = document.querySelectorAll('.rk-sch-desc-content');
    const img = document.getElementById('schematImg');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Czyszczenie aktywnej nawigacji
            btns.forEach(b => b.classList.remove('active'));
            contents.forEach(c => c.classList.remove('active'));

            // Ustawienie nowego stanu
            this.classList.add('active');
            const target = this.getAttribute('data-node');
            document.getElementById('desc-' + target).classList.add('active');

            // Mały efekt wizualny na obrazku przy kliknięciu (przyciągnięcie uwagi)
            img.style.transform = 'scale(0.98)';
            setTimeout(() => {
                img.style.transform = 'scale(1)';
            }, 150);
        });
    });
});
</script>



<style>
:root {
    --rk-save-dark: #0f172a;
    --rk-save-blue: #0284c7;
    --rk-save-light-blue: #f0f9ff;
    --rk-save-green: #10b981;
    --rk-save-green-bg: #dcfce7;
    --rk-save-yellow: #eab308;
    --rk-save-red: #ef4444;
    --rk-save-gray: #64748b;
    --rk-save-border: #e2e8f0;
    --rk-save-bg: #ffffff;
    --rk-save-surface: #f8fafc;
}

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

/* Nagłówek */
.rk-save-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-save-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-save-green);
}

.rk-save-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #34d399;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

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

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

.rk-save-header strong {
    color: var(--rk-save-green-bg);
}

/* Interaktywny Symulator */
.rk-save-app {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-save-surface);
    border-bottom: 1px solid var(--rk-save-border);
}

.rk-save-controls {
    padding: 40px 30px;
    background: #ffffff;
    border-right: 1px solid var(--rk-save-border);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-input-block {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

.rk-input-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-save-dark);
    line-height: 1.4;
}

.rk-val-box {
    background: var(--rk-save-light-blue);
    color: var(--rk-save-blue);
    padding: 4px 10px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 15px;
    font-weight: 700;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Slider */
.rk-temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-save-blue), var(--rk-save-red));
    outline: none;
    cursor: pointer;
}

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

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

/* Przełącznik */
.rk-toggle-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 32px;
    flex-shrink: 0;
}

.rk-toggle-switch input { opacity: 0; width: 0; height: 0; }

.rk-slider-round {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-save-gray);
    transition: .4s;
    border-radius: 34px;
}

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

input:checked + .rk-slider-round { background-color: var(--rk-save-yellow); }
input:checked + .rk-slider-round:before { transform: translateX(28px); }

/* Wyniki & Wizualizacja */
.rk-save-display {
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    position: relative;
}

.rk-stats-bar {
    display: flex;
    gap: 15px;
    width: 100%;
    margin-bottom: 25px;
}

.rk-stat-card {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-save-green);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.1);
}

.rk-stat-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-save-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-stat-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-save-green);
    font-family: monospace;
}

/* SVG Domu */
.rk-house-svg {
    width: 100%;
    max-width: 450px;
    height: auto;
    overflow: visible;
}

/* Animacje SVG */
.anim-sun { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); transform-origin: center; }
.sun-hidden { opacity: 0; transform: scale(0.5) translateY(-20px); }
.sun-visible { opacity: 1; transform: scale(1) translateY(0); }

.anim-ray { stroke-dasharray: 6; animation: shootRays 2s linear infinite; }
@keyframes shootRays { to { stroke-dashoffset: -12; } }

.room-temp-text { font-family: 'Inter', sans-serif; font-weight: 900; font-size: 22px; transition: fill 0.3s; }
.room-status-text { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 12px; fill: var(--rk-save-gray); transition: fill 0.3s; }

.anim-valve { transition: transform 0.3s; transform-origin: center; }
.valve-closed { fill: var(--rk-save-red); }
.valve-open { fill: var(--rk-save-green); }

/* Mechanizmy (Grid) */
.rk-mech-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-mech-section h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-save-dark);
    margin: 0 0 30px 0;
}

.rk-mech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
}

.rk-mech-card {
    background: var(--rk-save-surface);
    border: 1px solid var(--rk-save-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rk-mech-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    border-color: var(--rk-save-blue);
}

.rk-mech-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-save-light-blue);
    color: var(--rk-save-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.rk-mech-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-save-dark);
    line-height: 1.4;
}

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

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

/* Równanie OZC */
.rk-math-panel {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-save-green);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
    font-size: 14px;
    color: var(--rk-save-dark);
}

.rk-math-panel code {
    background: #ffffff;
    padding: 4px 8px;
    border-radius: 6px;
    color: var(--rk-save-green);
    font-weight: 900;
    border: 1px solid var(--rk-save-border);
}

@media (max-width: 768px) {
    .rk-save-header, .rk-save-controls, .rk-save-display, .rk-mech-section { padding: 30px 20px; }
    .rk-save-app { grid-template-columns: 1fr; }
    .rk-save-controls { border-right: none; border-bottom: 1px solid var(--rk-save-border); gap: 20px; }
    .rk-stats-bar { flex-direction: column; gap: 10px; }
    .rk-save-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-oszczednosci",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Ile można zaoszczędzić na ogrzewaniu podłogowym dzięki automatyce strefowej?",
    "description": "Dowiedz się, jak automatyka strefowa generuje od 18% do 23% oszczędności dzięki redukcji temperatury, harmonogramom i wykorzystaniu zysków pasywnych z nasłonecznienia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-oszczednosci",
    "name": "Analiza Oszczędności Eksploatacyjnych Ogrzewania Strefowego",
    "description": "Zestawienie mechanizmów redukcji kosztów eksploatacyjnych w oparciu o wytyczne normy PN-EN 12831 oraz wpływ zysków pasywnych na bilans cieplny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "redukcja strat ciepła przez przegrody",
      "pasywne zyski ciepła w salonie",
      "obniżanie temperatury w pomieszczeniach",
      "dobowy harmonogram ogrzewania podłogowego",
      "zużycie energii na ogrzewanie"
    ],
    "measurementTechnique": "Symulacja redukcji zapotrzebowania cieplnego w oparciu o różnicę temperatur (ΔT) między wnętrzem a otoczeniem, gdzie obniżenie o 1°C daje ok. 6% oszczędności, oraz kompensację 1,5-3,0 kW zysków słonecznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Redukcja temperatury: Trwałe obniżenie temperatury w sypialniach i garderobach z 22°C do 17°C zmniejsza transfer ciepła przez przegrody zewnętrzne.",
        "Zyski pasywne: Automatyka odcina obwody w strefach nasłonecznionych, zapobiegając przegrzewaniu wnętrz do 26°C.",
        "Profil dobowy: Obniżanie temperatury bazowej w godzinach 8:00-15:30 (nieobecność domowników) drastycznie tnie zużycie kilowatogodzin."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-oszczednosci",
    "name": "Symulator Oszczędności i Zysków Pasywnych",
    "description": "Narzędzie interaktywne pozwalające symulować procentowe i ilościowe (kWh) oszczędności energii wynikające z obniżenia temperatury w strefach nieużytkowych oraz aktywacji zysków słonecznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-save-widget" id="oszczednosci-app">
    <div class="rk-save-header">
        <div class="rk-save-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Efektywność Energetyczna
        </div>
        <h2>Ile można zaoszczędzić na ogrzewaniu podłogowym dzięki automatyce strefowej?</h2>
        <p>Wdrożenie pełnego systemu sterowania strefowego pozwala zmniejszyć roczne zużycie energii na cele grzewcze o <strong>18% do 23%</strong>. Sprawdź na symulatorze, jak fizyka budowli pracuje na Twój portfel.</p>
    </div>

    <div class="rk-save-app">
        <div class="rk-save-controls">
            
            <div class="rk-input-block">
                <div class="rk-input-header">
                    <span class="rk-input-title">Temperatura w nieużywanych strefach (np. sypialnie w dzień)</span>
                    <span class="rk-val-box" id="valTemp">22°C</span>
                </div>
                <input type="range" class="rk-temp-slider" id="slideTemp" min="17" max="22" step="0.5" value="22">
                <p style="font-size: 12px; color: var(--rk-save-gray); margin: 0;">Obniżenie o 1°C = ~6% mniejsze straty przez przegrody w danej strefie.</p>
            </div>

            <div class="rk-input-block">
                <div class="rk-input-header">
                    <span class="rk-input-title">Aktywuj pasywne zyski ciepła (Słońce w salonie)</span>
                    <label class="rk-toggle-switch">
                        <input type="checkbox" id="toggleSun">
                        <span class="rk-slider-round"></span>
                    </label>
                </div>
                <p style="font-size: 12px; color: var(--rk-save-gray); margin: 0;">Zamyka pętle w salonie, zapobiegając przegrzaniu do 26°C.</p>
            </div>

        </div>

        <div class="rk-save-display">
            <div class="rk-stats-bar">
                <div class="rk-stat-card">
                    <div class="rk-stat-title">Zaoszczędzona energia</div>
                    <div class="rk-stat-val" id="valKwh">0 <span style="font-size: 16px;">kWh/rok</span></div>
                </div>
                <div class="rk-stat-card">
                    <div class="rk-stat-title">Oszczędność kosztów</div>
                    <div class="rk-stat-val" id="valPln">0 <span style="font-size: 16px;">zł/rok</span></div>
                </div>
            </div>

            <svg class="rk-house-svg" viewBox="0 0 500 280" preserveAspectRatio="xMidYMid meet">
                <path d="M 20 120 L 250 20 L 480 120 L 480 260 L 20 260 Z" fill="#f8fafc" stroke="#e2e8f0" stroke-width="4" stroke-linejoin="round"/>
                <line x1="250" y1="20" x2="250" y2="260" stroke="#cbd5e1" stroke-width="4" stroke-dasharray="8 8"/>
                
                <text x="135" y="80" font-family="Inter" font-weight="800" font-size="14" fill="#64748b" text-anchor="middle">Sypialnia (Dzień)</text>
                <rect x="50" y="100" width="170" height="90" rx="12" fill="#ffffff" stroke="var(--rk-save-border)" stroke-width="2"/>
                <text id="svgTemp1" x="135" y="150" class="room-temp-text" fill="#ef4444" text-anchor="middle">22.0°C</text>
                <text id="svgStat1" x="135" y="175" class="room-status-text" text-anchor="middle">Marnowanie energii</text>
                
                <path id="pipe1" d="M 60 210 Q 135 210 135 240" fill="none" stroke="#ef4444" stroke-width="6" style="transition: stroke 0.3s;"/>
                <circle cx="135" cy="240" r="10" class="anim-valve valve-closed" id="valve1"/>
                
                <text x="365" y="80" font-family="Inter" font-weight="800" font-size="14" fill="#64748b" text-anchor="middle">Salon (Południe)</text>
                
                <g id="svgSunGroup" class="anim-sun sun-hidden" transform="translate(420, 60)">
                    <circle cx="0" cy="0" r="18" fill="#fef08a"/>
                    <path d="M -25 -25 L -10 -10 M 25 -25 L 10 -10 M -25 25 L -10 10 M 25 25 L 10 10" stroke="#facc15" stroke-width="3" class="anim-ray"/>
                </g>

                <rect x="280" y="100" width="170" height="90" rx="12" fill="#ffffff" stroke="var(--rk-save-border)" stroke-width="2"/>
                <text id="svgTemp2" x="365" y="150" class="room-temp-text" fill="#ef4444" text-anchor="middle">22.0°C</text>
                <text id="svgStat2" x="365" y="175" class="room-status-text" text-anchor="middle">Grzanie aktywne</text>
                
                <path id="pipe2" d="M 440 210 Q 365 210 365 240" fill="none" stroke="#ef4444" stroke-width="6" style="transition: stroke 0.3s;"/>
                <circle cx="365" cy="240" r="10" class="anim-valve valve-closed" id="valve2"/>
                
                <rect x="180" y="240" width="140" height="20" rx="6" fill="#1e293b"/>
                <text x="250" y="254" font-family="Inter" font-weight="700" font-size="10" fill="#ffffff" text-anchor="middle">Rozdzielacz</text>
            </svg>
        </div>
    </div>

    <div class="rk-mech-section">
        <h3>Mechanizmy generowania oszczędności eksploatacyjnych</h3>
        <div class="rk-mech-grid">
            <div class="rk-mech-card">
                <div class="rk-mech-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v2m0 4v.01"></path><path d="M5 19h14a2 2 0 0 0 1.84-2.92l-7-14a2 2 0 0 0-3.68 0l-7 14A2 2 0 0 0 5 19z"></path></svg>
                </div>
                <h4>Redukcja temperatury (Przegrody)</h4>
                <p>Obniżenie temperatury w garderobach i pustych sypialniach z 22°C do 17°C zmniejsza różnicę temperatur (ΔT) między wnętrzem a otoczeniem. Każdy 1°C w dół to <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">redukcja strat ciepła</a> o ok. 6%.</p>
            </div>
            
            <div class="rk-mech-card">
                <div class="rk-mech-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                </div>
                <h4>Zyski Pasywne (Słońce)</h4>
                <p>Słoneczny, zimowy dzień dostarcza do salonu 1,5-3,0 kW mocy. Automatyka odcina pętle, co zapobiega darmowemu tłoczeniu wody i chroni przed <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">przegrzaniem pomieszczenia do 26°C</a>.</p>
            </div>

            <div class="rk-mech-card">
                <div class="rk-mech-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <h4>Profil Dobowy (Harmonogram)</h4>
                <p>W systemach z programatorami można obniżyć temperaturę w strefie dziennej podczas pobytu domowników w pracy (8:00 &#8211; 15:30), ucinając <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">niepotrzebne zużycie energii grzewczej</a>.</p>
            </div>
        </div>

        <div class="rk-math-panel">
            <strong>Założenia symulacji (Norma PN-EN 12831):</strong> Dom o powierzchni 150 m², EU = 50 kWh/(m²·rok), baza zapotrzebowania 9000 kWh/rok. Średni wskaźnik oszczędności finansowych obliczono dla zróżnicowanych nośników energii (pompa ciepła vs kotły bezpośrednie), w przedziale <code>400 zł - 1200 zł / rok</code>.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // UI Elements
    const slideTemp = document.getElementById('slideTemp');
    const valTemp = document.getElementById('valTemp');
    const toggleSun = document.getElementById('toggleSun');
    
    // Results
    const valKwh = document.getElementById('valKwh');
    const valPln = document.getElementById('valPln');

    // SVG Elements
    const svgTemp1 = document.getElementById('svgTemp1');
    const svgStat1 = document.getElementById('svgStat1');
    const pipe1 = document.getElementById('pipe1');
    const valve1 = document.getElementById('valve1');

    const svgSunGroup = document.getElementById('svgSunGroup');
    const svgTemp2 = document.getElementById('svgTemp2');
    const svgStat2 = document.getElementById('svgStat2');
    const pipe2 = document.getElementById('pipe2');
    const valve2 = document.getElementById('valve2');

    // Base values
    const BASE_KWH = 9000; 
    const MAX_SAVINGS_PERCENT = 23; // 23%
    const MAX_PLN = 1200; // max pln savings

    function updateSimulation() {
        const currentTemp = parseFloat(slideTemp.value);
        const sunActive = toggleSun.checked;

        valTemp.textContent = currentTemp.toFixed(1) + "°C";

        // Logic calculations
        // Temp range is 22 down to 17 (diff of 5).
        // Let's say dropping 5 degrees gives 15% savings. So 3% per degree.
        const tempDrop = 22 - currentTemp;
        let percentSavings = tempDrop * 3.0; 
        
        // Sun adds 8% savings
        if(sunActive) {
            percentSavings += 8.0;
        }

        // Cap at 23%
        if(percentSavings > MAX_SAVINGS_PERCENT) percentSavings = MAX_SAVINGS_PERCENT;

        const savedKwh = Math.round(BASE_KWH * (percentSavings / 100));
        const savedPln = Math.round((percentSavings / MAX_SAVINGS_PERCENT) * MAX_PLN);

        // Update Text values
        valKwh.innerHTML = `${savedKwh} <span style="font-size: 16px;">kWh/rok</span>`;
        valPln.innerHTML = `${savedPln} <span style="font-size: 16px;">zł/rok</span>`;

        // Update SVG Room 1 (Bedroom)
        svgTemp1.textContent = currentTemp.toFixed(1) + "°C";
        if (currentTemp < 22) {
            svgTemp1.setAttribute('fill', '#0284c7');
            svgStat1.textContent = "Optymalizacja strat";
            pipe1.setAttribute('stroke', '#cbd5e1'); // pipe cool
            valve1.setAttribute('class', 'anim-valve valve-open'); // valve active but restricted (green)
        } else {
            svgTemp1.setAttribute('fill', '#ef4444');
            svgStat1.textContent = "Marnowanie energii";
            pipe1.setAttribute('stroke', '#ef4444'); // pipe hot
            valve1.setAttribute('class', 'anim-valve valve-closed'); // red (warning/closed conceptually in terms of savings, but let's use it as hot)
            // actually let's just make red=hot/waste, green=optimal/saving
        }

        // Update SVG Room 2 (Salon)
        if (sunActive) {
            svgSunGroup.setAttribute('class', 'anim-sun sun-visible');
            svgTemp2.textContent = "22.0°C"; // maintained via passive
            svgTemp2.setAttribute('fill', '#eab308');
            svgStat2.textContent = "Zawór zamknięty (Zyski pasywne)";
            pipe2.setAttribute('stroke', '#cbd5e1'); // heating off
            valve2.setAttribute('class', 'anim-valve valve-open'); // actually closed mechanically, let's just use green for "saving" state
            valve2.style.fill = '#10b981';
        } else {
            svgSunGroup.setAttribute('class', 'anim-sun sun-hidden');
            svgTemp2.textContent = "22.0°C";
            svgTemp2.setAttribute('fill', '#ef4444');
            svgStat2.textContent = "Grzanie aktywne";
            pipe2.setAttribute('stroke', '#ef4444');
            valve2.style.fill = '#ef4444'; // hot
        }
    }

    // Event listeners
    slideTemp.addEventListener('input', updateSimulation);
    toggleSun.addEventListener('change', updateSimulation);

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



<style>
:root {
    --rk-inertia-dark: #0f172a;
    --rk-inertia-blue: #0284c7;
    --rk-inertia-light-blue: #f0f9ff;
    --rk-inertia-red: #ef4444;
    --rk-inertia-red-bg: #fef2f2;
    --rk-inertia-green: #10b981;
    --rk-inertia-green-bg: #f0fdf4;
    --rk-inertia-gray: #64748b;
    --rk-inertia-border: #e2e8f0;
    --rk-inertia-bg: #ffffff;
    --rk-inertia-surface: #f8fafc;
}

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

/* Header */
.rk-inertia-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-inertia-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-inertia-blue);
}

.rk-inertia-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Interactive App area */
.rk-inertia-app {
    padding: 40px 50px;
    background: var(--rk-inertia-surface);
    border-bottom: 1px solid var(--rk-inertia-border);
}

.rk-inertia-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-inertia-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.rk-inertia-btn {
    flex: 1;
    padding: 15px;
    text-align: center;
    background: transparent;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-inertia-gray);
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-inertia-btn.active[data-algo="hysteresis"] {
    background: var(--rk-inertia-red-bg);
    color: var(--rk-inertia-red);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-inertia-btn.active[data-algo="tpi"] {
    background: var(--rk-inertia-green-bg);
    color: var(--rk-inertia-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* SVG Graph */
.rk-graph-container {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-inertia-border);
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    position: relative;
}

.rk-graph-svg {
    width: 100%;
    height: auto;
    max-height: 300px;
}

/* Animation classes */
.anim-wave {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawWave 3s ease-out forwards;
}

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

.graph-layer {
    display: none;
}

.graph-layer.active {
    display: block;
}

.rk-graph-overlay {
    margin-top: 20px;
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.6;
    transition: all 0.3s ease;
}

.overlay-red { background: var(--rk-inertia-red-bg); color: #991b1b; border: 1px solid #fca5a5; }
.overlay-green { background: var(--rk-inertia-green-bg); color: #065f46; border: 1px solid #86efac; }

/* Content Cards Grid */
.rk-inertia-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-card-box {
    background: var(--rk-inertia-surface);
    border: 1px solid var(--rk-inertia-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.rk-card-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    border-color: var(--rk-inertia-blue);
}

.rk-card-box h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-inertia-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-card-icon {
    width: 32px;
    height: 32px;
    background: var(--rk-inertia-light-blue);
    color: var(--rk-inertia-blue);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.rk-card-box p:last-child {
    margin: 0;
}

.rk-card-box a {
    color: var(--rk-inertia-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Custom code block for algorithm logic */
.rk-algo-block {
    background: var(--rk-inertia-dark);
    color: #e2e8f0;
    padding: 20px;
    border-radius: 12px;
    font-family: monospace;
    font-size: 13px;
    line-height: 1.5;
    margin-top: 15px;
    border-left: 4px solid var(--rk-inertia-red);
}

.rk-algo-block span { color: #f87171; }
.rk-algo-block .flow-arrow { color: var(--rk-inertia-blue); }

@media (max-width: 768px) {
    .rk-inertia-header, .rk-inertia-app, .rk-inertia-grid { padding: 30px 20px; }
    .rk-inertia-controls { flex-direction: column; gap: 10px; }
    .rk-inertia-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-bezwladnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Czy bezwładność cieplna podłogówki uniemożliwia sterowanie strefowe?",
    "description": "Wyjaśnienie wpływu bezwładności cieplnej jastrychu na sterowanie ogrzewaniem. Porównanie zwykłej histerezy termostatu z inteligentnym algorytmem PWM i TPI.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-bezwladnosc",
    "name": "Wpływ algorytmów na bezwładność cieplną posadzki (TPI vs Histereza)",
    "description": "Zestawienie techniczne wykazujące amplitudę wahań temperatur w wylewce betonowej o masie 150 kg/m² przy zastosowaniu różnych typów automatyki grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bezwładność cieplna podłogówki",
      "wylewka betonowa na ogrzewanie podłogowe",
      "ile czasu nagrzewa się podłogówka",
      "algorytm TPI PWM",
      "przegrzewanie pomieszczeń histereza",
      "czy warto montować sterowniki do ogrzewania podłogowego"
    ],
    "measurementTechnique": "Porównanie amplitudy wahań temperatury powietrza w czasie: dla klasycznej histerezy (odchylenia > 2°C) względem mikro-impulsów z algorytmu TPI ograniczających fluktuacje do ±0,1 K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność jastrychu: Czas reakcji wynosi od 2 do 4 godzin (masa ok. 150 kg/m² dla wylewki 6,5 cm).",
        "Błąd histerezy: Skutkuje przesterowaniem (overshooting) - posadzka oddaje ciepło długo po wyłączeniu termostatu.",
        "Algorytm TPI/PWM: Autouczenie się dynamiki budynku. Dawkuje ciepło (np. 12 min ON / 48 min OFF), minimalizując błąd."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-symulator-tpi",
    "name": "Symulator Algorytmów Sterowania: TPI vs Histereza",
    "description": "Wizualne narzędzie edukacyjne generujące wykresy wahań temperatury w czasie rzeczywistym, udowadniające wyższość algorytmów proporcjonalno-całkujących nad zwykłym termostatem.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-inertia-widget" id="bezwladnosc-app">
    <div class="rk-inertia-header">
        <div class="rk-inertia-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Dynamika Cieplna Budynku
        </div>
        <h2>Czy bezwładność cieplna podłogówki uniemożliwia sterowanie strefowe?</h2>
        <p>Wielu uważa, że gruba wylewka betonowa reaguje zbyt wolno na elektronikę. To prawda, ale tylko wtedy, gdy używasz przestarzałych termostatów. Poznaj fizykę stojącą za nowoczesnymi algorytmami.</p>
    </div>

    <div class="rk-inertia-app">
        <div class="rk-inertia-controls">
            <button class="rk-inertia-btn active" data-algo="hysteresis">
                Tani termostat (Histereza)
            </button>
            <button class="rk-inertia-btn" data-algo="tpi">
                Inteligentny sterownik (TPI / PWM)
            </button>
        </div>

        <div class="rk-graph-container">
            <svg class="rk-graph-svg" viewBox="0 0 800 300" preserveAspectRatio="xMidYMid meet">
                <line x1="50" y1="50" x2="750" y2="50" stroke="#e2e8f0" stroke-width="1"/>
                <line x1="50" y1="150" x2="750" y2="150" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="8 8"/>
                <line x1="50" y1="250" x2="750" y2="250" stroke="#e2e8f0" stroke-width="1"/>
                
                <text x="30" y="55" font-family="Inter" font-size="12" fill="#64748b" font-weight="700">24°C</text>
                <text x="30" y="155" font-family="Inter" font-size="12" fill="#0284c7" font-weight="800">22°C</text>
                <text x="30" y="255" font-family="Inter" font-size="12" fill="#64748b" font-weight="700">20°C</text>

                <text x="400" y="285" font-family="Inter" font-size="12" fill="#94a3b8" text-anchor="middle">Czas (Godziny) &rarr;</text>

                <g id="layer-hysteresis" class="graph-layer active">
                    <path d="M 50 150 Q 120 250, 200 150 T 350 50 T 500 150 T 650 250 T 750 150" fill="none" stroke="#ef4444" stroke-width="6" class="anim-wave"/>
                    <circle cx="350" cy="50" r="8" fill="#ffffff" stroke="#ef4444" stroke-width="3"/>
                    <text x="350" y="35" font-family="Inter" font-size="12" font-weight="800" fill="#ef4444" text-anchor="middle">Przegrzanie (Overshooting)</text>
                    
                    <circle cx="650" cy="250" r="8" fill="#ffffff" stroke="#ef4444" stroke-width="3"/>
                    <text x="650" y="275" font-family="Inter" font-size="12" font-weight="800" fill="#ef4444" text-anchor="middle">Niedogrzanie</text>
                </g>

                <g id="layer-tpi" class="graph-layer">
                    <path d="M 50 150 Q 100 160, 150 150 T 250 140 T 350 150 T 450 160 T 550 150 T 650 140 T 750 150" fill="none" stroke="#10b981" stroke-width="6" class="anim-wave"/>
                    
                    <rect x="100" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="200" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="300" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="400" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="500" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="600" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    <rect x="700" y="270" width="20" height="10" fill="#10b981" opacity="0.6"/>
                    
                    <text x="400" y="130" font-family="Inter" font-size="14" font-weight="800" fill="#10b981" text-anchor="middle">Idealna stabilność: ±0,1°C</text>
                </g>
            </svg>

            <div id="status-hysteresis" class="rk-graph-overlay overlay-red active">
                <strong>Problem: Zwykła histereza.</strong> Posadzka betonowa o grubości 6,5 cm waży ok. 150 kg/m² i działa jak potężny akumulator. Zanim ciepło dotrze do czujnika, beton gromadzi potężną dawkę energii, która uwalnia się długo po wyłączeniu termostatu, przebijając nastawę o ponad 2°C.
            </div>
            
            <div id="status-tpi" class="rk-graph-overlay overlay-green" style="display: none;">
                <strong>Rozwiązanie: Algorytm TPI/PWM.</strong> Sterownik "uczy się" dynamiki Twojego budynku. Zamiast czekać na wychłodzenie, wpuszcza <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">krótkie impulsy ciepła</a> (np. 12 minut grzania / 48 minut postoju). Posadzka oddaje ciepło równomiernie, gwarantując idealny komfort bez marnowania energii.
            </div>
        </div>
    </div>

    <div class="rk-inertia-grid">
        <div class="rk-card-box">
            <h3>
                <div class="rk-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                Fizyka Wylewki
            </h3>
            <p>
                <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Bezwładność cieplna płyty jastrychowej</a> nie uniemożliwia sterowania, lecz narzuca wyższe wymagania.
            </p>
            <p>
                Czas od włączenia przepływu do podniesienia temperatury na powierzchni o 1 K, wynosi w przypadku <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">klasycznej wylewki betonowej</a> od 2 do 4 godzin (tzw. <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">czas nagrzewania podłogówki</a>). Systemy on-off (zero-jedynkowe) są tu bezradne.
            </p>
        </div>

        <div class="rk-card-box">
            <h3>
                <div class="rk-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                Błąd Histerezy (&plusmn;0,5&deg;C)
            </h3>
            <p>Najtańsze <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostaty pokojowe</a> to destrukcja komfortu w podłogówce.</p>
            <div class="rk-algo-block">
                [ON przy 21.5°C] <br>
                <span class="flow-arrow">&darr;</span> Podłoga startuje <br>
                [OFF przy 22.0°C] <br>
                <span class="flow-arrow">&darr;</span> Jastrych oddaje skumulowane ciepło <br>
                <span>[BŁĄD: Pokój rośnie do 23.5°C]</span>
            </div>
        </div>

        <div class="rk-card-box" style="grid-column: 1 / -1;">
            <h3>
                <div class="rk-card-icon" style="background: var(--rk-inertia-green-bg); color: var(--rk-inertia-green);">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                Algorytmy PWM / TPI
            </h3>
            <p>
                Zaawansowane <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">sterowniki do ogrzewania podłogowego</a> dysponują funkcją autouczenia (TPI - Time Proportional and Integral).
            </p>
            <p>
                Zamiast czekać na osiągnięcie wartości docelowej, algorytm moduluje szerokość impulsu (PWM). Jeśli układ wie, że pokój nagrzewa się w określonym tempie, dawkuje energię otwierając siłowniki np. na 12 minut w pełnym cyklu godzinnym. Przez resztę czasu pokój dogrzewa się pasywnie z bezwładności jastrychu, co drastycznie ucina straty energetyczne źródła ciepła.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-inertia-btn');
    const layers = document.querySelectorAll('.graph-layer');
    const overlayHysteresis = document.getElementById('status-hysteresis');
    const overlayTpi = document.getElementById('status-tpi');

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

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

            // Resetowanie warstw grafiki i animacji
            layers.forEach(layer => {
                layer.classList.remove('active');
                // Restart animacji path
                const path = layer.querySelector('path');
                if(path) {
                    path.style.animation = 'none';
                    path.offsetHeight; /* trigger reflow */
                    path.style.animation = null; 
                }
            });

            // Wyświetlenie odpowiedniej grafiki i tekstu
            if (algo === 'hysteresis') {
                document.getElementById('layer-hysteresis').classList.add('active');
                overlayHysteresis.style.display = 'block';
                overlayTpi.style.display = 'none';
            } else {
                document.getElementById('layer-tpi').classList.add('active');
                overlayHysteresis.style.display = 'none';
                overlayTpi.style.display = 'block';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-src-dark: #0f172a;
    --rk-src-blue: #0284c7;
    --rk-src-light-blue: #f0f9ff;
    --rk-src-green: #10b981;
    --rk-src-red: #ef4444;
    --rk-src-orange: #f59e0b;
    --rk-src-gray: #64748b;
    --rk-src-border: #e2e8f0;
    --rk-src-bg: #ffffff;
    --rk-src-surface: #f8fafc;
}

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

/* Header */
.rk-src-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-src-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-src-blue);
}

.rk-src-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Simulator App */
.rk-src-app {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: var(--rk-src-surface);
    border-bottom: 1px solid var(--rk-src-border);
}

/* Lewy Panel - Wybór źródła */
.rk-src-nav {
    padding: 30px;
    border-right: 1px solid var(--rk-src-border);
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-src-btn {
    padding: 15px;
    border: 1px solid var(--rk-src-border);
    border-radius: 12px;
    background: var(--rk-src-surface);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-src-btn:hover {
    border-color: var(--rk-src-blue);
    transform: translateX(5px);
}

.rk-src-btn.active {
    background: var(--rk-src-light-blue);
    border-color: var(--rk-src-blue);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

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

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

/* Prawy Panel - Dane i Animacja */
.rk-src-content {
    padding: 30px 40px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    position: relative;
}

.rk-src-panel {
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

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

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

/* Parametry techniczne */
.rk-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-param-item {
    background: #ffffff;
    border: 1px solid var(--rk-src-border);
    padding: 15px;
    border-radius: 12px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-param-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-src-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-param-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-src-blue);
}

/* Tabela Techniczna */
.rk-tech-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    border: 1px solid var(--rk-src-border);
}

.rk-tech-table th, .rk-tech-table td {
    padding: 15px;
    text-align: left;
    border-bottom: 1px solid var(--rk-src-border);
    font-size: 14px;
}

.rk-tech-table th {
    background: var(--rk-src-dark);
    color: #ffffff;
    font-weight: 700;
}

.rk-tech-table tr:last-child td {
    border-bottom: none;
}

.rk-tech-table td strong {
    color: var(--rk-src-dark);
}

/* SVG Hydraulika */
.rk-hydraulic-svg {
    width: 100%;
    max-width: 400px;
    height: auto;
    margin: 0 auto 20px auto;
    display: block;
}

.anim-flow { stroke-dasharray: 8; animation: flowDash 1s linear infinite; }
.anim-flow-fast { stroke-dasharray: 8; animation: flowDash 0.3s linear infinite; }
@keyframes flowDash { to { stroke-dashoffset: -16; } }

.anim-pump-err { animation: shakePump 0.3s infinite alternate; }
@keyframes shakePump {
    0% { transform: translate(0, 0) scale(1); filter: drop-shadow(0 0 5px rgba(239,68,68,0.8)); }
    100% { transform: translate(2px, 2px) scale(1.05); filter: drop-shadow(0 0 15px rgba(239,68,68,1)); }
}

/* Sekcja Ryzyka */
.rk-risk-box {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-risk-alert {
    background: #fef2f2;
    border-left: 4px solid var(--rk-src-red);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
}

.rk-risk-alert h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-src-red);
    display: flex;
    align-items: center;
    gap: 10px;
}

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

/* Informacje z dołu */
.rk-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-info-card {
    background: var(--rk-src-surface);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-src-border);
}

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

.rk-info-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-src-gray);
}

.rk-info-card a {
    color: var(--rk-src-blue);
    font-weight: 700;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .rk-src-header, .rk-src-content, .rk-risk-box { padding: 25px 20px; }
    .rk-src-app { grid-template-columns: 1fr; }
    .rk-src-nav { border-right: none; border-bottom: 1px solid var(--rk-src-border); display: flex; flex-direction: column; gap: 10px; padding: 20px; }
    .rk-src-btn { padding: 12px; }
    .rk-param-grid, .rk-info-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-tech-table th, .rk-tech-table td { padding: 12px 10px; font-size: 13px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-zrodlo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Jak poprawnie dobrać automatykę strefową do pompy ciepła i kotła gazowego?",
    "description": "Techniczna analiza doboru automatyki strefowej do źródła ciepła. Dowiedz się, dlaczego pompa ciepła wymaga bufora i jak uniknąć zjawiska taktowania sprężarki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-wymagania",
    "name": "Wymagania Techniczne Źródeł Ciepła dla Automatyki Strefowej",
    "description": "Zestawienie parametrów hydraulicznych i komunikacyjnych dla pomp ciepła, kotłów gazowych oraz na pellet.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór automatyki strefowej",
      "minimalny przepływ dla pompy ciepła",
      "bufor ciepła dla pompy ciepła schemat",
      "zawór nadmiarowo-upustowy ABP",
      "taktowanie pompy ciepła"
    ],
    "measurementTechnique": "Określanie minimalnego przepływu (np. 600-1200 dm³/h dla pomp, 400-600 dm³/h dla gazu) oraz pojemności bufora (min. 10-15 dm³/kW) w relacji do protokołów komunikacyjnych (OpenTherm/Modbus).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Wymaga wysokiego przepływu i zastosowania bufora (min. 50-100 dm³) w układzie, by chronić przed taktowaniem i błędami flow error.",
        "Kocioł Gazowy: Wymaga komunikacji OpenTherm i zazwyczaj wystarczy mu zawór nadmiarowo-upustowy ABP.",
        "Kocioł na Pellet: Wymaga dużego bufora (300-500 dm³) pracującego jako sprzęgło."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-zrodla",
    "name": "Symulator Wymagań Źródła Ciepła",
    "description": "Interaktywny panel zestawiający wymogi techniczne (przepływ, zład, bufor) dla najpopularniejszych źródeł ciepła na rynku wraz z symulacją ryzyka hydraulicznego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-src-widget" id="zrodlo-app">
    <div class="rk-src-header">
        <div class="rk-src-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Specyfikacja Urządzeń
        </div>
        <h2>Jak dobrać automatykę strefową do źródła ciepła?</h2>
        <p>Bezmyślne odcinanie pętli przez siłowniki bez uwzględnienia wymogów producenta to najszybsza droga do uszkodzenia sprężarki. Wybierz źródło ciepła, aby poznać wymogi.</p>
    </div>

    <div class="rk-src-app">
        <div class="rk-src-nav">
            <div class="rk-src-btn active" data-src="pc">
                <div class="rk-src-btn-title">Pompa Ciepła</div>
                <div class="rk-src-btn-sub">Monoblok / Split</div>
            </div>
            <div class="rk-src-btn" data-src="gaz">
                <div class="rk-src-btn-title">Kocioł Gazowy</div>
                <div class="rk-src-btn-sub">Kondensacyjny</div>
            </div>
            <div class="rk-src-btn" data-src="pellet">
                <div class="rk-src-btn-title">Kocioł na Pellet</div>
                <div class="rk-src-btn-sub">Paliwa stałe</div>
            </div>
        </div>

        <div class="rk-src-content">
            
            <div id="src-pc" class="rk-src-panel active">
                <div class="rk-param-grid">
                    <div class="rk-param-item">
                        <div class="rk-param-label">Min. Przepływ Masowy</div>
                        <div class="rk-param-val">600 - 1200 dm³/h</div>
                    </div>
                    <div class="rk-param-item">
                        <div class="rk-param-label">Pojemność zładu / Bufor</div>
                        <div class="rk-param-val">Wymagany (Min. 50-100 dm³)</div>
                    </div>
                </div>

                <p style="font-size: 14px; color: #475569; margin-bottom: 15px;">
                    Pompy ciepła pracują najefektywniej przy stałym, wysokim przepływie masowym i niskiej temperaturze zasilania (<strong>30-35°C</strong>). Bezmyślne odcinanie pętli drastycznie zmniejsza przepływ, co powoduje błędy <strong>flow error</strong>.
                </p>

                <table class="rk-tech-table">
                    <tbody><tr>
                        <td><strong>Komunikacja:</strong></td>
                        <td>Protokół cyfrowy (Modbus) lub styk beznapięciowy</td>
                    </tr>
                    <tr>
                        <td><strong>Algorytm:</strong></td>
                        <td>Stała <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza</a> + korekta z czujnika pokojowego</td>
                    </tr>
                </tbody></table>
            </div>

            <div id="src-gaz" class="rk-src-panel">
                <div class="rk-param-grid">
                    <div class="rk-param-item">
                        <div class="rk-param-label">Min. Przepływ Masowy</div>
                        <div class="rk-param-val">400 - 600 dm³/h</div>
                    </div>
                    <div class="rk-param-item">
                        <div class="rk-param-label">Pojemność zładu / Bufor</div>
                        <div class="rk-param-val">Rzadko wymagany (Zawór ABP)</div>
                    </div>
                </div>

                <p style="font-size: 14px; color: #475569; margin-bottom: 15px;">
                    <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">Kocioł kondensacyjny</a> jest bardziej elastyczny. Dzięki palnikom modulowanym potrafi dostosować moc do zapotrzebowania, jednak przy zamknięciu większości stref nadal potrzebuje zachowania minimalnego obiegu wody.
                </p>

                <table class="rk-tech-table">
                    <tbody><tr>
                        <td><strong>Komunikacja:</strong></td>
                        <td>Protokół <strong>OpenTherm</strong> lub załącz/wyłącz</td>
                    </tr>
                    <tr>
                        <td><strong>Algorytm:</strong></td>
                        <td><a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Automatyka pogodowa</a> z płynną modulacją</td>
                    </tr>
                </tbody></table>
            </div>

            <div id="src-pellet" class="rk-src-panel">
                <div class="rk-param-grid">
                    <div class="rk-param-item">
                        <div class="rk-param-label">Min. Przepływ Masowy</div>
                        <div class="rk-param-val">Ochrona powrotu</div>
                    </div>
                    <div class="rk-param-item">
                        <div class="rk-param-label">Pojemność zładu / Bufor</div>
                        <div class="rk-param-val">Wymagany (Min. 300-500 dm³)</div>
                    </div>
                </div>

                <p style="font-size: 14px; color: #475569; margin-bottom: 15px;">
                    <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">Kotły stałopalne</a> nie posiadają możliwości nagłego wyłączenia płomienia. Z tego względu sterowanie strefowe musi opierać się na pobieraniu ciepła ze zładu zgromadzonego w dużym buforze-sprzęgle.
                </p>

                <table class="rk-tech-table">
                    <tbody><tr>
                        <td><strong>Komunikacja:</strong></td>
                        <td>Styk beznapięciowy (ładowanie bufora)</td>
                    </tr>
                    <tr>
                        <td><strong>Algorytm:</strong></td>
                        <td>Stała temp. na buforze + <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a> na dom</td>
                    </tr>
                </tbody></table>
            </div>

        </div>
    </div>

    <div class="rk-risk-box">
        <div class="rk-risk-alert">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Ryzyko braku zrównoważenia hydraulicznego
            </h3>
            <p>
                Jeśli zamontujesz siłowniki strefowe, a instalator nie wyreguluje rotametrów i nie zastosuje zaworu różnicy ciśnień (bypass), <strong>zamknięcie 8 z 10 pętli</strong> spowoduje skierowanie całej wydajności pompy do pozostałych 2 obwodów.
            </p>
        </div>

        <div class="rk-info-grid">
            <div class="rk-info-card">
                <h4>Szumy i uszkodzenia rur</h4>
                <p>Prędkość przepływu drastycznie wzrośnie, wywołując uciążliwe szumy hydrauliczne w podłodze oraz przekraczając dopuszczalną prędkość (0,6 m/s), co prowadzi do erozyjnego niszczenia rur <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">PEX/PERT</a>.</p>
            </div>
            <div class="rk-info-card">
                <h4>Taktowanie Pompy Ciepła</h4>
                <p>Agregat nie odda ciepła do zamkniętych pętli. Spowoduje to natychmiastowy wzrost temperatury powrotu i wyłączenie sprężarki ("taktowanie"), skracając jej żywotność o kilkadziesiąt procent.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-src-btn');
    const panels = document.querySelectorAll('.rk-src-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Czyszczenie klas
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja nowego stanu
            this.classList.add('active');
            const targetId = this.getAttribute('data-src');
            document.getElementById('src-' + targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-blue: #0284c7;
    --rk-roi-light-blue: #f0f9ff;
    --rk-roi-green: #10b981;
    --rk-roi-green-bg: #dcfce7;
    --rk-roi-gold: #eab308;
    --rk-roi-gold-bg: #fef9c3;
    --rk-roi-gray: #64748b;
    --rk-roi-border: #e2e8f0;
    --rk-roi-bg: #ffffff;
    --rk-roi-surface: #f8fafc;
}

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

/* Nagłówek */
.rk-roi-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-roi-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-roi-blue);
}

.rk-roi-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Interaktywny Kalkulator ROI */
.rk-roi-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-roi-surface);
    border-bottom: 1px solid var(--rk-roi-border);
}

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

.rk-input-wrap {
    margin-bottom: 30px;
}

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

.rk-price-tag {
    background: var(--rk-roi-gold-bg);
    color: #ca8a04;
    padding: 6px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    font-weight: 900;
    border: 1px solid #fde047;
}

/* Slider */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-roi-border);
    outline: none;
    cursor: pointer;
    margin-bottom: 10px;
}

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-roi-gold);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(234, 179, 8, 0.4);
    transition: transform 0.1s;
}

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

.rk-preset-btns {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}

.rk-preset-btn {
    flex: 1;
    padding: 10px;
    background: var(--rk-roi-surface);
    border: 1px solid var(--rk-roi-border);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-roi-gray);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-preset-btn:hover { background: #e2e8f0; }

/* Panel Wyników SVG */
.rk-roi-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    position: relative;
}

.rk-dashboard-card {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-roi-green);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.15);
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

.rk-dash-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-roi-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-dash-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-roi-green);
    font-family: monospace;
}

.rk-dash-sub {
    font-size: 16px;
    color: var(--rk-roi-dark);
    font-weight: 700;
}

/* Animacja Zwrotu (Złote Monety SVG) */
.rk-coins-svg {
    width: 100%;
    max-width: 250px;
    height: 120px;
    overflow: visible;
}

.anim-coin {
    transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.4s ease;
    transform-origin: center;
}

/* Tabela Kosztorysowa Grid */
.rk-cost-grid {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-cost-grid h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

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

.rk-cost-card {
    background: var(--rk-roi-surface);
    border: 1px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: transform 0.2s;
}

.rk-cost-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-roi-blue);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.rk-cost-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 15px auto;
    background: var(--rk-roi-light-blue);
    color: var(--rk-roi-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-cost-card h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 10px 0;
}

.rk-cost-card p {
    font-size: 13px;
    color: var(--rk-roi-gray);
    margin: 0 0 15px 0;
    line-height: 1.4;
}

.rk-cost-price {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-roi-blue);
    background: #ffffff;
    padding: 5px 10px;
    border-radius: 8px;
    border: 1px dashed var(--rk-roi-blue);
}

/* Moduł Obliczeń */
.rk-math-section {
    padding: 0 50px 40px;
    background: #ffffff;
}

.rk-math-box {
    background: var(--rk-roi-dark);
    border-radius: 16px;
    padding: 25px;
    color: #e2e8f0;
}

.rk-math-box h3 {
    color: #ffffff;
    font-size: 18px;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-math-line {
    font-family: monospace;
    font-size: 15px;
    margin-bottom: 10px;
    padding: 10px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    border-left: 3px solid var(--rk-roi-green);
    letter-spacing: 0.5px;
}

.rk-math-line strong {
    color: var(--rk-roi-green);
}

@media (max-width: 768px) {
    .rk-roi-header, .rk-roi-controls, .rk-roi-results, .rk-cost-grid, .rk-math-section { padding: 30px 20px; }
    .rk-roi-app { grid-template-columns: 1fr; }
    .rk-roi-controls { border-right: none; border-bottom: 1px solid var(--rk-roi-border); }
    .rk-roi-header h2 { font-size: 24px; }
    .rk-cards-wrapper { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-roi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Ile kosztuje kompletny system sterowania strefowego? Analiza wydatków i ROI",
    "description": "Kalkulator ROI i szczegółowy kosztorys systemu sterowania strefowego ogrzewaniem podłogowym na 2026 rok. Sprawdź opłacalność dla pompy ciepła i kotła elektrycznego.",
    "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-12-29",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-roi",
    "name": "Wskaźniki Rentowności Automatyki Strefowej (ROI 2026)",
    "description": "Szczegółowe dane kosztowe i eksploatacyjne systemu sterowania dla domu 150m2 w 2026 roku z podziałem na komponenty.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena sterowania strefowego",
      "koszt automatyki do ogrzewania podłogowego",
      "zwrot z inwestycji ROI",
      "oszczędności na ogrzewaniu podłogowym",
      "termostaty pokojowe cena"
    ],
    "measurementTechnique": "Obliczanie Okresu Zwrotu (Payback Period): Podział kosztu inwestycyjnego (4000 zł) przez iloczyn zaoszczędzonej energii (20% z 9000 kWh = 1800 kWh) i jednostkowego kosztu energii (G11 vs G12w).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt kompletny przewodowy: ok. 3800 zł brutto z montażem.",
        "Koszt wariantu bezprzewodowego: ok. 5600 zł brutto z montażem.",
        "Średni roczny uzysk (oszczędność energii końcowej): 1800 kWh."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-roi",
    "name": "Kalkulator Zwrotu z Inwestycji w Sterowanie Strefowe (ROI)",
    "description": "Interaktywny kalkulator finansowy wyliczający roczne oszczędności (PLN) oraz czas zwrotu w latach na podstawie taryfy energetycznej.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="roi-calc-app">
    <div class="rk-roi-header">
        <div class="rk-roi-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Ekonomiczna
        </div>
        <h2>Ile kosztuje kompletny system strefowy? (ROI)</h2>
        <p>Sprawdź, kiedy inwestycja w inteligentną automatykę dla domu 150 m² zwróci się w Twoim portfelu dzięki obniżeniu zużycia energii o 20%.</p>
    </div>

    <div class="rk-roi-app">
        <div class="rk-roi-controls">
            <div class="rk-input-wrap">
                <div class="rk-input-label">
                    <span>Koszt 1 kWh energii grzewczej</span>
                    <span class="rk-price-tag" id="valPrice">0.95 zł</span>
                </div>
                <input type="range" class="rk-slider" id="slidePrice" min="0.20" max="1.50" step="0.01" value="0.95">
                
                <div class="rk-preset-btns">
                    <button class="rk-preset-btn" onclick="setPrice(0.32)">Pompa Ciepła (G12w)</button>
                    <button class="rk-preset-btn" onclick="setPrice(0.95)">Kocioł Elektryczny (G11)</button>
                </div>
            </div>
            <p style="font-size: 13px; color: var(--rk-roi-gray); line-height: 1.5; margin: 0;">
                *Obliczenia bazują na założeniu: dom 150 m², zapotrzebowanie 9000 kWh/rok, oszczędność z automatyki 20% (1800 kWh), koszt instalacji ok. 4000 zł.
            </p>
        </div>

        <div class="rk-roi-results">
            <div class="rk-dashboard-card">
                <div class="rk-dash-title">Okres zwrotu z inwestycji (ROI)</div>
                <div class="rk-dash-val"><span id="valYears">2.3</span> <span class="rk-dash-sub">lat</span></div>
            </div>
            
            <div style="font-size: 14px; color: var(--rk-roi-gray); margin-bottom: 15px; font-weight: 700;">Zaoszczędzona gotówka co roku:</div>
            
            <svg class="rk-coins-svg" viewBox="0 0 250 120">
                <g class="anim-coin" id="coinStack1" transform="translate(40, 100)">
                    <ellipse cx="25" cy="0" rx="25" ry="10" fill="#facc15" stroke="#ca8a04" stroke-width="2"/>
                    <path d="M 0 0 L 0 -15 A 25 10 0 0 0 50 -15 L 50 0 A 25 10 0 0 1 0 0" fill="#fde047" stroke="#ca8a04" stroke-width="2"/>
                    <ellipse cx="25" cy="-15" rx="25" ry="10" fill="#fef08a" stroke="#ca8a04" stroke-width="2"/>
                    
                    <path d="M 0 -15 L 0 -30 A 25 10 0 0 0 50 -30 L 50 -15 A 25 10 0 0 1 0 -15" fill="#fde047" stroke="#ca8a04" stroke-width="2"/>
                    <ellipse cx="25" cy="-30" rx="25" ry="10" fill="#fef08a" stroke="#ca8a04" stroke-width="2"/>
                </g>
                <g class="anim-coin" id="coinStack2" transform="translate(100, 100)">
                    <ellipse cx="25" cy="0" rx="25" ry="10" fill="#facc15" stroke="#ca8a04" stroke-width="2"/>
                    <path d="M 0 0 L 0 -15 A 25 10 0 0 0 50 -15 L 50 0 A 25 10 0 0 1 0 0" fill="#fde047" stroke="#ca8a04" stroke-width="2"/>
                    <ellipse cx="25" cy="-15" rx="25" ry="10" fill="#fef08a" stroke="#ca8a04" stroke-width="2"/>
                </g>
                <g class="anim-coin" id="coinStack3" transform="translate(160, 100)">
                    <ellipse cx="25" cy="0" rx="25" ry="10" fill="#facc15" stroke="#ca8a04" stroke-width="2"/>
                    <path d="M 0 0 L 0 -15 A 25 10 0 0 0 50 -15 L 50 0 A 25 10 0 0 1 0 0" fill="#fde047" stroke="#ca8a04" stroke-width="2"/>
                    <ellipse cx="25" cy="-15" rx="25" ry="10" fill="#fef08a" stroke="#ca8a04" stroke-width="2"/>
                </g>
                
                <text x="125" y="40" font-family="monospace" font-weight="900" font-size="24" fill="#0f172a" text-anchor="middle" id="valSavings">+ 1710 zł</text>
            </svg>
        </div>
    </div>

    <div class="rk-cost-grid">
        <h3>Szczegółowy kosztorys inwestycyjny 2026</h3>
        <div class="rk-cards-wrapper">
            <div class="rk-cost-card">
                <div class="rk-cost-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <h4>Listwa Centralna</h4>
                <p>Moduł master (2 szt.) z obsługą pompy/kotła.</p>
                <div class="rk-cost-price">900 - 1500 zł</div>
            </div>
            <div class="rk-cost-card">
                <div class="rk-cost-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <h4>Termostaty</h4>
                <p>Programowalne czujniki pokojowe (8 stref).</p>
                <div class="rk-cost-price">960 - 2400 zł</div>
            </div>
            <div class="rk-cost-card">
                <div class="rk-cost-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h4>Siłowniki NC</h4>
                <p>Termoelektryczne głowice na pętle (12 szt.).</p>
                <div class="rk-cost-price">960 - 1440 zł</div>
            </div>
            <div class="rk-cost-card">
                <div class="rk-cost-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 18 22 12 16 6"></polyline><polyline points="8 6 2 12 8 18"></polyline></svg>
                </div>
                <h4>Materiały</h4>
                <p>Kable, montaż, testy i konfiguracja systemu.</p>
                <div class="rk-cost-price">500 - 1000 zł</div>
            </div>
        </div>
    </div>

    <div class="rk-math-section">
        <div class="rk-math-box">
            <h3>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-roi-green)" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
                Wyliczenie progu rentowności (Algorytm)
            </h3>
            <div class="rk-math-line">Oszczędności = 1800 kWh &times; <span id="mathPrice">0,95</span> zł/kWh = <strong><span id="mathSavings">1710</span> zł / rok</strong></div>
            <div class="rk-math-line">Okres zwrotu = 4000 zł &divide; <span id="mathSavings2">1710</span> zł/rok = <strong><span id="mathYears">2,34</span> roku</strong></div>
        </div>
    </div>
</div>

<script>
// Funkcja pomocnicza globalna dla przycisków
function setPrice(val) {
    document.getElementById('slidePrice').value = val;
    document.getElementById('slidePrice').dispatchEvent(new Event('input'));
}

document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('slidePrice');
    const valPrice = document.getElementById('valPrice');
    const valYears = document.getElementById('valYears');
    const valSavings = document.getElementById('valSavings');
    
    const mathPrice = document.getElementById('mathPrice');
    const mathSavings = document.getElementById('mathSavings');
    const mathSavings2 = document.getElementById('mathSavings2');
    const mathYears = document.getElementById('mathYears');

    const stack2 = document.getElementById('coinStack2');
    const stack3 = document.getElementById('coinStack3');

    function calculate() {
        const price = parseFloat(slider.value);
        valPrice.textContent = price.toFixed(2) + ' zł';
        
        // Obliczenia
        const savingsKwh = 1800;
        const totalCost = 4000;
        
        const yearlySavings = savingsKwh * price;
        const roi = totalCost / yearlySavings;

        // Aktualizacja DOM
        valYears.textContent = roi.toFixed(1);
        valSavings.textContent = '+ ' + Math.round(yearlySavings) + ' zł';
        
        mathPrice.textContent = price.toFixed(2).replace('.', ',');
        mathSavings.textContent = Math.round(yearlySavings);
        mathSavings2.textContent = Math.round(yearlySavings);
        mathYears.textContent = roi.toFixed(2).replace('.', ',');

        // Logika wizualna SVG (ilość monet zależna od oszczędności)
        if (yearlySavings < 700) {
            stack2.style.opacity = '0';
            stack2.style.transform = 'translate(100px, 150px)';
            stack3.style.opacity = '0';
            stack3.style.transform = 'translate(160px, 150px)';
        } else if (yearlySavings < 1200) {
            stack2.style.opacity = '1';
            stack2.style.transform = 'translate(100px, 100px)';
            stack3.style.opacity = '0';
            stack3.style.transform = 'translate(160px, 150px)';
        } else {
            stack2.style.opacity = '1';
            stack2.style.transform = 'translate(100px, 100px)';
            stack3.style.opacity = '1';
            stack3.style.transform = 'translate(160px, 100px)';
        }
    }

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



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light-blue: #f0f9ff;
    --rk-calc-red: #ef4444;
    --rk-calc-green: #10b981;
    --rk-calc-orange: #f59e0b;
    --rk-calc-gray: #64748b;
    --rk-calc-border: #e2e8f0;
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
}

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

/* Sekcja Nagłówkowa */
.rk-calc-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-calc-blue);
}

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Aplikacja - Interfejs */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-calc-surface);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Lewa Kolumna - Kontrolki */
.rk-calc-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-calc-border);
    background: #ffffff;
}

.rk-input-group {
    margin-bottom: 30px;
}

.rk-input-group:last-child {
    margin-bottom: 0;
}

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

.rk-val-display {
    background: var(--rk-calc-light-blue);
    color: var(--rk-calc-blue);
    padding: 4px 10px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Suwaki */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-calc-border);
    outline: none;
    cursor: pointer;
}

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

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

/* Przełączniki (Przyciski) */
.rk-btn-group {
    display: flex;
    gap: 10px;
    background: var(--rk-calc-surface);
    padding: 6px;
    border-radius: 12px;
    border: 1px solid var(--rk-calc-border);
}

.rk-btn-opt {
    flex: 1;
    padding: 10px 0;
    text-align: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-calc-gray);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-btn-opt.active {
    background: #ffffff;
    color: var(--rk-calc-blue);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Prawa Kolumna - Wyniki i Wizualizacja */
.rk-calc-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.rk-result-card {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-calc-blue);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

.rk-result-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-result-value {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    font-family: monospace;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-result-unit {
    font-size: 18px;
    color: var(--rk-calc-blue);
}

/* SVG Rotametr */
.rk-rotameter-wrapper {
    position: relative;
    height: 220px;
    width: 100px;
}

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

.anim-float {
    transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rk-pump-status {
    margin-top: 20px;
    padding: 12px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
}

.status-ok { background: var(--rk-calc-light-blue); color: var(--rk-calc-blue); border: 1px solid rgba(2, 132, 199, 0.2); }
.status-warn { background: #fef3c7; color: #b45309; border: 1px solid #fde047; }
.status-err { background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; }

/* Sekcja Teorii i Kroków */
.rk-theory-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-step-card {
    background: var(--rk-calc-surface);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
}

.rk-step-card::before {
    content: attr(data-step);
    position: absolute;
    top: -15px;
    left: 20px;
    width: 32px;
    height: 32px;
    background: var(--rk-calc-blue);
    color: #ffffff;
    font-weight: 900;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

.rk-step-card h3 {
    margin: 10px 0 12px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

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

.rk-step-card p:last-child {
    margin: 0;
}

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

.rk-math-box {
    background: #e2e8f0;
    padding: 10px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    color: var(--rk-calc-dark);
    margin: 15px 0;
    border: 1px dashed var(--rk-calc-gray);
}

/* CTA */
.rk-calc-cta {
    padding: 40px 50px;
    text-align: center;
    background: var(--rk-calc-surface);
    border-top: 1px solid var(--rk-calc-border);
}

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

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

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-results, .rk-theory-grid, .rk-calc-cta { padding: 30px 20px; }
    .rk-calc-app { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-calc-header h2 { font-size: 24px; }
    .rk-btn-huge { width: 100%; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Algorytm obliczeniowy: Jak krok po kroku zaprojektować przepływy w sterowaniu strefowym?",
    "description": "Inżynierski poradnik obliczania przepływów masowych, strumieni objętościowych oraz nastaw na rotametrach dla automatyki strefowej ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-przeplywy",
    "name": "Parametry Hydrauliczne i Przepływy Masowe dla Stref (PN-EN 12831)",
    "description": "Zestawienie wzorów i parametrów inżynierskich określających natężenie przepływu czynnika grzewczego w zależności od obciążenia cieplnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator doboru pompy obiegowej",
      "jak ustawić rotametry w ogrzewaniu podłogowym",
      "spadek temperatury zasilania i powrotu",
      "projektowe obciążenie cieplne ozc",
      "opór hydrauliczny pex"
    ],
    "measurementTechnique": "Obliczanie przepływu G = Q_obl / (70 * ΔT) z uwzględnieniem naddatku na sterowanie strefowe (współczynnik 1.15) oraz weryfikacja oporów dławienia dla pomp ze sterowaniem proporcjonalnym ciśnieniowo.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik korekcyjny strefowy: 1.15 na szybkie dogrzewanie stref po okresie obniżenia temperatury.",
        "Optymalny spadek temperatury dla posadzek: ΔT = 5K do 7K.",
        "Nastawa rotametru: Całkowity strumień strefy podzielony przez ilość pętli grzewczych w pomieszczeniu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-rotametry",
    "name": "Kalkulator Przepływów i Nastaw Rotametrów",
    "description": "Interaktywny symulator pozwalający na obliczenie wymaganej nastawy na rotametrze (w litrach na minutę) na podstawie strat ciepła pomieszczenia i różnicy temperatur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-widget" id="rotameter-calc-app">
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="14 2 18 6 7 17 3 17 3 13 14 2"></polygon><line x1="3" y1="22" x2="21" y2="22"></line></svg>
            Kalkulator Inżynierski
        </div>
        <h2>Algorytm obliczeniowy: Jak zaprojektować przepływy strefowe?</h2>
        <p>Projektowanie instalacji ze sterowaniem strefowym wymaga przeliczenia przepływów masowych i weryfikacji dławienia. Sprawdź, jaka powinna być nastawa rotametru dla wybranego pomieszczenia.</p>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            
            <div class="rk-input-group">
                <div class="rk-input-label">
                    <span>Strata ciepła pomieszczenia (Q)</span>
                    <span class="rk-val-display" id="valQ">850 W</span>
                </div>
                <input type="range" class="rk-range-slider" id="slideQ" min="200" max="2000" step="50" value="850">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-label">
                    <span>Spadek temperatury (&Delta;T)</span>
                </div>
                <div class="rk-btn-group" id="btnGroupDT">
                    <button class="rk-btn-opt active" data-val="5">5 K</button>
                    <button class="rk-btn-opt" data-val="7">7 K</button>
                    <button class="rk-btn-opt" data-val="10">10 K</button>
                </div>
            </div>

            <div class="rk-input-group">
                <div class="rk-input-label">
                    <span>Liczba pętli w pomieszczeniu</span>
                </div>
                <div class="rk-btn-group" id="btnGroupLoops">
                    <button class="rk-btn-opt" data-val="1">1 Pętla</button>
                    <button class="rk-btn-opt active" data-val="2">2 Pętle</button>
                    <button class="rk-btn-opt" data-val="3">3 Pętle</button>
                </div>
            </div>

        </div>

        <div class="rk-calc-results">
            <div class="rk-result-card">
                <div class="rk-result-title">Wymagana nastawa na rotametrze</div>
                <div class="rk-result-value">
                    <span id="outRota">1.40</span>
                    <span class="rk-result-unit">l/min</span>
                </div>
            </div>

            <div class="rk-rotameter-wrapper">
                <svg class="rk-rota-svg" viewBox="0 0 100 220" preserveAspectRatio="xMidYMid meet">
                    <rect x="25" y="10" width="50" height="200" rx="25" fill="#f0f9ff" stroke="#0284c7" stroke-width="4"/>
                    <line x1="25" y1="40" x2="40" y2="40" stroke="#94a3b8" stroke-width="2"/>
                    <text x="12" y="45" font-family="monospace" font-size="12" fill="#64748b">3</text>
                    
                    <line x1="25" y1="90" x2="35" y2="90" stroke="#94a3b8" stroke-width="2"/>
                    <text x="12" y="95" font-family="monospace" font-size="12" fill="#64748b">2</text>
                    
                    <line x1="25" y1="140" x2="40" y2="140" stroke="#94a3b8" stroke-width="2"/>
                    <text x="12" y="145" font-family="monospace" font-size="12" fill="#64748b">1</text>
                    
                    <line x1="25" y1="190" x2="35" y2="190" stroke="#94a3b8" stroke-width="2"/>
                    <text x="12" y="195" font-family="monospace" font-size="12" fill="#64748b">0</text>
                    
                    <g id="svgFloat" class="anim-float" transform="translate(0, 120)">
                        <polygon points="30,0 70,0 60,15 40,15" fill="#ef4444"/>
                        <rect x="40" y="15" width="20" height="5" fill="#b91c1c"/>
                    </g>
                </svg>
            </div>

            <div class="rk-pump-status status-ok" id="statusPump">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                <span>Przepływ optymalny</span>
            </div>
        </div>
    </div>

    <div class="rk-theory-grid">
        <div class="rk-step-card" data-step="1">
            <h3>Obciążenie Cieplne (Q<sub>obl</sub>)</h3>
            <p>Rzeczywiste zapotrzebowanie na moc (<a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">norma PN-EN 12831</a>) powiększamy o naddatek 15% na szybkie dogrzewanie strefy po obniżeniu temperatury.</p>
            <div class="rk-math-box">Q<sub>obl</sub> = Q &times; 1,15</div>
        </div>

        <div class="rk-step-card" data-step="2">
            <h3>Strumień Masowy (G)</h3>
            <p>Wyznaczamy przepływ wody przez pętle dla założonego <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadku temperatury (&Delta;T)</a>. Dla podłogówki wynosi on optymalnie od 5K do 7K.</p>
            <div class="rk-math-box">G = Q<sub>obl</sub> / (70 &times; &Delta;T)</div>
            <p style="font-size: 13px;">Gdzie 70 to współczynnik wynikający z ciepła właściwego wody.</p>
        </div>

        <div class="rk-step-card" data-step="3">
            <h3>Opory i Dławienie</h3>
            <p>Nastawa to wynik podziału strumienia G przez liczbę pętli, konfigurowany na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach rozdzielacza</a>.</p>
            <p>Należy zweryfikować sumaryczny opór w kontekście <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">doboru pompy obiegowej</a>, gdy zamykają się strefy (&Delta;p-v).</p>
        </div>
    </div>

    <div class="rk-calc-cta">
        <h3 style="font-size: 24px; font-weight: 900; color: var(--rk-calc-dark); margin: 0 0 15px 0;">Matematyka instalacji bez zgadywania</h3>
        <p style="color: var(--rk-calc-gray); font-size: 16px; margin: 0 auto 30px auto; max-width: 600px; line-height: 1.6;">
            Precyzyjne nastawy to warunek konieczny dla żywotności Twojej pompy ciepła i niższych rachunków. Nie pozostawiaj tego przypadkowi.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-huge">
            ZAMÓW PROJEKT I OBLICZENIA OZC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje UI
    const slideQ = document.getElementById('slideQ');
    const valQ = document.getElementById('valQ');
    
    const btnsDT = document.querySelectorAll('#btnGroupDT .rk-btn-opt');
    const btnsLoops = document.querySelectorAll('#btnGroupLoops .rk-btn-opt');
    
    const outRota = document.getElementById('outRota');
    const svgFloat = document.getElementById('svgFloat');
    const statusPump = document.getElementById('statusPump');

    // Stan aplikacji
    let currentQ = parseInt(slideQ.value);
    let currentDT = 5;
    let currentLoops = 2;

    // Aktualizacja kalkulatora
    function updateCalculator() {
        // Obliczenia fizyczne
        const q_obl = currentQ * 1.15;
        const G = q_obl / (70 * currentDT);
        const rotaVal = G / currentLoops;
        
        // Zabezpieczenie przed dziwnymi wartościami
        const finalVal = Math.max(0, parseFloat(rotaVal.toFixed(2)));
        outRota.textContent = finalVal.toFixed(2);

        // SVG Logika: Y=190 dla 0 L/min, Y=40 dla 3 L/min. Różnica = 150px
        // Przesunięcie = (wartość / 3) * 150
        let cappedVal = Math.min(finalVal, 3); 
        let yTransform = 190 - (cappedVal / 3) * 150;
        svgFloat.style.transform = `translate(0px, ${yTransform}px)`;

        // Status pompy (wizualne błędy dławienia / przepływu)
        if (finalVal < 0.5) {
            statusPump.className = 'rk-pump-status status-warn';
            statusPump.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg><span>Ryzyko dławienia układu</span>`;
        } else if (finalVal > 2.5) {
            statusPump.className = 'rk-pump-status status-err';
            statusPump.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg><span>Zbyt duża prędkość (szumy)</span>`;
        } else {
            statusPump.className = 'rk-pump-status status-ok';
            statusPump.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg><span>Przepływ optymalny</span>`;
        }
    }

    // Nasłuchiwacze zdarzeń
    slideQ.addEventListener('input', function() {
        currentQ = parseInt(this.value);
        valQ.textContent = currentQ + " W";
        updateCalculator();
    });

    btnsDT.forEach(btn => {
        btn.addEventListener('click', function() {
            btnsDT.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentDT = parseFloat(this.getAttribute('data-val'));
            updateCalculator();
        });
    });

    btnsLoops.forEach(btn => {
        btn.addEventListener('click', function() {
            btnsLoops.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentLoops = parseInt(this.getAttribute('data-val'));
            updateCalculator();
        });
    });

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



<style>
:root {
    --rk-eng-dark: #0f172a;
    --rk-eng-blue: #0284c7;
    --rk-eng-blue-light: #e0f2fe;
    --rk-eng-red: #ef4444;
    --rk-eng-green: #10b981;
    --rk-eng-gray: #64748b;
    --rk-eng-bg: #ffffff;
    --rk-eng-surface: #f8fafc;
    --rk-eng-border: #e2e8f0;
}

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

/* Header Section */
.rk-eng-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-eng-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-eng-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Interactive Viewer (Tabs for Long Tail Content) */
.rk-eng-viewer {
    padding: 40px 50px;
    background: var(--rk-eng-surface);
    border-bottom: 1px solid var(--rk-eng-border);
}

.rk-eng-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-eng-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-eng-tab {
    padding: 15px;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-eng-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-eng-tab:hover {
    background: #f1f5f9;
}

.rk-eng-tab.active {
    background: var(--rk-eng-blue-light);
    color: var(--rk-eng-blue);
    border-color: rgba(2, 132, 199, 0.2);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.05);
}

.rk-eng-tab svg {
    flex-shrink: 0;
}

/* Tab Content Area */
.rk-eng-content-box {
    background: #ffffff;
    border-radius: 20px;
    padding: 35px;
    border: 1px solid var(--rk-eng-border);
    min-height: 200px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-eng-panel {
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

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

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

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

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

.rk-eng-panel p:last-child {
    margin-bottom: 0;
}

.rk-eng-panel strong {
    color: var(--rk-eng-dark);
}

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

/* Grid for highlights */
.rk-eng-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-eng-card {
    background: var(--rk-eng-surface);
    border: 1px solid var(--rk-eng-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.rk-eng-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    border-color: var(--rk-eng-blue);
}

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

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

.rk-spec-tag {
    display: inline-block;
    background: #e2e8f0;
    padding: 6px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-eng-dark);
    margin-top: 15px;
    border: 1px dashed var(--rk-eng-gray);
}

/* CTA Section */
.rk-eng-cta {
    padding: 40px 50px 50px;
    text-align: center;
    background: var(--rk-eng-surface);
    border-top: 1px solid var(--rk-eng-border);
}

.rk-btn-huge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-eng-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    max-width: 550px;
}

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

@media (max-width: 768px) {
    .rk-eng-header, .rk-eng-viewer, .rk-eng-grid, .rk-eng-cta { padding: 30px 20px; }
    .rk-eng-tabs { grid-template-columns: 1fr; gap: 5px; }
    .rk-eng-header h2 { font-size: 24px; }
    .rk-btn-huge { font-size: 15px; padding: 18px 20px; }
    .rk-eng-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-wplyw-na-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Jak sterowanie strefowe wpływa na projekt ogrzewania podłogowego?",
    "description": "Szczegółowa inżynierska analiza wpływu automatyki strefowej na rozstaw rur, obliczenia OZC, dobór wylewki anhydrytowej i współpracę z systemem rekuperacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-wymogi-techniczne",
    "name": "Wymogi Techniczne Projektowania Strefowego (OZC i Rekuperacja)",
    "description": "Zestawienie wytycznych do projektowania instalacji płaszczyznowych z uwzględnieniem oporu cieplnego wylewki, rozstawu rur oraz bilansu mas powietrza.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "jaki rozstaw rur do ogrzewania podłogowego",
      "wylewka anhydrytowa na ogrzewanie podłogowe opór cieplny",
      "rekuperacja a ogrzewanie podłogowe strefowe",
      "niezależne pętle grzewcze na rozdzielaczu",
      "bilans hydrauliczny pompy obiegowej"
    ],
    "measurementTechnique": "Algorytmizacja parametrów: rozstaw zwojów (10 cm przy oknach, 15 cm w centrum), opór cieplny jastrychu (R = 0,02 m2K/W dla 35mm) oraz różnica temperatur (max ΔT 3-4°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Architektura rozdzielacza: Absolutny zakaz mieszania zasilania dla różnych stref termicznych z jednej pętli.",
        "Obliczenia OZC: Wymuszają precyzyjne ustalenie rozstawu rur co 10-15 cm.",
        "Wylewka: Wymagana niska bezwładność, dedykowany anhydryt o grubości 35 mm nad rurką.",
        "Rekuperacja: Kompensacja transferu ciepła z salonu do sypialni poprzez optymalizację nastaw."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-przewodnik",
    "name": "Interaktywny Przewodnik Projektowania Strefowego",
    "description": "Interfejs edukacyjny umożliwiający przełączanie zagadnień projektowych takich jak obliczenia OZC, parametry jastrychu oraz współpraca z wentylacją mechaniczną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eng-container" id="projekt-wplyw-app">
    <div class="rk-eng-header">
        <div class="rk-eng-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Inżynieria Instalacji
        </div>
        <h2>Jak sterowanie strefowe wpływa na projekt ogrzewania podłogowego?</h2>
        <p>Wdrożenie sterowania strefowego diametralnie zmienia podejście do fazy inżynieryjnej. Tego systemu nie da się "dopisać" na etapie montażu rozdzielacza – wymaga on bezwzględnego powiązania od pierwszych kresek na rysunku technicznym.</p>
    </div>

    <div class="rk-eng-viewer">
        <div class="rk-eng-tabs">
            <button class="rk-eng-tab active" data-tab="1">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z"></path></svg>
                Architektura Pętli
            </button>
            <button class="rk-eng-tab" data-tab="2">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="M8 17l4 4 4-4"></path></svg>
                Obliczenia OZC
            </button>
            <button class="rk-eng-tab" data-tab="3">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Parametry Wylewki
            </button>
            <button class="rk-eng-tab" data-tab="4">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Wpływ Rekuperacji
            </button>
        </div>

        <div class="rk-eng-content-box">
            <div id="rk-panel-1" class="rk-eng-panel active">
                <h3>Bezwzględny zakaz mieszania pętli grzewczych</h3>
                <p>Niedopuszczalne jest <strong>mieszanie pętli z różnych pomieszczeń na jednym obwodzie rozdzielacza</strong>. To jeden z najczęstszych błędów wykonawstwa amatorskiego.</p>
                <p>Jeśli jedna pętla zasila jednocześnie część salonu i korytarz, poprawne wysterowanie takiej strefy za pomocą <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownika termoelektrycznego</a> staje się fizycznie niemożliwe. W efekcie korytarz będzie permanentnie przegrzewany, a salon niedogrzany (lub odwrotnie), ponieważ sterownik odetnie przepływ wody na całej długości rury.</p>
                <p>Projekt musi zakładać <strong>niezależne pętle grzewcze na rozdzielaczu</strong> dla każdej projektowanej strefy termicznej.</p>
            </div>

            <div id="rk-panel-2" class="rk-eng-panel">
                <h3>Projektowe Obciążenie Cieplne (OZC) a rozstaw rur</h3>
                <p>Podczas wykonywania <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Projektowego Obciążenia Cieplnego (OZC)</a>, inżynier musi precyzyjnie określić, <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">jaki rozstaw rur do ogrzewania podłogowego</a> zastosować w korelacji z planowanymi strefami.</p>
                <p>Aby system strefowy mógł szybko i elastycznie reagować, rury układa się gęściej w obszarach o większym zapotrzebowaniu. Standardem inżynierskim jest rozstaw <strong>co 10 cm</strong> w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a> oraz łazienkach, oraz <strong>co 15 cm</strong> w przestronnych pokojach dziennych i sypialniach.</p>
                <p>Pozwala to na obniżenie temperatury zasilania na źródle (np. pompie ciepła), zachowując odpowiednią moc do sterowania.</p>
            </div>

            <div id="rk-panel-3" class="rk-eng-panel">
                <h3>Niska bezwładność: Idealna wylewka anhydrytowa</h3>
                <p>Skuteczna automatyka strefowa wymaga zminimalizowania tzw. bezwładności cieplnej. Oznacza to przewidzenie odpowiedniej grubości wylewki jastrychowej już na etapie projektu architektonicznego.</p>
                <p>Przy systemach strefowych idealnie sprawdza się <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka anhydrytowa na ogrzewanie podłogowe</a>. Zalecana grubość to zaledwie <strong>35 mm nad rurą</strong> grzewczą. Anhydryt cechuje się bardzo dobrym przewodnictwem i płynną konsystencją, która idealnie otula rurę, wypierając powietrze.</p>
                <div class="rk-spec-tag">Znikomy opór cieplny: R &approx; 0,02 m&sup2;&middot;K/W</div>
            </div>

            <div id="rk-panel-4" class="rk-eng-panel">
                <h3>Rekuperacja a ogrzewanie podłogowe strefowe</h3>
                <p>W profesjonalnej sekcji projektowej należy kategorycznie uwzględnić integrację z systemem <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wentylacji mechanicznej z odzyskiem ciepła (rekuperacją)</a>.</p>
                <p>Rekuperacja powoduje ciągłą wymianę i cyrkulację powietrza, co prowadzi do niezamierzonego <strong>transferu mas ciepła</strong> (np. gorące powietrze przepływa z nagrzanego salonu do chłodnej sypialni podcięciami w drzwiach). Projektant automatyki musi to zrównoważyć poprzez odpowiednie umiejscowienie czujników pokojowych.</p>
                <p>Kluczowa zasada inżynierska: należy zrezygnować z drastycznych różnic nastaw między sąsiadującymi strefami. <strong>Maksymalna zalecana różnica to 3-4°C.</strong></p>
            </div>
        </div>
    </div>

    <div class="rk-eng-grid">
        <div class="rk-eng-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-eng-blue)" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Bilans Hydrauliczny
            </h4>
            <p>Odcinanie stref drastycznie zmienia opory w układzie. <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Bilans hydrauliczny pompy obiegowej</a> oraz precyzyjne <strong>nastawy rotametrów</strong> są krytyczne dla bezpieczeństwa.</p>
        </div>
        <div class="rk-eng-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-eng-blue)" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                Zabezpieczenie przed błędami
            </h4>
            <p>Wszystkie te dane obliczeniowe zawiera profesjonalny projekt, który <strong>eliminuje ryzyko błędów wykonawczych</strong> i awarii pompy ciepła po wylaniu posadzek.</p>
        </div>
    </div>

    <div class="rk-eng-cta">
        <h3 style="font-size: 24px; font-weight: 900; color: var(--rk-eng-dark); margin: 0 0 15px 0;">Zbuduj system, który po prostu działa</h3>
        <p style="color: var(--rk-eng-gray); font-size: 16px; margin: 0 auto 30px auto; max-width: 650px; line-height: 1.6;">
            Nie zgaduj rozstawu rur ani nastaw hydraulicznych. Zamów rzetelną dokumentację inżynierską, która zagwarantuje Ci 100% wykorzystania potencjału automatyki strefowej i zwrot z inwestycji.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-huge">
            ZAMÓW PROJEKT OGRZEWANIA PODŁOGOWEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active states
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active state to clicked tab
            this.classList.add('active');

            // Show corresponding panel
            const tabId = this.getAttribute('data-tab');
            document.getElementById('rk-panel-' + tabId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-light-blue: #f0f9ff;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-green: #10b981;
    --rk-err-warn: #f59e0b;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

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

/* Header */
.rk-err-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-err-red);
}

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

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

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

/* Interactive App Setup */
.rk-err-app {
    display: flex;
    flex-direction: column;
    padding: 40px 50px;
    background: #f8fafc;
}

/* Nav Menu (Grid) */
.rk-err-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-err-btn {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-err-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
}

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

.rk-err-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--rk-err-border);
    color: var(--rk-err-gray);
    border-radius: 8px;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
    transition: all 0.3s;
}

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

.rk-err-btn-text h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
}

.rk-err-btn-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-err-gray);
    line-height: 1.4;
}

/* Display Area (SVG + Info) */
.rk-err-display {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-err-svg-box {
    padding: 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-err-border);
    position: relative;
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-err-svg {
    width: 100%;
    max-width: 600px;
    height: auto;
}

/* SVG Animations per state */
.err-layer { opacity: 0; transition: opacity 0.4s ease; display: none; }
.err-layer.active { opacity: 1; display: block; }

/* Animacje detali */
.anim-sun-ray { stroke-dasharray: 5; animation: shootRay 1.5s linear infinite; }
.anim-crack { stroke-dasharray: 100; stroke-dashoffset: 100; animation: drawCrack 2s forwards infinite alternate; }
.anim-heat-down { transform: translateY(0); animation: dropHeat 1.5s infinite; opacity: 0; }
.anim-wire-err { stroke-dasharray: 8; animation: flowWire 1s linear infinite; }
.anim-temp-flash { animation: flashRed 1s infinite alternate; }
.anim-freeze { animation: flashBlue 1.5s infinite alternate; }

@keyframes shootRay { to { stroke-dashoffset: -20; } }
@keyframes drawCrack { to { stroke-dashoffset: 0; } }
@keyframes dropHeat { 
    0% { transform: translateY(-10px); opacity: 0; } 
    50% { opacity: 1; } 
    100% { transform: translateY(20px); opacity: 0; } 
}
@keyframes flowWire { to { stroke-dashoffset: -16; } }
@keyframes flashRed { to { fill: #ef4444; } }
@keyframes flashBlue { to { fill: #38bdf8; } }

/* Info Box */
.rk-err-info {
    padding: 30px;
}

.rk-err-info h3 {
    margin: 0 0 15px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-err-red);
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-err-info p:last-child { margin: 0; }

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

.rk-tech-spec {
    display: inline-block;
    background: #f1f5f9;
    padding: 8px 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-err-dark);
    font-weight: 700;
    border: 1px dashed var(--rk-err-gray);
    margin-top: 10px;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-app { padding: 30px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-nav { grid-template-columns: 1fr; }
    .rk-err-btn { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-bledy-wykonawcze",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Jakich błędów wykonawczych unikać przy montażu automatyki strefowej?",
    "description": "Katalog 4 krytycznych błędów przy montażu sterowania strefowego: od błędnej lokalizacji termostatów po brak dylatacji i zbyt cienką izolację podłogową 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": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-bledy-wykonawcze",
    "name": "Analiza Krytycznych Błędów Montażowych Automatyki Strefowej",
    "description": "Zestawienie normatywnych odchyleń w montażu ogrzewania płaszczyznowego i automatyki, prowadzących do awarii układu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażu automatyki strefowej",
      "lokalizacja termostatu pokojowego",
      "dylatacja ogrzewania podłogowego PN-EN 1264",
      "odwrotne podłączenie siłowników rozdzielacza",
      "grubość styropianu pod podłogówkę EPS 100"
    ],
    "measurementTechnique": "Weryfikacja grubości izolacji (min. 15 cm EPS, lambda = 0.036 W/mK), ciągłości taśmy dylatacyjnej (8-10 mm) oraz poprawności schematu elektrycznego na listwie sterującej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błędna lokalizacja termostatów (<1.5m lub w strefie nasłonecznienia) fałszuje pomiar.",
        "Brak taśmy dylatacyjnej na granicy stref niweczy sterowanie strefowe i powoduje pękanie jastrychu.",
        "Odwrotne przypisanie siłowników na listwie wywołuje efekt drastycznego przegrzania/wychłodzenia naprzemiennych pokoi.",
        "Zbyt cienka izolacja EPS powoduje ucieczkę ciepła do gruntu pomimo zamknięcia pętli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-bledy-wykonawcze",
    "name": "Symulator Awarii i Błędów Sterowania Strefowego",
    "description": "Narzędzie interaktywne prezentujące wizualizację konsekwencji błędów montażowych w instalacji ogrzewania podłogowego (m.in. ucieczka ciepła, fałszywe odczyty, brak dylatacji).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-widget" id="errors-sim-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Katalog Awarii
        </div>
        <h2>Jakich błędów wykonawczych unikać przy montażu automatyki strefowej?</h2>
        <p>Elektronika nie naprawi błędów fizyki. Wybierz jeden z najczęstszych błędów montażowych, aby zobaczyć, jak rujnuje on pracę całego układu grzewczego.</p>
    </div>

    <div class="rk-err-app">
        <div class="rk-err-nav">
            <div class="rk-err-btn active" data-err="1">
                <div class="rk-err-num">1</div>
                <div class="rk-err-btn-text">
                    <h4>Termostat w Słońcu</h4>
                    <p>Zła lokalizacja czujnika ściennego</p>
                </div>
            </div>
            <div class="rk-err-btn" data-err="2">
                <div class="rk-err-num">2</div>
                <div class="rk-err-btn-text">
                    <h4>Brak Dylatacji</h4>
                    <p>Brak izolacji brzegowej między strefami</p>
                </div>
            </div>
            <div class="rk-err-btn" data-err="3">
                <div class="rk-err-num">3</div>
                <div class="rk-err-btn-text">
                    <h4>Pomylone Siłowniki</h4>
                    <p>Odwrotne kable na listwie rozdzielacza</p>
                </div>
            </div>
            <div class="rk-err-btn" data-err="4">
                <div class="rk-err-num">4</div>
                <div class="rk-err-btn-text">
                    <h4>Za Mało Styropianu</h4>
                    <p>Ucieczka ciepła w dół do gruntu</p>
                </div>
            </div>
        </div>

        <div class="rk-err-display">
            <div class="rk-err-svg-box">
                <svg class="rk-err-svg" viewBox="0 0 600 250" preserveAspectRatio="xMidYMid meet">
                    <rect x="50" y="50" width="500" height="150" fill="#f8fafc" stroke="#e2e8f0" stroke-width="4"/>
                    <line x1="50" y1="200" x2="550" y2="200" stroke="#94a3b8" stroke-width="6"/>

                    <g id="layer-err-1" class="err-layer active">
                        <rect x="50" y="70" width="20" height="80" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/>
                        <circle cx="20" cy="40" r="25" fill="#fef08a"/>
                        <path d="M 40 55 L 150 120" stroke="#facc15" stroke-width="4" class="anim-sun-ray"/>
                        <rect x="145" y="110" width="20" height="30" rx="3" fill="#ffffff" stroke="#ef4444" stroke-width="3"/>
                        <text x="155" y="100" font-family="Inter" font-weight="800" font-size="14" fill="#ef4444" text-anchor="middle" class="anim-temp-flash">32°C (Fałsz)</text>
                        <path d="M 300 200 L 300 180" stroke="#38bdf8" stroke-width="6"/>
                        <text x="300" y="160" font-family="Inter" font-weight="800" font-size="20" fill="#38bdf8" text-anchor="middle" class="anim-freeze">16°C (Niedogrzanie)</text>
                    </g>

                    <g id="layer-err-2" class="err-layer">
                        <line x1="300" y1="200" x2="300" y2="250" stroke="#ef4444" stroke-width="4" stroke-dasharray="5 5"/>
                        <path d="M 200 225 Q 300 225 400 225" fill="none" stroke="#f87171" stroke-width="15" opacity="0.5"/>
                        <path d="M 300 200 l -5 -20 l 10 -15 l -5 -15" fill="none" stroke="#1e293b" stroke-width="3" class="anim-crack"/>
                        <text x="300" y="140" font-family="Inter" font-weight="800" font-size="16" fill="#ef4444" text-anchor="middle">Pęknięcie jastrychu!</text>
                        <text x="150" y="180" font-family="Inter" font-weight="700" font-size="14" fill="#64748b" text-anchor="middle">Strefa ON</text>
                        <text x="450" y="180" font-family="Inter" font-weight="700" font-size="14" fill="#64748b" text-anchor="middle">Strefa OFF</text>
                    </g>

                    <g id="layer-err-3" class="err-layer">
                        <rect x="50" y="50" width="250" height="150" fill="rgba(56, 189, 248, 0.1)"/>
                        <rect x="300" y="50" width="250" height="150" fill="rgba(239, 68, 68, 0.1)"/>
                        <text x="175" y="130" font-family="Inter" font-weight="900" font-size="24" fill="#38bdf8" text-anchor="middle" class="anim-freeze">14°C</text>
                        <text x="425" y="130" font-family="Inter" font-weight="900" font-size="24" fill="#ef4444" text-anchor="middle" class="anim-temp-flash">28°C</text>
                        
                        <rect x="250" y="10" width="100" height="30" rx="4" fill="#1e293b"/>
                        <text x="300" y="30" font-family="Inter" font-size="12" fill="#fff" text-anchor="middle">Listwa Master</text>
                        <path d="M 280 40 Q 280 70 425 210" fill="none" stroke="#ef4444" stroke-width="4" class="anim-wire-err"/>
                        <path d="M 320 40 Q 320 70 175 210" fill="none" stroke="#38bdf8" stroke-width="4" class="anim-wire-err"/>
                    </g>

                    <g id="layer-err-4" class="err-layer">
                        <rect x="50" y="200" width="500" height="15" fill="#fef08a" stroke="#ca8a04" stroke-width="2"/>
                        <rect x="50" y="215" width="500" height="35" fill="#a8a29e"/>
                        
                        <g class="anim-heat-down" transform="translate(150, 0)">
                            <path d="M 0 215 l 0 20 l -5 -5 M 0 235 l 5 -5" fill="none" stroke="#ef4444" stroke-width="3"/>
                        </g>
                        <g class="anim-heat-down" transform="translate(300, 0)" style="animation-delay: 0.5s;">
                            <path d="M 0 215 l 0 20 l -5 -5 M 0 235 l 5 -5" fill="none" stroke="#ef4444" stroke-width="3"/>
                        </g>
                        <g class="anim-heat-down" transform="translate(450, 0)" style="animation-delay: 1s;">
                            <path d="M 0 215 l 0 20 l -5 -5 M 0 235 l 5 -5" fill="none" stroke="#ef4444" stroke-width="3"/>
                        </g>
                        
                        <text x="300" y="120" font-family="Inter" font-weight="800" font-size="18" fill="#ef4444" text-anchor="middle">Ucieczka ciepła do gruntu</text>
                    </g>
                </svg>
            </div>

            <div class="rk-err-info" id="errInfoText">
                <h3>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Błędna lokalizacja termostatu
                </h3>
                <p>Montaż <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">czujnika ściennego</a> na wysokości poniżej 1,5 m, w miejscach bezpośrednio nasłonecznionych, w przeciągach przy drzwiach zewnętrznych lub na ścianach zewnętrznych o niskim oporze cieplnym.</p>
                <p><strong>Konsekwencja:</strong> Całkowite zafałszowanie odczytu temperatury operacyjnej. Termostat "myśli", że w pokoju jest gorąco od słońca i permanentnie zamyka strefę, co prowadzi do drastycznego niedogrzania pomieszczenia zimą.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-err-btn');
    const layers = document.querySelectorAll('.err-layer');
    const infoText = document.getElementById('errInfoText');

    const contentMap = {
        '1': `
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Błędna lokalizacja termostatu
            </h3>
            <p>Montaż <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">czujnika ściennego</a> na wysokości poniżej 1,5 m, w miejscach bezpośrednio nasłonecznionych, w przeciągach przy drzwiach zewnętrznych lub na ścianach zewnętrznych o niskim oporze cieplnym.</p>
            <p><strong>Konsekwencja:</strong> Całkowite zafałszowanie odczytu temperatury operacyjnej. Termostat nagrzewa się od słońca i permanentnie zamyka strefę, co prowadzi do drastycznego niedogrzania pomieszczenia w okresie mrozów.</p>
        `,
        '2': `
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Brak dylatacji i izolacji brzegowej
            </h3>
            <p>Niezastosowanie taśmy dylatacyjnej o grubości 8-10 mm na granicy niezależnie sterowanych stref grzewczych.</p>
            <p><strong>Konsekwencja:</strong> Ciepło z włączonej strefy przechodzi bocznie przez płytę betonową do strefy wyłączonej. Niweczy to całkowicie sens regulacji strefowej i prowadzi do pękania wylewki na skutek naprężeń termicznych.</p>
            <div class="rk-tech-spec">Norma inżynierska: PN-EN 1264-4 (<a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">Więcej o dylatacjach</a>)</div>
        `,
        '3': `
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Odwrotne podłączenie siłowników
            </h3>
            <p>Błędne przypisanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownika termoelektrycznego</a> z pokoju "A" do pętli zasilającej pokój "B" na listwie sterującej rozdzielacza.</p>
            <p><strong>Konsekwencja:</strong> Gdy w pokoju "A" robi się zimno, termostat otwiera pętlę w pokoju "B". Objawia się to drastycznym wychłodzeniem jednego pomieszczenia przy jednoczesnym przegrzewaniu drugiego. Obwody muszą być testowane elektrycznie przed wylewką.</p>
        `,
        '4': `
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Ignorowanie grubości styropianu
            </h3>
            <p>Układanie automatyki w budynkach o niedostatecznej izolacji termicznej od gruntu.</p>
            <p><strong>Konsekwencja:</strong> Straty ciepła do gruntu są tak wysokie, że system strefowy nie jest w stanie szybko skompensować temperatur. Ucieczka energii odbywa się bez względu na stan zamknięcia siłowników, marnując prąd pompy ciepła.</p>
            <div class="rk-tech-spec">Wymóg normatywny: min. 15 cm styropianu EPS 100 (lambda = 0,036 W/mK) (<a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Czytaj o grubości izolacji</a>)</div>
        `
    };

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

            const errId = this.getAttribute('data-err');

            // Zmiana warstw SVG
            layers.forEach(layer => layer.classList.remove('active'));
            document.getElementById('layer-err-' + errId).classList.add('active');

            // Aktualizacja treści HTML z efektem zanikania
            infoText.style.opacity = '0';
            setTimeout(() => {
                infoText.innerHTML = contentMap[errId];
                infoText.style.opacity = '1';
            }, 200);
        });
    });
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0284c7;
    --rk-cs-light-blue: #f0f9ff;
    --rk-cs-teal: #0d9488;
    --rk-cs-teal-bg: #f0fdfa;
    --rk-cs-orange: #f97316;
    --rk-cs-gray: #64748b;
    --rk-cs-border: #e2e8f0;
    --rk-cs-bg: #ffffff;
    --rk-cs-surface: #f8fafc;
}

.rk-cs-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-cs-teal);
    overflow: hidden;
}

/* Header */
.rk-cs-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #134e4a 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-cs-teal);
}

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(45, 212, 191, 0.2);
    color: #5eead4;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(45, 212, 191, 0.3);
}

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

.rk-cs-header p {
    font-size: 16px;
    color: #ccfbf1;
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* App Layout */
.rk-cs-app {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: var(--rk-cs-surface);
    border-bottom: 1px solid var(--rk-cs-border);
}

/* Left: Interactive Content */
.rk-cs-content-col {
    padding: 40px 50px;
    background: #ffffff;
    border-right: 1px solid var(--rk-cs-border);
}

.rk-cs-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    background: var(--rk-cs-surface);
    padding: 6px;
    border-radius: 12px;
    border: 1px solid var(--rk-cs-border);
}

.rk-cs-tab {
    flex: 1;
    padding: 12px 15px;
    text-align: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cs-gray);
    cursor: pointer;
}

.rk-cs-tab.active {
    background: #ffffff;
    color: var(--rk-cs-teal);
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    border: 1px solid rgba(13, 148, 136, 0.2);
}

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

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

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

.rk-cs-panel p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

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

/* Right: Static SVG Visualization */
.rk-cs-visual-col {
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-cs-teal-bg);
}

.rk-cs-svg {
    width: 100%;
    height: auto;
    max-width: 300px;
}

.rk-svg-label {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 14px;
    fill: var(--rk-cs-dark);
}

.rk-svg-temp {
    font-family: monospace;
    font-weight: 900;
    font-size: 20px;
}

.rk-temp-hot { fill: #ef4444; }
.rk-temp-cool { fill: #0ea5e9; }
.rk-temp-warm { fill: #f59e0b; }

.rk-cs-summary-box {
    margin-top: 20px;
    background: #ffffff;
    border: 1px solid rgba(13, 148, 136, 0.3);
    border-radius: 12px;
    padding: 15px;
    width: 100%;
    text-align: center;
}

.rk-cs-summary-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-teal);
    font-family: monospace;
}

.rk-cs-summary-text {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-cs-gray);
    text-transform: uppercase;
}

/* Data Grid Section */
.rk-cs-data-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-cs-data-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    text-align: center;
    margin: 0 0 30px 0;
}

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

.rk-cs-card {
    background: var(--rk-cs-surface);
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 20px;
}

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

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

.rk-cs-desc {
    font-size: 13px;
    color: #475569;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-content-col, .rk-cs-visual-col, .rk-cs-data-section { padding: 30px 20px; }
    .rk-cs-app { grid-template-columns: 1fr; }
    .rk-cs-content-col { border-right: none; border-bottom: 1px solid var(--rk-cs-border); }
    .rk-cs-tabs { flex-direction: column; }
    .rk-cs-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Case Study: Sterowanie strefowe w domu 200 m² z poddaszem – Gdańsk",
    "description": "Analiza wdrożenia bezprzewodowej automatyki strefowej w domu z poddaszem użytkowym. Zobacz, jak wyeliminowano przegrzewanie od zysków pasywnych i obniżono koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-casestudy",
    "name": "Case Study: Bilans cieplny 200m2 Gdańsk",
    "description": "Dane empiryczne z realizacji systemu ogrzewania strefowego na poddaszu użytkowym i parterze z uwzględnieniem zysków słonecznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe na poddaszu",
      "pasywne zyski ciepła",
      "wylewka anhydrytowa na ogrzewanie podłogowe",
      "rekuperacja a ogrzewanie podłogowe strefowe",
      "termostaty bezprzewodowe do podłogówki"
    ],
    "measurementTechnique": "Pomiary temperatury powietrza w rozwarstwieniu kondygnacyjnym przed i po zastosowaniu siłowników strefowych. Analiza wpływu oporu cieplnego wylewki anhydrytowej oraz rekuperacji na stabilizację klimatu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Kumulacja ciepła na poddaszu i przegrzewanie salonu przez okna południowe przy pojedynczej krzywej grzewczej.",
        "Rozwiązanie: 8 stref bezprzewodowych, optymalizacja oporu cieplnego wylewki i ograniczenie zjawiska transferu ciepła przez rekuperację.",
        "Wynik: Redukcja temperatury na poddaszu do 19°C, stabilne 21°C w salonie i zwrot z inwestycji ROI rzędu 2,8 roku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-casestudy",
    "name": "Interaktywne Case Study Ogrzewania",
    "description": "Widget edukacyjny prezentujący problem, rozwiązanie i twarde dane z wdrożenia automatyki na dwóch kondygnacjach.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-widget" id="casestudy-app">
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Case Study z budowy
        </div>
        <h2>Praktyka: Dom 200 m² z poddaszem – Gdańsk</h2>
        <p>Pani Katarzyna zainwestowała w świetną pompę ciepła, ale pierwszy sezon grzewczy okazał się koszmarem. Zobacz, jak precyzyjne strefowanie rozwiązało problem fizyki budynku.</p>
    </div>

    <div class="rk-cs-app">
        <div class="rk-cs-content-col">
            <div class="rk-cs-tabs">
                <button class="rk-cs-tab active" data-cs="problem">Problem</button>
                <button class="rk-cs-tab" data-cs="solution">Rozwiązanie</button>
                <button class="rk-cs-tab" data-cs="results">Wynik</button>
            </div>

            <div id="cs-problem" class="rk-cs-panel active">
                <h3>Brak równowagi na kondygnacjach</h3>
                <p>Dom Pani Katarzyny (parter + poddasze użytkowe) był sterowany tylko z jednego punktu. <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterowanie pogodowe w ogrzewaniu podłogowym</a> sprawdzało się na parterze, ale zawiodło całkowicie w ujęciu całego budynku.</p>
                <p>Zimą, w słoneczne dni, wielkie okna w salonie generowały ogromne <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła</a>. W tym samym czasie, ciepłe powietrze zgodnie z prawami fizyki unosiło się do góry klatką schodową. Skutek? Salon nagrzewał się do 25°C, a <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na poddaszu</a> w sypialniach dusiło domowników temperaturą rzędu 24°C.</p>
            </div>

            <div id="cs-solution" class="rk-cs-panel">
                <h3>Bezinwazyjna korekta automatyką</h3>
                <p>Ponieważ dom był już wykończony, brakowało przewodów podtynkowych. Rozwiązaniem było zastosowanie <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatów bezprzewodowych do podłogówki</a>.</p>
                <p>Wiedząc, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a> (z inwentaryzacji powykonawczej), przypisaliśmy 12 siłowników do dwóch niezależnych listew radiowych. Sypialnie na poddaszu otrzymały restrykcyjne nastawy czasowe (19°C w nocy), a salon funkcję natychmiastowego odcięcia przy pojawieniu się słońca.</p>
            </div>

            <div id="cs-results" class="rk-cs-panel">
                <h3>Harmonia termiczna i zwrot gotówki</h3>
                <p>Zastosowanie niezależnych pętli drastycznie zmieniło jakość życia. Termostaty zamknęły dopływ wody na poddasze w ciągu dnia, pozwalając na swobodne oddawanie nadmiaru ciepła z parteru.</p>
                <p>Obecnie <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">wodne ogrzewanie podłogowe</a> dostarcza energię wybiórczo. W łazienkach utrzymuje się stałe 24°C, w salonie stabilne 21.5°C, a w pokojach sypialnianych 19.0°C. Inwestycja w automatykę zwróci się Pani Katarzynie w niecałe 3 lata.</p>
            </div>
        </div>

        <div class="rk-cs-visual-col">
            <svg class="rk-cs-svg" viewBox="0 0 200 300">
                <path d="M 10 120 L 100 20 L 190 120 L 190 280 L 10 280 Z" fill="#ffffff" stroke="#0f172a" stroke-width="4" stroke-linejoin="round"/>
                
                <rect x="20" y="130" width="160" height="70" rx="8" fill="#f0f9ff" stroke="#0ea5e9" stroke-width="2"/>
                <text x="100" y="150" class="rk-svg-label" text-anchor="middle">Poddasze (Sypialnia)</text>
                <text x="100" y="180" class="rk-svg-temp rk-temp-cool" text-anchor="middle">19.0°C</text>
                
                <rect x="20" y="210" width="160" height="60" rx="8" fill="#fffbeb" stroke="#f59e0b" stroke-width="2"/>
                <text x="100" y="235" class="rk-svg-label" text-anchor="middle">Parter (Salon)</text>
                <text x="100" y="260" class="rk-svg-temp rk-temp-warm" text-anchor="middle">21.5°C</text>
                
                <circle cx="160" cy="50" r="15" fill="#fde047"/>
                <path d="M 160 20 L 160 30 M 160 70 L 160 80 M 130 50 L 140 50 M 180 50 L 190 50" stroke="#facc15" stroke-width="3"/>
            </svg>

            <div class="rk-cs-summary-box">
                <div class="rk-cs-summary-text">Zaoszczędzona energia</div>
                <div class="rk-cs-summary-val">-22%</div>
            </div>
        </div>
    </div>

    <div class="rk-cs-data-section">
        <h3>Parametry techniczno-finansowe inwestycji</h3>
        <div class="rk-cs-grid">
            <div class="rk-cs-card">
                <h4>Powierzchnia i System</h4>
                <div class="rk-cs-val">200 m²</div>
                <div class="rk-cs-desc">Wodne ogrzewanie płaszczyznowe, 8 stref bezprzewodowych.</div>
            </div>
            <div class="rk-cs-card">
                <h4>Źródło Ciepła</h4>
                <div class="rk-cs-val">Pompa Ciepła</div>
                <div class="rk-cs-desc">Brak przegrzewów poprawił efektywność COP o ok. 14%.</div>
            </div>
            <div class="rk-cs-card">
                <h4>Koszt Automatyki</h4>
                <div class="rk-cs-val">5 600 zł</div>
                <div class="rk-cs-desc">System RF (bez kucia), 2 listwy, 12 siłowników NC.</div>
            </div>
            <div class="rk-cs-card">
                <h4>Szacowany ROI</h4>
                <div class="rk-cs-val">~2,8 roku</div>
                <div class="rk-cs-desc">Przy średnim zużyciu energii 10 500 kWh rocznie.</div>
            </div>
            <div class="rk-cs-card">
                <h4>Rodzaj Jastrychu</h4>
                <div class="rk-cs-val">Anhydryt 35 mm</div>
                <div class="rk-cs-desc"><a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Niski opór cieplny wylewki</a> ułatwia błyskawiczną reakcję automatyki na zyski pasywne.</div>
            </div>
            <div class="rk-cs-card">
                <h4>Wentylacja</h4>
                <div class="rk-cs-val">Max &Delta;T 3&deg;C</div>
                <div class="rk-cs-desc">Precyzyjne strefowanie eliminuje transfer mas gorącego powietrza przy <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">pracy rekuperacji</a>.</div>
            </div>
        </div>
    </div>
</div>

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Natychmiastowa zmiana klas bez animacji w JS
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            this.classList.add('active');
            const targetId = this.getAttribute('data-cs');
            document.getElementById('cs-' + targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-anti-dark: #0f172a;
    --rk-anti-gray: #64748b;
    --rk-anti-border: #e2e8f0;
    --rk-anti-bg: #ffffff;
    --rk-anti-surface: #f8fafc;
    
    --rk-anti-red: #ef4444;
    --rk-anti-red-bg: #fef2f2;
    --rk-anti-orange: #f97316;
    --rk-anti-orange-bg: #fff7ed;
    --rk-anti-green: #10b981;
    --rk-anti-green-bg: #f0fdf4;
}

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

/* Header */
.rk-anti-header {
    padding: 40px 50px;
    background: var(--rk-anti-surface);
    text-align: center;
    border-bottom: 1px solid var(--rk-anti-border);
}

.rk-anti-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e2e8f0;
    color: #475569;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

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

.rk-anti-header p {
    font-size: 16px;
    color: var(--rk-anti-gray);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Interactive Calculator */
.rk-anti-app {
    padding: 40px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-anti-border);
}

.rk-anti-slider-wrap {
    background: var(--rk-anti-surface);
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-anti-border);
    margin-bottom: 30px;
}

.rk-anti-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

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

.rk-anti-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-anti-dark);
    font-family: monospace;
    background: #ffffff;
    padding: 5px 15px;
    border-radius: 8px;
    border: 1px solid var(--rk-anti-border);
}

/* Range Slider */
.rk-area-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--rk-anti-red) 0%, var(--rk-anti-orange) 40%, var(--rk-anti-green) 100%);
    outline: none;
}

.rk-area-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-anti-dark);
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

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

/* Result Visualization */
.rk-anti-result {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-anti-svg-box {
    background: var(--rk-anti-surface);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px;
    border: 1px solid var(--rk-anti-border);
}

.rk-house-svg {
    width: 100%;
    max-width: 180px;
    height: auto;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.svg-zone {
    transition: fill 0.4s ease, opacity 0.4s ease;
}

.rk-anti-info {
    padding: 20px;
    border-radius: 16px;
    transition: all 0.4s ease;
}

.rk-anti-info h3 {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-anti-info p {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* Grid for "Kiedy NIE warto" scenarios */
.rk-anti-scenarios {
    padding: 40px 50px;
    background: var(--rk-anti-surface);
}

.rk-anti-scenarios h3 {
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-anti-dark);
    margin: 0 0 30px 0;
}

.rk-scen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 25px;
}

.rk-scen-card {
    background: #ffffff;
    border-top: 4px solid var(--rk-anti-red);
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    border-left: 1px solid var(--rk-anti-border);
    border-right: 1px solid var(--rk-anti-border);
    border-bottom: 1px solid var(--rk-anti-border);
    transition: transform 0.2s;
}

.rk-scen-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.rk-scen-icon {
    width: 44px;
    height: 44px;
    background: var(--rk-anti-red-bg);
    color: var(--rk-anti-red);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-scen-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-anti-gray);
}

@media (max-width: 768px) {
    .rk-anti-header, .rk-anti-app, .rk-anti-scenarios { padding: 30px 20px; }
    .rk-anti-result { grid-template-columns: 1fr; gap: 20px; }
    .rk-anti-svg-box { height: 160px; }
    .rk-anti-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-kiedy-zbedne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Kiedy sterowanie strefowe to zbędny wydatek? (Anty-poradnik)",
    "description": "Zestawienie sytuacji budowlanych i parametrów instalacji (np. mały dom, otwarta przestrzeń, płyta fundamentowa), w których inwestycja w automatykę strefową nie przyniesie zwrotu z inwestycji.",
    "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-12-29",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-kiedy-zbedne",
    "name": "Kryteria rezygnacji z automatyki strefowej",
    "description": "Baza danych określająca warunki brzegowe kubatury i układu architektonicznego, przy których wystarczy sterowanie jednym termostatem referencyjnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy nie warto sterowania strefowego",
      "ogrzewanie podłogowe w małym domu",
      "open space a podłogówka",
      "jeden termostat w małym domu",
      "ogrzewanie w płycie fundamentowej a strefy",
      "płyta fundamentowa grzewcza sterowanie",
      "zbilansowana instalacja jeden profil użytkowania"
    ],
    "measurementTechnique": "Algorytm oparty na korelacji powierzchni całkowitej budynku (< 70m2) oraz braku wydzielonych fizycznie stref o odmiennych wymaganiach temperaturowych (np. open space w loftach) i bezwładności termicznej płyt akumulacyjnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Mały metraż: Dla domów i mieszkań o powierzchni 60-70 m² bezwładność cieplna bryły wyrównuje temperatury samoistnie.",
        "Otwarta przestrzeń (Open Space): Brak przegród fizycznych uniemożliwia utrzymanie asymetrii temperatur nawet przy zastosowaniu siłowników.",
        "Jeden profil użytkowania: Dla instalacji precyzyjnie zbilansowanych rotametrami, gdzie w każdym pomieszczeniu oczekiwana jest ta sama temperatura.",
        "Płyta fundamentowa grzewcza: Ogromna bezwładność cieplna fundamentu uniemożliwia szybką reakcję, czyniąc podział strefowy nieskutecznym."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-metraz",
    "name": "Audyt opłacalności: Czy potrzebujesz stref?",
    "description": "Interaktywny kalkulator powierzchni (suwak), weryfikujący sensowność wydatków na automatykę strefową w zależności od metrażu i podziału budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-anti-widget" id="anty-poradnik-app">
    <div class="rk-anti-header">
        <div class="rk-anti-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Kiedy to zbędny wydatek?
        </div>
        <h2>Dla kogo sterowanie strefowe to wyrzucanie pieniędzy w błoto?</h2>
        <p>Inżynieria wymaga obiektywizmu. Choć automatyka daje niesamowity komfort, istnieją układy budynków, w których montaż siłowników i zaawansowanych listew po prostu się nie zwróci. Sprawdź, czy Twój dom tego potrzebuje.</p>
    </div>

    <div class="rk-anti-app">
        <div class="rk-anti-slider-wrap">
            <div class="rk-anti-slider-top">
                <div class="rk-anti-slider-title">Zadeklaruj powierzchnię użytkową:</div>
                <div class="rk-anti-val" id="areaVal">120 m²</div>
            </div>
            <input type="range" class="rk-area-slider" id="areaSlider" min="40" max="250" step="10" value="120">
        </div>

        <div class="rk-anti-result">
            <div class="rk-anti-svg-box">
                <svg class="rk-house-svg" id="houseSvg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet">
                    <polygon points="10,40 50,10 90,40" fill="#cbd5e1" stroke="#475569" stroke-width="2" stroke-linejoin="round"/>
                    <rect x="15" y="40" width="70" height="50" fill="#ffffff" stroke="#475569" stroke-width="2"/>
                    
                    <rect id="zone1" x="25" y="55" width="20" height="35" class="svg-zone" fill="#ef4444" opacity="0.8"/>
                    <rect id="zone2" x="55" y="55" width="20" height="35" class="svg-zone" fill="#f97316" opacity="0.8"/>
                    <g id="zone3" class="svg-zone" opacity="0">
                        <rect x="90" y="50" width="30" height="40" fill="#ffffff" stroke="#475569" stroke-width="2"/>
                        <polygon points="90,50 105,35 120,50" fill="#cbd5e1" stroke="#475569" stroke-width="2"/>
                        <rect x="95" y="55" width="20" height="35" fill="#10b981" opacity="0.8"/>
                    </g>
                </svg>
            </div>

            <div class="rk-anti-info" id="infoBox">
                </div>
        </div>
    </div>

    <div class="rk-anti-scenarios">
        <h3>Kiedy na pewno NIE potrzebujesz stref?</h3>
        <div class="rk-scen-grid">
            
            <div class="rk-scen-card">
                <div class="rk-scen-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <h4>Mały dom / mieszkanie do 70 m²</h4>
                <p>Na bardzo małych metrażach bezwładność cieplna posadzki oraz mieszanie się mas powietrza wyrównują temperaturę samoistnie. Jeden referencyjny termostat zamontowany w strefie dziennej jest w 100% wystarczający.</p>
            </div>

            <div class="rk-scen-card">
                <div class="rk-scen-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h4>Typowy "Open Space" (Loft)</h4>
                <p>Jeśli cały dół domu (salon, jadalnia, kuchnia, korytarz) to w pełni otwarta przestrzeń bez fizycznych drzwi i ścian działowych, utrzymanie różnicy np. 3°C pomiędzy kuchnią a kanapą jest technicznie niemożliwe. Ciepło i tak się wymiesza.</p>
            </div>

            <div class="rk-scen-card">
                <div class="rk-scen-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <h4>Jeden profil temperaturowy</h4>
                <p>Jeżeli jesteś pewny, że w sypialni, łazience i salonie chcesz mieć identyczną temperaturę np. 21°C całą dobę. Wtedy wystarczy precyzyjne <strong>zbilansowanie przepływów na rotametrach</strong> i sterowanie stałą krzywą grzewczą pompy ciepła.</p>
            </div>

            <div class="rk-scen-card">
                <div class="rk-scen-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 22h20"/><path d="M2 18h20"/><path d="M6 14v4"/><path d="M18 14v4"/><path d="M10 14v4"/><path d="M14 14v4"/></svg>
                </div>
                <h4>Płyta fundamentowa grzewcza</h4>
                <p>Systemy zatopione głęboko w grubej płycie fundamentowej posiadają potężną bezwładność cieplną sięgającą kilkunastu godzin. Ze względu na akumulację ciepła strefowanie jest tu skrajnie powolne i wystarczy oparcie się na globalnej <strong>automatyce pogodowej</strong>.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('areaSlider');
    const valDisplay = document.getElementById('areaVal');
    const infoBox = document.getElementById('infoBox');
    
    // SVG Elements
    const houseSvg = document.getElementById('houseSvg');
    const zone1 = document.getElementById('zone1');
    const zone2 = document.getElementById('zone2');
    const zone3 = document.getElementById('zone3');

    function updateApp() {
        const area = parseInt(slider.value);
        valDisplay.textContent = area + " m²";

        if (area <= 70) {
            // RED: ZBĘDNE
            infoBox.style.background = 'var(--rk-anti-red-bg)';
            infoBox.style.color = '#991b1b';
            infoBox.style.border = '1px solid #fca5a5';
            infoBox.innerHTML = `
                <h3 style="color: var(--rk-anti-red);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    Zbędny wydatek
                </h3>
                <p>Na takim metrażu kubatura jest zbyt mała. Jeden dobrze umiejscowiony termostat centralny załatwi sprawę. Instalowanie stref na siłę nie wygeneruje zauważalnych oszczędności finansowych, by zwrócić koszt zakupu automatyki.</p>
            `;
            
            houseSvg.style.transform = 'scale(0.8)';
            houseSvg.setAttribute('viewBox', '0 0 100 100');
            zone1.setAttribute('fill', 'var(--rk-anti-red)');
            zone2.setAttribute('fill', 'var(--rk-anti-red)');
            zone3.style.opacity = '0';

        } else if (area > 70 && area <= 120) {
            // ORANGE: PODZIAŁ NA 2
            infoBox.style.background = 'var(--rk-anti-orange-bg)';
            infoBox.style.color = '#9a3412';
            infoBox.style.border = '1px solid #fdba74';
            infoBox.innerHTML = `
                <h3 style="color: var(--rk-anti-orange);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Podział na Dzień / Noc
                </h3>
                <p>Dla średniego domu optymalnym wyborem pod kątem ROI (zwrotu inwestycji) jest podział na zaledwie 2 duże strefy. Jedna obsługująca strefę dzienną (salon/kuchnia), a druga z chłodniejszą nastawą dla sekcji sypialnianej.</p>
            `;

            houseSvg.style.transform = 'scale(0.95)';
            houseSvg.setAttribute('viewBox', '0 0 100 100');
            zone1.setAttribute('fill', 'var(--rk-anti-orange)');
            zone2.setAttribute('fill', 'var(--rk-anti-blue)');
            zone3.style.opacity = '0';

        } else {
            // GREEN: PEŁNE STREFY
            infoBox.style.background = 'var(--rk-anti-green-bg)';
            infoBox.style.color = '#065f46';
            infoBox.style.border = '1px solid #86efac';
            infoBox.innerHTML = `
                <h3 style="color: var(--rk-anti-green);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Pełne strefowanie ma sens!
                </h3>
                <p>Przy takim metrażu dom ma wiele pomieszczeń o odmiennym przeznaczeniu, naświetleniu (zyski pasywne) i zapotrzebowaniu na ciepło. Pełna automatyka (osobny termostat w każdym pokoju) z pewnością obniży rachunki o obiecane 20%.</p>
            `;

            houseSvg.style.transform = 'scale(1.1)';
            houseSvg.setAttribute('viewBox', '0 0 130 100');
            zone1.setAttribute('fill', 'var(--rk-anti-green)');
            zone2.setAttribute('fill', 'var(--rk-anti-blue)');
            zone3.style.opacity = '1';
        }
    }

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



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-gray: #64748b;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

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

/* Nagłówek */
.rk-faq-header {
    padding: 40px 50px;
    background: var(--rk-faq-hover);
    border-bottom: 1px solid var(--rk-faq-border);
}

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

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

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

/* Lista Akordeonów (Bez grafik i SVG) */
.rk-faq-list {
    padding: 20px 50px 40px;
}

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

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

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

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

/* Wskaźnik stanu (+ / -) w czystym CSS */
.rk-faq-indicator {
    display: inline-block;
    width: 24px;
    height: 24px;
    position: relative;
    flex-shrink: 0;
    margin-left: 15px;
}

.rk-faq-indicator::before,
.rk-faq-indicator::after {
    content: '';
    position: absolute;
    background-color: var(--rk-faq-blue);
    transition: transform 0.3s ease;
}

.rk-faq-indicator::before {
    top: 11px;
    left: 2px;
    width: 20px;
    height: 2px;
}

.rk-faq-indicator::after {
    top: 2px;
    left: 11px;
    width: 2px;
    height: 20px;
}

.rk-faq-item.active .rk-faq-indicator::after {
    transform: rotate(90deg);
    opacity: 0;
}

.rk-faq-item.active .rk-faq-indicator::before {
    transform: rotate(180deg);
}

.rk-faq-item.active .rk-faq-question {
    color: var(--rk-faq-blue);
    padding-bottom: 15px;
}

/* Treść odpowiedzi */
.rk-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
    opacity: 0;
}

.rk-faq-item.active .rk-faq-answer {
    max-height: 500px;
    opacity: 1;
}

.rk-faq-answer-inner {
    padding: 0 0 25px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-answer-inner a:hover {
    border-color: var(--rk-faq-blue);
}

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "FAQ – Najczęstsze pytania o sterowanie strefowe ogrzewaniem",
    "description": "Techniczne odpowiedzi na najczęstsze pytania inwestorów dotyczące sterowania strefowego, algorytmów TPI oraz integracji z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-faq",
    "name": "Parametry eksploatacyjne automatyki strefowej (Baza Wiedzy)",
    "description": "Zestawienie technicznych parametrów eksploatacyjnych automatyki podłogowej, w tym pobór mocy siłowników, wartości histerezy oraz minimalne zład wody dla pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie prądu przez siłowniki termoelektryczne",
      "histereza termostatu pokojowego",
      "algorytm TPI w podłogówce",
      "sprzęgło hydrauliczne dla pompy ciepła",
      "sterowanie strefowe w starym domu"
    ],
    "measurementTechnique": "Analiza danych empirycznych dotyczących pracy siłowników (1,2W - 2W), wymagań zładu wody (50-100 dm³) oraz dokładności regulacji PWM/TPI (±0,1°C).",
    "mainEntity": {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy sterowanie strefowe ma sens przy ogrzewaniu podłogowym i pompie ciepła?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, sterowanie strefowe ma głęboki sens z pompą ciepła, pod warunkiem zastosowania w instalacji zbiornika buforowego (min. 50-100 dm³) lub sprzęgła hydraulicznego. Zapobiega to drastycznemu ograniczaniu przepływu masowego przez parownik i chroni sprężarkę przed taktowaniem, gwarantując wysoką efektywność COP."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można zainstalować automatykę strefową do istniejącej podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Montaż automatyki strefowej na gotowej instalacji jest możliwy, ale wymaga zastosowania systemu bezprzewodowego (brak możliwości ukrycia kabli pod tynkiem) oraz weryfikacji rozdzielacza. Jeśli pętle z różnych pokoi zostały fizycznie połączone lub wymieszane na belce rozdzielacza, system nie będzie działał poprawnie bez kosztownej przeróbki hydraulicznej."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka jest optymalna różnica temperatur (histereza) dla sterowników podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla wodnego ogrzewania podłogowego klasyczna histeza nie powinna przekraczać ±0,2°C, jednak zalecanym standardem jest całkowita rezygnacja z histezy na rzecz algorytmu TPI/PWM. Zapobiega to kumulacji błędu wynikającego z bezwładności cieplnej jastrychu i utrzymuje temperaturę powietrza ze stabilnością do 0,1°C."
          }
        },
        {
          "@type": "Question",
          "name": "Czy siłowniki termoelektryczne zużywają dużo prądu w skali roku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pojedynczy siłownik termoelektryczny pobiera średnio od 1,2 W do 2 W mocy wyłącznie w stanie zasilania (otwarcia). Przy 12 siłownikach pracujących średnio przez 10 godzin na dobę w okresie grzewczym trwającym 180 dni, sumaryczne zużycie energii wynosi około 43 kWh, co generuje roczny koszt rzędu zaledwie 40-45 zł."
          }
        }
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy HVAC (FAQ)",
    "description": "Moduł typu accordion umożliwiający szybki dostęp do wyselekcjonowanych odpowiedzi technicznych z zakresu automatyki i hydrauliki instalacyjnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-widget">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">Baza Wiedzy</div>
        <h2>FAQ – Najczęstsze pytania o sterowanie strefowe ogrzewaniem</h2>
        <p>Rozwiewamy techniczne wątpliwości inwestorów. Konkretne odpowiedzi, liczby i normy bez lania wody.</p>
    </div>

    <div class="rk-faq-list" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>1. Czy sterowanie strefowe ma sens przy ogrzewaniu podłogowym i pompie ciepła?</h3>
                <span class="rk-faq-indicator"></span>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, sterowanie strefowe ma głęboki sens z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a>, pod warunkiem zastosowania w instalacji zbiornika buforowego (min. <strong>50-100 dm³</strong>) lub sprzęgła hydraulicznego. Zapobiega to drastycznemu ograniczaniu przepływu masowego przez parownik i chroni sprężarkę przed taktowaniem, gwarantując wysoką efektywność instalacji oraz chroniąc sprzęt przed usterkami.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>2. Czy można zainstalować automatykę strefową do istniejącej podłogówki?</h3>
                <span class="rk-faq-indicator"></span>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Montaż automatyki strefowej <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">na gotowej instalacji remontowanej</a> jest możliwy, ale wymaga zastosowania systemu bezprzewodowego (brak możliwości ukrycia kabli pod tynkiem) oraz weryfikacji rozdzielacza. Jeśli pętle z różnych pokoi zostały fizycznie połączone lub wymieszane na belce rozdzielacza, system nie będzie działał poprawnie bez kosztownej przeróbki hydraulicznej.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>3. Jaka jest optymalna różnica temperatur (histereza) dla sterowników podłogówki?</h3>
                <span class="rk-faq-indicator"></span>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Dla wodnego ogrzewania podłogowego klasyczna histeza nie powinna przekraczać <strong>±0,2°C</strong>, jednak zalecanym standardem jest całkowita rezygnacja z histezy na rzecz algorytmu <strong>TPI/PWM</strong> wmontowanego w <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat pokojowy</a>. Zapobiega to kumulacji błędu wynikającego z <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">dużej bezwładności cieplnej wylewki</a> i utrzymuje temperaturę powietrza ze stabilnością do 0,1°C.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>4. Czy siłowniki termoelektryczne zużywają dużo prądu w skali roku?</h3>
                <span class="rk-faq-indicator"></span>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Pojedynczy <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownik termoelektryczny na rozdzielaczu</a> pobiera średnio od <strong>1,2 W do 2 W</strong> mocy wyłącznie w stanie zasilania (otwarcia). Przy 12 siłownikach pracujących średnio przez 10 godzin na dobę w okresie grzewczym trwającym 180 dni, sumaryczne zużycie energii wynosi około <strong>43 kWh</strong>, co generuje roczny koszt rzędu zaledwie <strong>40-45 zł</strong>.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const questionBtn = item.querySelector('.rk-faq-question');
        
        questionBtn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie otwarte
            faqItems.forEach(faq => {
                faq.classList.remove('active');
                faq.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            });

            // Otwórz kliknięty, jeśli wcześniej był zamknięty
            if (!isActive) {
                item.classList.add('active');
                questionBtn.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

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

/* Sekcja Nagłówkowa i Cytat */
.rk-sum-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-sum-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.2);
}

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

.rk-sum-quote-box {
    position: relative;
    max-width: 700px;
    margin: 0 auto;
}

.rk-sum-quote-mark {
    font-size: 80px;
    color: rgba(255,255,255,0.1);
    position: absolute;
    top: -30px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

.rk-sum-quote-text {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.5;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-sum-author {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}

.rk-sum-author span { color: var(--rk-sum-gold); }

/* Interaktywny Symulator Decyzji */
.rk-sum-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-decision-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 30px;
}

.rk-decision-btn {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

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

.rk-decision-btn.active[data-choice="pro"] {
    background: var(--rk-sum-green-light);
    border-color: var(--rk-sum-green);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-decision-btn.active[data-choice="amateur"] {
    background: #fef2f2;
    border-color: var(--rk-sum-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-decision-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    transition: all 0.3s;
}

.rk-decision-btn.active[data-choice="pro"] .rk-decision-icon {
    background: var(--rk-sum-green);
    color: #ffffff;
}

.rk-decision-btn.active[data-choice="amateur"] .rk-decision-icon {
    background: var(--rk-sum-red);
    color: #ffffff;
}

.rk-decision-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0;
}

/* Wynik symulacji */
.rk-sim-result {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 30px;
    align-items: center;
    padding: 30px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-anim-svg {
    width: 100%;
    height: auto;
    max-width: 120px;
    margin: 0 auto;
}

/* Animacje SVG zależne od stanu */
.anim-house-left, .anim-house-right {
    transition: fill 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s;
    transform-origin: center bottom;
}

.anim-flow {
    stroke-dasharray: 6;
    animation: flowLines 1s linear infinite;
    opacity: 0;
    transition: opacity 0.5s;
}

.anim-warn {
    opacity: 0;
    transform: scale(0);
    transform-origin: center;
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.state-pro .anim-house-left { fill: #38bdf8; } /* Sypialnia: chłodno */
.state-pro .anim-house-right { fill: #ef4444; } /* Łazienka: ciepło */
.state-pro .anim-flow { opacity: 1; stroke: var(--rk-sum-green); }

.state-amateur .anim-house-left { fill: var(--rk-sum-gold); } /* Brak asymetrii */
.state-amateur .anim-house-right { fill: var(--rk-sum-gold); } /* Brak asymetrii */
.state-amateur .anim-warn { opacity: 1; transform: scale(1); animation: pulseWarn 1.5s infinite; }
.state-amateur .anim-flow { opacity: 0.2; stroke: var(--rk-sum-red); animation-duration: 3s; }

@keyframes flowLines { to { stroke-dashoffset: -12; } }
@keyframes pulseWarn {
    0% { filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
    50% { filter: drop-shadow(0 0 8px rgba(239, 68, 68, 0.8)); transform: scale(1.1); }
    100% { filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
}

.rk-result-content h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

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

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

/* Mocne CTA */
.rk-sum-cta-box {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-sum-border);
}

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

.rk-sum-cta-text {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

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

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

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

@media (max-width: 768px) {
    .rk-sum-header, .rk-sum-interactive, .rk-sum-cta-box { padding: 35px 25px; }
    .rk-sum-header h2 { font-size: 24px; }
    .rk-decision-wrapper { grid-template-columns: 1fr; gap: 10px; }
    .rk-sim-result { grid-template-columns: 1fr; text-align: center; padding: 25px; }
    .rk-anim-svg { max-width: 90px; margin-bottom: 10px; }
    .rk-sum-quote-text { font-size: 18px; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 16px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Podsumowanie: Czy warto inwestować w sterowanie strefowe?",
    "description": "Zobacz interaktywną analizę efektywności automatyki strefowej. Inżynierski bilans hydrauliczny chroni pompę ciepła i generuje realne oszczędności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-podsumowanie",
    "name": "Wskaźnik Rentowności Sterowania Strefowego (ROI 2026)",
    "description": "Zestawienie analityczne porównujące efektywność cieplną i zapotrzebowanie na przepływ masowy w układach z jednym termostatem centralnym w porównaniu do zaawansowanego sterowania strefowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zrównoważenie hydrauliczne ogrzewania podłogowego",
      "bufor ciepła z pompą ciepła",
      "asymetria temperatur",
      "taktowanie sprężarki pompy",
      "obliczenia obciążenia cieplnego OZC"
    ],
    "measurementTechnique": "Symulacja rozkładu strumienia masowego wody grzewczej i asymetrii temperatur (sypialnia 18°C, łazienka 24°C) z weryfikacją minimalnego przepływu dla agregatu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Instalacja z centralnym termostatem (ryzyko): Skutkuje permanentnym przegrzewaniem sypialni, chłodną łazienką i niebezpiecznym tłumieniem przepływów pompy.",
        "System Strefowy Inżynierski: Gwarantuje idealny klimat, stabilną pracę bufora i realne 20% oszczędności energetycznych rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-podsumowanie",
    "name": "Symulator Asymetrii Cieplnej i Oszczędności OZC",
    "description": "Interaktywne oprogramowanie edukacyjne obrazujące dynamikę przepływów hydraulicznych i podziału na strefy cieplne w domu w oparciu o projekt instalacyjny.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-container" id="strefy-sum-app">
    <div class="rk-sum-header">
        <div class="rk-sum-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Interaktywne Podsumowanie
        </div>
        <h2>Sterowanie strefowe ogrzewaniem – czy warto?</h2>
        <div class="rk-sum-quote-box">
            <div class="rk-sum-quote-mark">"</div>
            <p class="rk-sum-quote-text">
                Jeden centralny termostat w nowoczesnym domu to jak jazda sportowym autem na pierwszym biegu. Prawdziwy komfort, bezawaryjność pompy ciepła i niższe o 20% rachunki zaczynają się od asymetrii temperatur.
            </p>
            <div class="rk-sum-author">
                <span>Robert Kucharski</span> | Specjalista HVAC
            </div>
        </div>
    </div>

    <div class="rk-sum-interactive">
        <div class="rk-decision-wrapper" id="simDecisions">
            <button class="rk-decision-btn active" data-choice="pro">
                <div class="rk-decision-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h4 class="rk-decision-title">Projekt Inżynierski (Strefy)</h4>
            </button>
            <button class="rk-decision-btn" data-choice="amateur">
                <div class="rk-decision-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h4 class="rk-decision-title">Jeden Termostat ("Z głowy")</h4>
            </button>
        </div>

        <div class="rk-sim-result state-pro" id="simResultBox">
            <svg class="rk-anim-svg" viewBox="0 0 100 100">
                <path d="M 10 50 L 50 15 L 90 50 L 90 95 L 10 95 Z" fill="#f8fafc" stroke="#cbd5e1" stroke-width="3" stroke-linejoin="round"/>
                <line x1="50" y1="15" x2="50" y2="95" stroke="#e2e8f0" stroke-width="2" stroke-dasharray="4 4"/>
                
                <path class="anim-house-left" d="M 12 51 L 49 19 L 49 93 L 12 93 Z" />
                <path class="anim-house-right" d="M 88 51 L 51 19 L 51 93 L 88 93 Z" />
                
                <path class="anim-flow" d="M 50 100 L 50 85 L 25 85 L 25 60" fill="none" stroke-width="3" />
                <path class="anim-flow" d="M 50 100 L 50 85 L 75 85 L 75 60" fill="none" stroke-width="3" />
                
                <g class="anim-warn">
                    <circle cx="50" cy="55" r="18" fill="#ffffff" />
                    <path d="M 50 40 L 62 65 L 38 65 Z" fill="#ef4444" stroke="#ef4444" stroke-width="3" stroke-linejoin="round"/>
                    <line x1="50" y1="48" x2="50" y2="56" stroke="#ffffff" stroke-width="3" stroke-linecap="round"/>
                    <circle cx="50" cy="61" r="1.5" fill="#ffffff" />
                </g>
            </svg>
            
            <div class="rk-result-content" id="simResultContent">
                <h4 style="color: var(--rk-sum-green);">Synergia i 20% oszczędności</h4>
                <p>System bezkompromisowo rozwiązuje problem asymetrii potrzeb cieplnych domowników. Gwarantuje temperaturę <strong>24°C w łazience</strong> przy jednoczesnym utrzymaniu zdrowych <strong>18°C w sypialni</strong>.</p>
                <p>To działa bezbłędnie tylko pod jednym warunkiem: struktura pętli, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> oraz przepływy zostały rygorystycznie wyliczone na bazie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> przez projektanta.</p>
            </div>
        </div>
    </div>

    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Automatyka to nie wszystko. Liczy się hydraulika.</h3>
        <p class="rk-sum-cta-text">
            Wyposażenie instalacji w najlepsze sterowniki na nic się zda, jeśli wykonawca ułoży rury „na oko”. Zapobiegnij błędom, które zmuszą Cię do kucia posadzek lub przedwczesnej wymiany pompy ciepła. Zaufaj wiedzy technicznej.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            SPRAWDŹ BAZĘ WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-decision-btn');
    const resultBox = document.getElementById('simResultBox');
    const resultContent = document.getElementById('simResultContent');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana aktywnych przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

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

            // Aktualizacja wizualizacji i treści
            if (choice === 'pro') {
                resultBox.className = 'rk-sim-result state-pro';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-green);">Synergia i 20% oszczędności</h4>
                    <p>System bezkompromisowo rozwiązuje problem asymetrii potrzeb cieplnych domowników. Gwarantuje temperaturę <strong>24°C w łazience</strong> przy jednoczesnym utrzymaniu zdrowych <strong>18°C w sypialni</strong>.</p>
                    <p>To działa bezbłędnie tylko pod jednym warunkiem: struktura pętli, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> oraz przepływy zostały rygorystycznie wyliczone na bazie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> przez projektanta.</p>
                `;
            } else {
                resultBox.className = 'rk-sim-result state-amateur';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-red);">Marnotrawstwo i usterki</h4>
                    <p>Brak podziału na strefy zmusza układ do pracy w jednym parametrze. Skutek? Zły sen (przegrzana sypialnia) i dyskomfort w łazience.</p>
                    <p>Co gorsza, nakładanie siłowników na <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">niezbalansowaną instalację rodem z lat 90.</a> powoduje gwałtowne dławienie <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompy obiegowej</a>, jej ciągłe taktowanie, a w ostateczności awarię całego agregatu.</p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-panel: #1e293b;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-auth-gold: #eab308;
    --rk-auth-gold-glow: rgba(234, 179, 8, 0.2);
    --rk-auth-fb: #1877F2;
    --rk-auth-li: #0A66C2;
}

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

/* Header Area */
.rk-auth-header {
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    padding: 35px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-auth-gold);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

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

.rk-auth-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    font-weight: 500;
}

.rk-auth-trust-badge {
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    color: var(--rk-auth-gold);
    padding: 10px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Main Layout Grid */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Left Sidebar: Profile */
.rk-auth-profile {
    background: var(--rk-auth-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-photo-wrap {
    position: relative;
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 25px var(--rk-auth-blue-glow);
    position: relative;
    z-index: 2;
}

.rk-auth-photo-ring {
    position: absolute;
    top: -8px; left: -8px; right: -8px; bottom: -8px;
    border-radius: 50%;
    border: 2px dashed var(--rk-auth-blue);
    animation: rkSpin 20s linear infinite;
    z-index: 1;
}

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

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

.rk-auth-title {
    font-size: 14px;
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 12px;
    width: 100%;
}

.rk-social-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-social-btn.fb { background: var(--rk-auth-fb); }
.rk-social-btn.li { background: var(--rk-auth-li); }

.rk-social-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}

/* Right Content Area */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

/* Navigation Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
    background: #ffffff;
}

.rk-auth-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-auth-tab:hover {
    color: var(--rk-auth-blue);
    background: var(--rk-auth-surface);
}

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

/* Tab Panels */
.rk-auth-panel {
    padding: 40px;
    display: none;
    animation: rkFadeInUp 0.4s ease forwards;
}

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

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

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

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

.rk-auth-panel p:last-child { margin-bottom: 0; }

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

/* Stats Grid in Panel 2 */
.rk-auth-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.rk-stat-box {
    background: var(--rk-auth-surface);
    border: 1px solid var(--rk-auth-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.3s;
}

.rk-stat-box:hover {
    transform: scale(1.02);
    border-color: var(--rk-auth-blue);
}

.rk-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    color: var(--rk-auth-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    flex-shrink: 0;
}

.rk-stat-info { display: flex; flex-direction: column; }

.rk-stat-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    line-height: 1.2;
}

.rk-stat-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    text-transform: uppercase;
}

/* SVG Interactive Guarantee (Panel 3) */
.rk-guarantee-viz {
    background: var(--rk-auth-dark);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 20px;
    color: #ffffff;
}

.rk-gv-text h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-auth-gold);
}

.rk-gv-text p {
    margin: 0;
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
}

.rk-gv-svg {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}

.rk-gv-shield {
    fill: none;
    stroke: var(--rk-auth-gold);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: rkShieldPulse 2s infinite alternate;
}

.rk-gv-check {
    fill: none;
    stroke: #ffffff;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
}

@keyframes rkShieldPulse {
    0% { filter: drop-shadow(0 0 5px rgba(234, 179, 8, 0.4)); }
    100% { filter: drop-shadow(0 0 15px rgba(234, 179, 8, 0.8)); transform: scale(1.05); }
}

/* Mobile */
@media (max-width: 850px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 25px; }
    .rk-auth-tabs { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-panel { padding: 30px 25px; }
    .rk-auth-stats { grid-template-columns: 1fr; }
    .rk-guarantee-viz { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#article-autor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/"
    },
    "headline": "Gwarancja inżynierskiej jakości – Kto doradza w sprawie automatyki strefowej?",
    "description": "Profil ekspercki Roberta Kucharskiego, inżyniera HVAC weryfikującego skuteczność sterowania strefowego i rozwiązującego problemy taktowania pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-03",
    "dateModified": "2026-06-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#dataset-portfolio",
    "name": "Baza wiedzy i doświadczenia HVAC - Automatyka Strefowa",
    "description": "Zestawienie autorskich statystyk i doświadczeń w optymalizacji systemów płaszczyznowych pod kątem montażu stref, termostatów oraz zapobiegania dławieniu pomp.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie strefowe ogrzewaniem czy warto",
      "automatyka do podłogówki",
      "projektowanie ogrzewania podłogowego OZC",
      "zrównoważenie hydrauliczne",
      "termostat pokojowy do podłogówki"
    ],
    "measurementTechnique": "Agregacja danych z ponad 1000 zrealizowanych projektów instalacji niskotemperaturowych, skutkująca średnim spadkiem zużycia energii o 20% poprzez systemy strefowe.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zrealizowane projekty instalacji z podziałem strefowym: 1000+",
        "Średnia redukcja rachunków dzięki termostatom PVM/TPI: 20%",
        "Specjalizacja: Integracja pomp ciepła, automatyki i normy PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/#webapp-autor-portfolio",
    "name": "Interaktywne Portfolio Eksperckie E-E-A-T (Automatyka)",
    "description": "Moduł weryfikujący autorytet inżynierski autora w dziedzinie HVAC, integrujący statystyki oszczędności z automatyki strefowej i zgodność z normami OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rkAuthApp">
    
    <div class="rk-auth-header">
        <div class="rk-auth-header-text">
            <h2>Gwarancja inżynierskiej jakości</h2>
            <p>Nie powielam internetowych mitów. Dowiedz się, kto bierze odpowiedzialność za te wyliczenia.</p>
        </div>
        <div class="rk-auth-trust-badge">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zweryfikowany Ekspert E-E-A-T
        </div>
    </div>

    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <div class="rk-auth-photo-ring"></div>
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-auth-photo">
            </div>
            
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Główny Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn li">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" data-panel="omnie">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    O Mnie
                </button>
                <button class="rk-auth-tab" data-panel="liczby">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    W Liczbach
                </button>
                <button class="rk-auth-tab" data-panel="filozofia">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Filozofia OZC
                </button>
            </div>

            <div class="rk-auth-panel active" id="panel-omnie">
                <h3>Praktyka wygrywa z teorią</h3>
                <p>
                    Projektowanie <strong>sterowania strefowego ogrzewaniem</strong> to nie zgadywanie, lecz matematyka i fizyka budowli. Od lat doradzam inwestorom, audytuję błędy deweloperów i udowadniam, że odpowiednia komunikacja termostatów z listwą zapobiega dławieniu pomp obiegowych.
                </p>
                <p>
                    Zbudowałem własne zaplecze techniczne i dom od zera. Wiem, ile kosztuje inwestora "robienie na oko" bez <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">bilansu hydraulicznego</a>. W projekt-ogrzewania.pl łączę <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia OZC</a> z pragmatyzmem z placu budowy.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-liczby">
                <h3>Instalacje oparte na twardych danych</h3>
                <p>Nie pozwalam by pompa ciepła "taktowała". Projektuję <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">rozstawy rur i układy strefowe</a> gwarantując asymetrię temperatur między sypialnią a salonem.</p>
                
                <div class="rk-auth-stats">
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">1000+</div>
                            <div class="rk-stat-label">Stworzonych Projektów OZC</div>
                        </div>
                    </div>
                    
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">~20%</div>
                            <div class="rk-stat-label">Oszczędności dzięki strefom</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-filozofia">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Mój fundament to ścisła integracja automatyki z wymogami pompy ciepła. Nie akceptuję mieszania pętli ani braku buforów. Każde pomieszczenie traktuję indywidualnie, opierając <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">nastawy rotametrów i przepływy</a> na bezlitosnej matematyce.
                </p>
                
                <div class="rk-guarantee-viz">
                    <div class="rk-gv-text">
                        <h4>Zgodność z PN-EN 1264</h4>
                        <p>Moje rozwiązania opierają się na obowiązujących normach projektowania ogrzewania płaszczyznowego, minimalizując błąd <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej jastrychu</a>.</p>
                    </div>
                    <svg class="rk-gv-svg" viewBox="0 0 100 100">
                        <path class="rk-gv-shield" d="M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z"></path>
                        <path class="rk-gv-check" d="M 35 50 L 45 60 L 70 35"></path>
                    </svg>
                </div>
            </div>

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

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active classes
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked tab
            this.classList.add('active');

            // Show corresponding panel
            const target = this.getAttribute('data-panel');
            document.getElementById('panel-' + target).classList.add('active');
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe ogrzewaniem &#8211; czy warto?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile czasu nagrzewa się podłogówka?</title>
		<link>https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 12:29:39 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort cieplny w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Ogrzewanie wodne]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[czas nagrzewania]]></category>
		<category><![CDATA[ile czasu nagrzewa się podłogówka]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka wodna]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2975</guid>

					<description><![CDATA[<p>Ile czasu nagrzewa się podłogówka i dlaczego nie działa tak jak tradycyjny grzejnik? Wodne ogrzewanie podłogowe to system, który oferuje wyjątkowy komfort cieplny, ale wymaga zrozumienia jego specyfiki. Kluczową rolę odgrywa bezwładność cieplna jastrychu, parametry instalacji oraz sposób sterowania. W artykule szczegółowo wyjaśniamy, od czego zależy czas nagrzewania podłogówki, jak wygląda to w praktyce podczas rozruchu, codziennej eksploatacji i nagłych zmian pogody oraz dlaczego prawidłowy projekt instalacji ma decydujący wpływ na dynamikę pracy systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #38bdf8;
    --rk-intro-bg: #ffffff;
    --rk-intro-gray: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-highlight: #fef3c7;
    --rk-intro-gold: #b45309;
}

.rk-intro-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-intro-dark);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.15);
    overflow: hidden;
    /* CELOWO BRAK ANIMACJI ZGODNIE Z WYTYCZNYMI */
}

/* Sekcja Hook / Tytułowa */
.rk-intro-hero {
    background: var(--rk-intro-dark);
    padding: 45px 50px 40px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
    position: relative;
}

.rk-intro-hero h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-intro-hero p.rk-hook-text {
    font-size: 17px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Szybka Odpowiedź (Featured Snippet Box) */
.rk-qa-box {
    background: var(--rk-intro-blue-light);
    border: 1px solid #bae6fd;
    border-left: 6px solid var(--rk-intro-blue);
    margin: -20px 50px 30px;
    padding: 25px 35px;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 25px;
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.1);
}

.rk-qa-icon {
    background: var(--rk-intro-blue);
    color: #ffffff;
    width: 60px;
    height: 60px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-qa-content h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-qa-content p {
    margin: 0;
    font-size: 16px;
    color: var(--rk-intro-text);
    line-height: 1.5;
    font-weight: 700;
}

.rk-qa-highlight {
    color: var(--rk-intro-blue);
    font-size: 18px;
    font-weight: 900;
}

/* Główny Tekst Wstępu */
.rk-intro-body {
    padding: 10px 50px 30px;
}

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

/* Interaktywny Nawigator (Agenda) */
.rk-agenda-wrapper {
    background: var(--rk-intro-gray);
    padding: 35px 50px;
    border-top: 1px solid var(--rk-intro-border);
}

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

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

.rk-agenda-btn {
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

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

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

.rk-agenda-icon {
    width: 36px;
    height: 36px;
    background: #e2e8f0;
    color: var(--rk-intro-text);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

/* Treść Agendy (Natychmiastowe pokazanie) */
.rk-agenda-content {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-intro-blue);
    border-radius: 12px;
    padding: 20px 25px;
    margin-top: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-intro-text);
    grid-column: 1 / -1;
}

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

/* Pasek z narzędziami */
.rk-tools-banner {
    background: var(--rk-intro-highlight);
    border-top: 1px solid #fde68a;
    padding: 20px 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    color: var(--rk-intro-gold);
    font-weight: 800;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-inline-link {
    color: var(--rk-intro-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-intro-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-intro-hero { padding: 35px 20px; }
    .rk-qa-box { margin: -15px 20px 25px; padding: 20px; flex-direction: column; text-align: center; gap: 15px; }
    .rk-intro-body, .rk-agenda-wrapper, .rk-tools-banner { padding: 25px 20px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
    .rk-tools-banner { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile czasu nagrzewa się podłogówka? Szybka odpowiedź i inżynierskie fakty",
    "description": "Zrozumienie bezwładności cieplnej instalacji ogrzewania podłogowego. Szybka odpowiedź na temat czasu nagrzewania jastrychu i rezygnacja z nawyków z grzejników.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wstep",
    "name": "Bazowe czasy nagrzewania i stabilizacji instalacji podłogowej",
    "description": "Referencyjne wskaźniki czasowe określające dynamikę układu wodnego ogrzewania płaszczyznowego oparte na wytycznych normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile czasu nagrzewa się podłogówka",
      "czym jest bezwładność cieplna w ogrzewaniu podłogowym",
      "norma obliczeń ogrzewania podłogowego en 1264",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "wodne ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Szacunkowe przedziały czasowe osiągania komfortu cieplnego w relacji do normatywnych limitów temperatur (max 29°C na posadzce).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Czas do pierwszej odczuwalnej zmiany temperatury: 2 do 3 godzin.",
        "Czas do pełnej stabilizacji termicznej (jastrych 7cm): 6 do 10 godzin."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-wstep",
    "name": "Interaktywny Nawigator Artykułu",
    "description": "Zestawienie najważniejszych bloków merytorycznych z możliwością natychmiastowego podejrzenia kluczowych wniosków z poszczególnych sekcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-module" id="wstep-podlogowka-app">
    
    <div class="rk-intro-hero">
        <h2>Ile czasu nagrzewa się podłogówka? Baza inżynierskich faktów</h2>
        <p class="rk-hook-text">Wybór wodnego ogrzewania podłogowego to rezygnacja z natychmiastowej reakcji znanej z grzejników. Brak ciepła &#8222;na żądanie&#8221; po przestawieniu termostatu często wywołuje ból, niepokój i frustrację inwestorów. Czas poznać fizykę budowli.</p>
    </div>

    <div class="rk-qa-box">
        <div class="rk-qa-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
        </div>
        <div class="rk-qa-content">
            <h3>Szybka Odpowiedź:</h3>
            <p>Czas nagrzewania standardowej podłogówki (jastrych cementowy 7 cm) wynosi od <span class="rk-qa-highlight">2 do 3 godzin</span> do momentu uzyskania pierwszej odczuwalnej zmiany, oraz od <span class="rk-qa-highlight">6 do 10 godzin</span> do pełnej stabilizacji termicznej pomieszczenia.</p>
        </div>
    </div>

    <div class="rk-intro-body">
        <p>Wpływ na ten czas reakcji mają cztery główne zmienne: <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-inline-link">bezwładność cieplna</a> samej płyty grzewczej, opór cieplny dobranej okładziny wierzchniej (tzw. parametr R wyrażany w W/m²K), zoptymalizowany rozstaw rur oraz precyzyjna temperatura zasilania medium. Precyzyjne wyznaczenie dynamiki całego rozruchu instalacji bezwzględnie definiuje <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">norma PN-EN 1264</a>, która określa m.in. graniczne, zdrowe temperatury powierzchni podłogi (np. 29°C dla strefy stałego przebywania ludzi).</p>
        
        <p>Zrozumienie mechaniki przepływu ciepła pozwala zoptymalizować <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-inline-link">krzywą grzewczą</a>, drastycznie obniżyć koszty eksploatacji <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-inline-link">pompy ciepła</a> lub <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" class="rk-inline-link">nowoczesnego kotła gazowego</a>, oraz uniknąć niedogrzania budynku podczas nagłych, silnych zmian pogodowych.</p>
    </div>

    <div class="rk-agenda-wrapper">
        <h3 class="rk-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
            Co znajdziesz w tym artykule?
        </h3>
        
        <div class="rk-agenda-grid">
            <button class="rk-agenda-btn active" data-target="info-1">
                <div class="rk-agenda-icon">1</div>
                Wpływ grubości jastrychu i okładzin
            </button>
            <button class="rk-agenda-btn" data-target="info-2">
                <div class="rk-agenda-icon">2</div>
                Nocna redukcja temperatury i błędy
            </button>
            <button class="rk-agenda-btn" data-target="info-3">
                <div class="rk-agenda-icon">3</div>
                Konsekwencje złego rozstawu rur
            </button>
            <button class="rk-agenda-btn" data-target="info-4">
                <div class="rk-agenda-icon">4</div>
                Porównanie: System mokry vs suchy
            </button>
            
            <div class="rk-agenda-content active" id="info-1">
                <strong>Omawiamy bezwładność masy:</strong> Zobaczysz, dlaczego każdy dodatkowy centymetr betonu ponad rurą wydłuża czas nagrzewania, oraz dowiesz się, jak panele i podkłady blokują przepływ energii do pokoju.
            </div>
            <div class="rk-agenda-content" id="info-2">
                <strong>Niszczenie wskaźnika COP:</strong> Wyjaśniamy, dlaczego całkowite wyłączanie podłogówki na noc zmusza pompę ciepła do pracy na wysokich parametrach, generując potężne koszty zamiast oszczędności.
            </div>
            <div class="rk-agenda-content" id="info-3">
                <strong>Tzw. Ząb termiczny:</strong> Prezentujemy skutki hydrauliczne układania rur &#8222;na oko&#8221; (np. stałe 15 cm) przy oknach tarasowych bez odpowiednich obliczeń inżynierskich OZC.
            </div>
            <div class="rk-agenda-content" id="info-4">
                <strong>Alternatywy dla drewnianych stropów:</strong> Wskazujemy różnice techniczne i drastyczne skrócenie czasu reakcji (do kilkudziesięciu minut) przy zastosowaniu systemów lekkich (zabudowy suchej).
            </div>
        </div>
    </div>

    <div class="rk-tools-banner">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
        <span>W dalszej części artykułu znajdziesz zaawansowane symulatory oraz interaktywne kalkulatory czasów nagrzewania!</span>
    </div>

</div>

<script>
// Czysty i bezpieczny kod JS, bez znaków &&
(function() {
    function initIntroAgenda() {
        var app = document.getElementById('wstep-podlogowka-app');
        if (!app) return;

        var btns = app.querySelectorAll('.rk-agenda-btn');
        var contents = app.querySelectorAll('.rk-agenda-content');

        for (var i = 0; i < btns.length; i++) {
            btns[i].addEventListener('click', function() {
                var targetId = this.getAttribute('data-target');

                // Zabezpieczenie przed "zamykaniem" wybranego elementu na mobile
                if (window.innerWidth <= 768) {
                    if (this.classList.contains('active')) {
                        return;
                    }
                }

                // Reset aktywności
                for (var j = 0; j < btns.length; j++) {
                    btns[j].classList.remove('active');
                }
                for (var k = 0; k < contents.length; k++) {
                    contents[k].classList.remove('active');
                }

                // Aktywacja bieżącego i przeniesienie pod nim kontenera (symulacja zachowania akordeonu)
                this.classList.add('active');
                var activeContent = document.getElementById(targetId);
                
                if (activeContent) {
                    activeContent.classList.add('active');
                    // Przenieś element z treścią dokładnie pod aktualnie kliknięty przycisk
                    this.parentNode.insertBefore(activeContent, this.nextSibling);
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initIntroAgenda);
    } else {
        initIntroAgenda();
    }
})();
</script>



<style>
:root {
    --rk-shock-dark: #0f172a;
    --rk-shock-blue: #0284c7;
    --rk-shock-bg: #ffffff;
    --rk-shock-gray: #f8fafc;
    --rk-shock-border: #e2e8f0;
    --rk-shock-text: #334155;
    
    /* Kolory Statusów */
    --rk-safe-color: #10b981;
    --rk-safe-bg: #ecfdf5;
    --rk-warn-color: #f59e0b;
    --rk-warn-bg: #fffbeb;
    --rk-crit-color: #ef4444;
    --rk-crit-bg: #fef2f2;
}

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

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

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

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

/* Symulator - Układ Liniowy */
.rk-shock-simulator {
    padding: 40px 50px;
    background: var(--rk-shock-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 1px solid var(--rk-shock-border);
}

.rk-shock-controls {
    width: 100%;
    max-width: 650px;
    background: #ffffff;
    padding: 30px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-shock-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
    margin-bottom: 30px;
}

.rk-shock-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.rk-shock-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-shock-dark);
}

.rk-shock-val-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-shock-blue);
    background: #f0f9ff;
    padding: 6px 16px;
    border-radius: 10px;
    font-family: monospace;
}

/* Suwak Temperatury */
input[type=range].rk-shock-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-shock-range:focus { outline: none; }
input[type=range].rk-shock-range::-webkit-slider-runnable-track {
    width: 100%; height: 12px; cursor: pointer;
    background: linear-gradient(90deg, var(--rk-safe-color) 0%, var(--rk-warn-color) 50%, var(--rk-crit-color) 100%);
    border-radius: 6px;
}
input[type=range].rk-shock-range::-webkit-slider-thumb {
    height: 32px; width: 32px; border-radius: 50%;
    background: #ffffff; cursor: pointer;
    -webkit-appearance: none; margin-top: -10px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border: 5px solid var(--rk-shock-dark);
    transition: transform 0.1s;
}
input[type=range].rk-shock-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Wizualizacja SVG i Status */
.rk-shock-visual {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-box {
    background: #ffffff;
    border: 1px solid var(--rk-shock-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 8px 16px -4px rgba(0,0,0,0.05);
    text-align: center;
    position: relative;
}

.rk-status-panel {
    background: #ffffff;
    border: 2px solid var(--rk-safe-color);
    border-radius: 16px;
    padding: 30px;
    transition: all 0.3s;
}

.rk-status-head {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-status-desc {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
}

.rk-stress-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 800;
    margin-top: 15px;
}

/* Pęknięcia SVG (Animowane przez JS) */
.svg-crack {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    transition: stroke-dashoffset 0.5s ease-out, stroke 0.3s;
}

/* Treść Tekstowa */
.rk-shock-content {
    padding: 40px 50px;
}

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

.rk-shock-content p:last-child { margin: 0; }

.rk-shock-alert {
    background: var(--rk-crit-bg);
    border-left: 4px solid var(--rk-crit-color);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin: 30px 0;
}

.rk-shock-alert strong {
    display: block;
    color: #991b1b;
    font-size: 18px;
    margin-bottom: 8px;
}

.rk-tech-box {
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    padding: 15px 20px;
    border-radius: 10px;
    font-family: monospace;
    font-weight: 700;
    color: var(--rk-shock-blue);
    text-align: center;
    margin: 20px 0;
    font-size: 15px;
}

.rk-inline-link {
    color: var(--rk-shock-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-shock-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-shock-header, .rk-shock-simulator, .rk-shock-content { padding: 30px 20px; }
    .rk-shock-visual { grid-template-columns: 1fr; gap: 20px; }
    .rk-shock-controls { padding: 25px 20px; }
    .rk-shock-label-row { flex-direction: column; gap: 15px; text-align: center; }
    .rk-status-panel { padding: 20px; }
    .rk-shock-alert { padding: 20px; margin: 25px 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-pierwsze-uruchomienie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile czasu nagrzewa się podłogówka po pierwszym włączeniu na początku sezonu grzewczego?",
    "description": "Dlaczego puszczenie 50°C na zimną wylewkę to błąd? Wyjaśnienie normy PN-EN 1264-4, procedury wygrzewania i szoku termicznego betonu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wygrzewanie",
    "name": "Normatywny protokół wygrzewania wylewki grzewczej",
    "description": "Zestawienie dopuszczalnych temperatur zasilania w pierwszych dobach rozruchu instalacji płaszczyznowej wg PN-EN 1264-4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma obliczeń ogrzewania podłogowego en 1264",
      "wylewka betonowa na ogrzewanie podłogowe",
      "próba szczelności ogrzewania podłogowego",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "harmonogram wygrzewania wylewki"
    ],
    "measurementTechnique": "Szacowanie naprężeń ścinających wewnątrz struktury jastrychu (max 2.2 MPa dla betonu C20/25) na podstawie gwałtownego przyrostu temperatury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Doba 1-3: Stała temperatura zasilania 20°C.",
        "Doba 4+: Stopniowy wzrost temperatury o max 5°C na dobę aż do wartości projektowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-szok-termiczny",
    "name": "Symulator Szoku Termicznego Jastrychu",
    "description": "Interaktywny panel demonstrujący ryzyko strukturalnego zniszczenia wylewki betonowej w przypadku przekroczenia zaleceń temperaturowych na etapie rozruchu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-shock-module" id="szok-termiczny-app">
    
    <div class="rk-shock-header">
        <h2>Ile czasu nagrzewa się podłogówka po pierwszym włączeniu?</h2>
        <p>Próba szybkiego wygrzania zimnego domu to najprostsza droga do zniszczenia posadzki. Sprawdź, jak reaguje beton na szok termiczny.</p>
    </div>

    <div class="rk-shock-simulator">
        
        <div class="rk-shock-controls">
            <div class="rk-shock-label-row">
                <span class="rk-shock-label">Temperatura zasilania na start:</span>
                <span class="rk-shock-val-display"><span id="rk-out-temp">20</span> °C</span>
            </div>
            <input type="range" id="rk-in-temp" class="rk-shock-range" min="15" max="55" step="1" value="20">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700; margin-top:10px;">
                <span>15°C</span>
                <span>Normatywne 20°C</span>
                <span>Krytyczne 55°C</span>
            </div>
        </div>

        <div class="rk-shock-visual">
            <div class="rk-svg-box">
                <svg viewBox="0 0 200 150" width="100%" height="100%">
                    <rect x="20" y="20" width="160" height="110" fill="#e2e8f0" rx="8" id="rk-svg-bg"/>
                    
                    <circle cx="100" cy="75" r="15" fill="none" stroke="#64748b" stroke-width="6"/>
                    <circle cx="100" cy="75" r="10" fill="#38bdf8" id="rk-svg-water"/>
                    
                    <circle cx="100" cy="75" r="35" fill="none" stroke="#ef4444" stroke-width="2" opacity="0" id="rk-svg-wave" class="heat-wave"/>
                    
                    <path d="M 100 50 L 80 20 M 110 60 L 140 20 M 85 90 L 40 110 M 115 90 L 160 120" 
                          fill="none" stroke="#b91c1c" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="svg-crack" id="rk-svg-crack"/>
                </svg>
            </div>

            <div class="rk-status-panel" id="rk-status-box">
                <div class="rk-status-head" id="rk-status-head">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Zgodnie z normą
                </div>
                <div class="rk-status-desc" id="rk-status-desc">
                    Bezpieczny rozruch. Beton stopniowo absorbuje energię. Brak ryzyka uszkodzeń strukturalnych.
                </div>
                <div class="rk-stress-badge" id="rk-stress-badge" style="background: #d1fae5; color: #065f46;">Naprężenia: ~0.5 MPa (Bezpieczne)</div>
            </div>
        </div>

    </div>

    <div class="rk-shock-content">
        <p>Pierwsze, technologiczne uruchomienie zimnej instalacji (po okresie letnim lub po <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-inline-link">wykonaniu wylewek betonowych</a>) trwa z reguły <strong>od 3 do 7 dni dla jastrychu anhydrytowego</strong> oraz <strong>od 7 do 14 dni dla jastrychu cementowego</strong>.</p>
        
        <p>Wynika to bezpośrednio z procedury wygrzewania płyty grzewczej określonej w <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">normie PN-EN 1264-4</a>. Przepisy te kategorycznie zabraniają gwałtownego podnoszenia temperatury medium, aby uniknąć wewnętrznych naprężeń ścinających betonu.</p>

        <div class="rk-tech-box">
            [Dzień 1-3: Stałe 20°C] ──> [Dzień 4: 25°C] ──> [Dzień 5: 30°C] ──> [Dzień 6: 35°C (Moc projektowa)]
        </div>

        <div class="rk-shock-alert">
            <strong>Główny błąd niecierpliwych inwestorów!</strong>
            Ból inwestorów wynika z próby wymuszenia szybkiego startu układu na początku sezonu. Ustawiają na rozdzielaczu temperaturę zasilania rzędu 50°C, wprowadzając potężny szok termiczny do zimnej wylewki.
        </div>

        <p>Dla standardowego betonu klasy C20/25 wytrzymałość na rozciąganie przy zginaniu (f_ctm) wynosi <strong>zaledwie 2,2 MPa</strong>. Gwałtowny skok temperatury generuje naprężenia fizycznie rozrywające tę strukturę. Konsekwencją jest destrukcja jastrychu, zerwanie połączenia adhezyjnego między rurą PEX a betonem oraz głośne pękanie płytek ceramicznych.</p>

        <p>Powód tak długiego, wymaganego czasu rozruchu to czysta fizyka – konieczność dostarczenia potężnej ilości energii do "martwej" masy. Należy pamiętać, że po prawidłowo wykonanej <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-inline-link">próbie szczelności ogrzewania podłogowego</a>, wylewka o grubości 7 cm na powierzchni zaledwie 100 m² waży blisko <strong>15 000 kg</strong> i musi zmienić swoją temperaturę o kilkanaście stopni Kelwina.</p>
    </div>

</div>

<script>
(function() {
    function initShockSim() {
        if(!document.getElementById('szok-termiczny-app')) return;

        const slider = document.getElementById('rk-in-temp');
        const outTemp = document.getElementById('rk-out-temp');
        
        // Elementy SVG
        const waterSVG = document.getElementById('rk-svg-water');
        const bgSVG = document.getElementById('rk-svg-bg');
        const waveSVG = document.getElementById('rk-svg-wave');
        const crackSVG = document.getElementById('rk-svg-crack');
        
        // Elementy Statusu
        const statusBox = document.getElementById('rk-status-box');
        const statusHead = document.getElementById('rk-status-head');
        const statusDesc = document.getElementById('rk-status-desc');
        const stressBadge = document.getElementById('rk-stress-badge');

        function updateShockVisuals() {
            // Bezpieczne pobranie wartości
            const temp = parseInt(slider.value, 10) || 20;
            outTemp.textContent = temp;

            // Logika stanów - używamy zagnieżdżonych bezpiecznych IF'ów (bez ampersandów)
            if (temp <= 22) {
                // STAN: ZIELONY (Norma)
                waterSVG.setAttribute('fill', '#38bdf8'); // Zimna woda
                bgSVG.setAttribute('fill', '#e2e8f0');
                waveSVG.setAttribute('opacity', '0');
                crackSVG.style.strokeDashoffset = '100'; // Ukryte pęknięcia

                statusBox.style.borderColor = 'var(--rk-safe-color)';
                statusBox.style.background = 'var(--rk-shock-bg)';
                
                statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-safe-color)" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Zgodnie z normą';
                statusHead.style.color = 'var(--rk-safe-color)';
                statusDesc.textContent = "Bezpieczny rozruch wg EN 1264. Beton stopniowo absorbuje energię. Brak ryzyka uszkodzeń strukturalnych.";
                
                stressBadge.style.background = 'var(--rk-safe-bg)';
                stressBadge.style.color = '#065f46';
                stressBadge.textContent = "Naprężenia: ~0.5 MPa (Bezpieczne)";

            } else {
                if (temp <= 35) {
                    // STAN: ŻÓŁTY (Ostrzeżenie)
                    waterSVG.setAttribute('fill', '#f59e0b'); // Ciepła woda
                    bgSVG.setAttribute('fill', '#fef3c7');
                    
                    waveSVG.setAttribute('opacity', '0.5');
                    waveSVG.setAttribute('stroke', '#f59e0b');
                    
                    crackSVG.style.strokeDashoffset = '70'; // Lekkie mikropęknięcia

                    statusBox.style.borderColor = 'var(--rk-warn-color)';
                    statusBox.style.background = 'var(--rk-warn-bg)';
                    
                    statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-warn-color)" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> Ryzyko mikropęknięć';
                    statusHead.style.color = '#b45309';
                    statusDesc.textContent = "Przekroczony gradient narostu temperatury. Możliwe miejscowe osłabienie adhezji rury PEX.";
                    
                    stressBadge.style.background = '#fef08a';
                    stressBadge.style.color = '#92400e';
                    stressBadge.textContent = "Naprężenia: ~1.8 MPa (Graniczne)";

                } else {
                    // STAN: CZERWONY (Krytyczny Szok Termiczny)
                    waterSVG.setAttribute('fill', '#ef4444'); // Gorąca woda
                    bgSVG.setAttribute('fill', '#fee2e2');
                    
                    waveSVG.setAttribute('opacity', '1');
                    waveSVG.setAttribute('stroke', '#ef4444');
                    
                    crackSVG.style.strokeDashoffset = '0'; // Pełne pęknięcia

                    statusBox.style.borderColor = 'var(--rk-crit-color)';
                    statusBox.style.background = 'var(--rk-crit-bg)';
                    
                    statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-crit-color)" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> Szok Termiczny!';
                    statusHead.style.color = '#b91c1c';
                    statusDesc.textContent = "Beton ulega fizycznemu zerwaniu (spękania). Możliwe oderwanie ułożonych płytek ceramicznych.";
                    
                    stressBadge.style.background = '#fecaca';
                    stressBadge.style.color = '#991b1b';
                    stressBadge.textContent = "Naprężenia: > 3.0 MPa (Zniszczenie!)";
                }
            }
        }

        // Podwójne zabezpieczenie zdarzeń (kompatybilność z mobilkami)
        slider.addEventListener('input', updateShockVisuals);
        slider.addEventListener('change', updateShockVisuals);

        // Init
        updateShockVisuals();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initShockSim);
    } else {
        initShockSim();
    }
})();
</script>



<style>
:root {
    --rk-mass-dark: #0f172a;
    --rk-mass-blue: #0284c7;
    --rk-mass-blue-light: #f0f9ff;
    --rk-mass-accent: #38bdf8;
    --rk-mass-gray: #f8fafc;
    --rk-mass-border: #e2e8f0;
    --rk-mass-text: #334155;
    
    /* Kolory Wylewek */
    --rk-cem-color: #64748b;
    --rk-cem-bg: #f1f5f9;
    --rk-anh-color: #d97706;
    --rk-anh-bg: #fffbeb;

    /* Kolory Alertów */
    --rk-alert-ok: #10b981;
    --rk-alert-warn: #f59e0b;
    --rk-alert-danger: #ef4444;
}

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

/* Nagłówek */
.rk-mass-header {
    background: var(--rk-mass-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-mass-blue);
    position: relative;
    overflow: hidden;
}

.rk-mass-header::after {
    content: '';
    position: absolute;
    right: -20px; top: -20px;
    width: 150px; height: 150px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.2) 0%, transparent 70%);
}

.rk-mass-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-mass-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Symulator - Liniowy Układ (Jedna Kolumna) */
.rk-mass-ui {
    display: flex;
    flex-direction: column;
    background: var(--rk-mass-gray);
    border-bottom: 1px solid var(--rk-mass-border);
}

.rk-mass-controls {
    padding: 40px 50px 10px;
    max-width: 750px;
    margin: 0 auto;
    width: 100%;
}

/* Przełącznik Typu Wylewki */
.rk-screed-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 14px;
    margin-bottom: 30px;
    position: relative;
}

.rk-screed-btn {
    flex: 1;
    padding: 14px 10px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 10px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.rk-screed-btn.active { color: var(--rk-mass-dark); }

.rk-screed-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-screed-btn[data-type="cement"].active ~ .rk-screed-slider {
    transform: translateX(100%);
}

/* Suwak Grubości */
.rk-thick-group {
    background: #ffffff;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-mass-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}

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

.rk-thick-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-mass-blue);
    background: var(--rk-mass-blue-light);
    padding: 6px 16px;
    border-radius: 8px;
}

input[type=range].rk-thick-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-thick-range:focus { outline: none; }
input[type=range].rk-thick-range::-webkit-slider-runnable-track {
    width: 100%; height: 10px; cursor: pointer;
    background: #cbd5e1; border-radius: 5px;
}
input[type=range].rk-thick-range::-webkit-slider-thumb {
    height: 30px; width: 30px; border-radius: 50%;
    background: var(--rk-mass-blue); cursor: pointer;
    -webkit-appearance: none; margin-top: -10px;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
    border: 4px solid #ffffff; transition: transform 0.1s;
}
input[type=range].rk-thick-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Wizualizator Wyników (Pod suwakami) */
.rk-mass-visualizer {
    padding: 20px 50px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 800px;
    margin: 0 auto;
    width: 100%;
}

.rk-svg-container {
    width: 100%;
    max-width: 300px; /* Nieco powiększony SVG */
    background: #ffffff;
    border: 1px solid var(--rk-mass-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.04);
    margin-bottom: 25px;
}

.rk-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
}

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

.rk-metric-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-mass-text);
    margin-bottom: 8px;
}

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

/* Status Alert */
.rk-status-banner {
    width: 100%;
    padding: 15px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-align: center;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all 0.3s;
}

.status-ok { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.status-warn { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.status-danger { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

/* Treść Tekstowa */
.rk-mass-content {
    padding: 40px 50px;
}

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

.rk-mass-content p:last-child { margin: 0; }

.rk-mass-alert {
    background: #fef2f2;
    border-left: 4px solid var(--rk-alert-danger);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-mass-alert strong {
    display: block;
    color: #991b1b;
    font-size: 18px;
    margin-bottom: 8px;
}

.rk-inline-link {
    color: var(--rk-mass-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-mass-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-mass-header, .rk-mass-controls, .rk-mass-visualizer, .rk-mass-content { padding: 30px 20px; }
    .rk-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-screed-toggle { flex-direction: column; background: transparent; padding: 0; margin-bottom: 20px; }
    .rk-screed-slider { display: none; }
    .rk-screed-btn { background: #e2e8f0; border: 1px solid var(--rk-mass-border); margin-bottom: 10px; width: 100%; }
    .rk-screed-btn.active { background: #ffffff; border-color: var(--rk-mass-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    .rk-thick-group { padding: 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-grubosc-wylewki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak grubość wylewki jastrychowej wpływa na czas nagrzewania ogrzewania podłogowego?",
    "description": "Zrozum zjawisko bezwładności cieplnej. Sprawdź, dlaczego wylanie 12 cm betonu na podłogówkę to błąd, który wydłuża czas nagrzewania do kilkunastu godzin.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-grubosc",
    "name": "Wpływ grubości jastrychu na masę i czas nagrzewania",
    "description": "Tabela zależności pomiędzy rodzajem wylewki (anhydryt vs cement), jej grubością (w centymetrach) a czasem reakcji układu ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka betonowa na ogrzewanie podłogowe",
      "wylewka na ogrzewanie podłogowe kompletny przewodnik",
      "czym jest bezwładność cieplna w ogrzewaniu podłogowym",
      "najczęstsze błędy przy montażu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Algorytm oparty o normę PN-EN 1264, szacujący przyrost czasu nagrzewania (1.5-2h na każdy dodatkowy 1cm betonu powyżej rury grzewczej).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych anhydrytowy (60 mm): Czas nagrzewania 2-4 godz.",
        "Jastrych cementowy (75 mm): Czas nagrzewania 6-10 godz.",
        "Błąd wykonawczy (120 mm betonu): Czas nagrzewania 14-18 godz., masa 260 kg/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-grubosc",
    "name": "Symulator Bezwładności Jastrychu",
    "description": "Interaktywne narzędzie obliczeniowe pozwalające wizualizować przyrost masy stropu i czasu opóźnienia hydraulicznego na skutek pogrubiania płyty grzewczej jastrychu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mass-module" id="grubosc-wylewki-app">
    
    <div class="rk-mass-header">
        <h2>Jak grubość wylewki wpływa na czas nagrzewania?</h2>
        <p>Każdy dodatkowy centymetr betonu to dodatkowe tony masy do ogrzania. Sprawdź, czy Twój wykonawca nie funduje Ci separatora termicznego.</p>
    </div>

    <div class="rk-mass-ui">
        
        <div class="rk-mass-controls">
            <div class="rk-screed-toggle">
                <button class="rk-screed-btn active" data-type="anhydryt">Anhydryt (Płynny)</button>
                <button class="rk-screed-btn" data-type="cement">Cementowy (Tradycyjny)</button>
                <div class="rk-screed-slider"></div>
            </div>

            <div class="rk-thick-group">
                <div class="rk-thick-label">
                    <span>Grubość Wylewki (Całkowita)</span>
                    <span class="rk-thick-val"><span id="rk-val-thick">6.0</span> cm</span>
                </div>
                <input type="range" id="rk-in-thick" class="rk-thick-range" min="3.5" max="12.0" step="0.5" value="6.0">
                <div style="font-size:13px; color:#64748b; margin-top:12px; font-weight:600; text-align:center;">
                    Zgodnie z EN 1264: min. 35mm nad rurą (Anhydryt) / min. 45mm nad rurą (Cement).
                </div>
            </div>
        </div>

        <div class="rk-mass-visualizer">
            
            <div class="rk-svg-container">
                <svg viewBox="0 0 200 160" width="100%" height="100%">
                    <circle cx="100" cy="130" r="10" fill="none" stroke="#ef4444" stroke-width="4"></circle>
                    <circle cx="100" cy="130" r="3" fill="#ef4444"></circle>
                    
                    <rect id="rk-svg-screed" x="40" y="80" width="120" height="70" fill="#d97706" opacity="0.4" rx="4"></rect>
                    
                    <line id="rk-svg-line" x1="20" y1="80" x2="180" y2="80" stroke="#0f172a" stroke-width="2" stroke-dasharray="4"></line>
                </svg>
            </div>

            <div class="rk-metrics-grid">
                <div class="rk-metric-card" id="rk-card-mass">
                    <div class="rk-metric-label">Ciężar płyty</div>
                    <div class="rk-metric-value"><span id="rk-out-mass">126</span> kg/m²</div>
                </div>
                <div class="rk-metric-card" id="rk-card-time">
                    <div class="rk-metric-label">Czas reakcji</div>
                    <div class="rk-metric-value"><span id="rk-out-time">3.0</span> godz.</div>
                </div>
            </div>

            <div id="rk-status-alert" class="rk-status-banner status-ok">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span id="rk-status-text">Grubość optymalna</span>
            </div>

        </div>
    </div>

    <div class="rk-mass-content">
        <p>Grubość wylewki bezpośrednio warunkuje czas nagrzewania podłogówki. Zasada jest prosta: każdy dodatkowy 1 cm jastrychu cementowego powyżej rury wydłuża czas reakcji układu o około 1,5 do 2 godzin. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-inline-link">Kompletny przewodnik po wylewkach</a> oraz <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">norma EN 1264</a> definiują jasno: minimalna grubość wylewki nad zewnętrzną średnicą rury wynosi 35 mm dla jastrychów anhydrytowych (płynnych) oraz 45 mm dla jastrychów cementowych.</p>
        
        <p>Optymalna łączna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-inline-link">grubość wylewki betonowej na ogrzewanie podłogowe</a> wynosi około 50-60 mm dla anhydrytu i 65-80 mm dla cementu. To wystarczy, aby zbudować stabilną płytę nośną bez nadmiernego zwiększania <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-inline-link">bezwładności cieplnej</a>.</p>

        <div class="rk-mass-alert">
            <strong>Najczęstszy błąd na budowie!</strong>
            Błędem wykonawczym, który drastycznie pogarsza dynamikę układu, jest wylanie zbyt grubej warstwy betonu (np. 10-12 cm z powodu krzywo wykonanych stropów, ukrywania kabli lub braku niwelacji podłoża). Taka konstrukcja staje się potężnym separatorem termicznym o gigantycznej bezwładności. Masa 1 m² jastrychu cementowego przy 12 cm wzrasta do 260 kg!
        </div>

        <p>Taki układ nagrzewa się nawet 14-18 godzin, co uniemożliwia jakąkolwiek automatyczną regulację temperatury w cyklu dobowym. To jedno z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-inline-link">najczęstszych błędów przy montażu ogrzewania podłogowego</a>. Ponadto, tradycyjna gruba <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-inline-link">wylewka betonowa</a> posiada gorszy współczynnik przewodzenia ciepła (ok. 1,4 W/(m·K)) w porównaniu do homogenicznego, płynnego jastrychu anhydrytowego (do 2,0 W/(m·K)), co generuje dodatkowe, bolesne opóźnienia w transporcie energii.</p>
    </div>

</div>

<script>
(function() {
    function initScreedSim() {
        if(!document.getElementById('grubosc-wylewki-app')) return;

        const btns = document.querySelectorAll('#grubosc-wylewki-app .rk-screed-btn');
        const slider = document.getElementById('rk-in-thick');
        const valThick = document.getElementById('rk-val-thick');
        
        const outMass = document.getElementById('rk-out-mass');
        const outTime = document.getElementById('rk-out-time');
        
        const svgRect = document.getElementById('rk-svg-screed');
        const svgLine = document.getElementById('rk-svg-line');
        const statusBanner = document.getElementById('rk-status-alert');
        const statusText = document.getElementById('rk-status-text');

        let currentType = 'anhydryt'; // anhydryt | cement

        // Parametry wyjściowe do obliczeń
        const params = {
            anhydryt: { density: 2100, minThick: 5.5, maxOk: 6.5, color: '#d97706', baseTime: 3.0, baseThick: 6.0, timeFactor: 1.2 },
            cement: { density: 2200, minThick: 6.5, maxOk: 8.0, color: '#64748b', baseTime: 8.0, baseThick: 7.0, timeFactor: 1.75 }
        };

        function updateVisuals() {
            // Bezpieczne przypisanie wartości
            const thickCm = parseFloat(slider.value) || 6.0;
            valThick.textContent = thickCm.toFixed(1);

            const data = params[currentType];

            // 1. Obliczanie masy
            const mass = (thickCm / 100) * data.density;
            outMass.textContent = Math.round(mass);

            // 2. Szacowanie czasu reakcji
            let timeDelay = data.baseTime + ((thickCm - data.baseThick) * data.timeFactor);
            if (timeDelay < 1) timeDelay = 1; 
            outTime.textContent = timeDelay.toFixed(1);

            // 3. Wizualizacja SVG
            const rectHeight = thickCm * 10;
            const rectY = 145 - rectHeight; 
            
            svgRect.setAttribute('height', rectHeight);
            svgRect.setAttribute('y', rectY);
            svgRect.setAttribute('fill', data.color);
            svgLine.setAttribute('y1', rectY);
            svgLine.setAttribute('y2', rectY);

            // 4. Ocena Logiczna (Statusy bez problematycznych operatorów logicznych)
            statusBanner.className = 'rk-status-banner'; // Reset

            if (thickCm < data.minThick) {
                if (currentType === 'cement') {
                    statusBanner.classList.add('status-danger');
                    statusText.textContent = "BŁĄD: Zbyt cienko! Ryzyko pękania (min. 6.5 cm)";
                } else {
                    statusBanner.classList.add('status-warn');
                    statusText.textContent = "UWAGA: Bardzo cienko. Wymaga specjalnej chemii.";
                }
            } else {
                if (thickCm <= data.maxOk) {
                    statusBanner.classList.add('status-ok');
                    statusText.textContent = "IDEALNIE: Optymalna dynamika i masa.";
                } else {
                    if (thickCm < 9.5) {
                        statusBanner.classList.add('status-warn');
                        statusText.textContent = "UWAGA: Podwyższona bezwładność cieplna.";
                    } else {
                        statusBanner.classList.add('status-danger');
                        statusText.textContent = "KATASTROFA: Potężny separator termiczny!";
                    }
                }
            }
        }

        // Zabezpieczony event listener
        slider.addEventListener('input', updateVisuals);
        slider.addEventListener('change', updateVisuals);

        btns.forEach(btn => {
            btn.addEventListener('click', function() {
                btns.forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                currentType = this.getAttribute('data-type');
                
                // Zabezpieczona logika przełączania grubości wg norm bez znaku ampersand
                if (currentType === 'cement') {
                    if (parseFloat(slider.value) < 6.5) {
                        slider.value = 7.0;
                    }
                } else {
                    if (currentType === 'anhydryt') {
                        if (parseFloat(slider.value) > 7.0) {
                            slider.value = 6.0;
                        }
                    }
                }
                
                updateVisuals();
            });
        });

        // Init
        updateVisuals();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initScreedSim);
    } else {
        initScreedSim();
    }
})();
</script>



<style>
:root {
    --rk-night-dark: #0f172a;
    --rk-night-blue: #0284c7;
    --rk-night-bg: #ffffff;
    --rk-night-gray: #f8fafc;
    --rk-night-border: #e2e8f0;
    --rk-night-text: #334155;
    
    /* Status Colors */
    --rk-status-green: #10b981;
    --rk-status-green-bg: #ecfdf5;
    --rk-status-orange: #f59e0b;
    --rk-status-orange-bg: #fffbeb;
    --rk-status-red: #ef4444;
    --rk-status-red-bg: #fef2f2;
}

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

/* Nagłówek */
.rk-night-header {
    background: radial-gradient(circle at top right, #1e293b 0%, var(--rk-night-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-night-blue);
    position: relative;
}

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

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

/* Symulator / Dashboard */
.rk-night-dashboard {
    padding: 40px 50px;
    background: var(--rk-night-gray);
    border-bottom: 1px solid var(--rk-night-border);
}

.rk-slider-container {
    background: var(--rk-night-bg);
    padding: 35px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-night-border);
    margin-bottom: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
}

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

.rk-slider-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-night-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-slider-title svg { color: var(--rk-night-blue); }

.rk-slider-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-night-dark);
    background: #f1f5f9;
    padding: 5px 15px;
    border-radius: 8px;
    font-family: monospace;
}

/* Wygląd Suwaka */
input[type=range].rk-night-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-night-range:focus { outline: none; }

input[type=range].rk-night-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    cursor: pointer;
    background: linear-gradient(90deg, var(--rk-status-green) 0%, var(--rk-status-orange) 50%, var(--rk-status-red) 100%);
    border-radius: 5px;
}

input[type=range].rk-night-range::-webkit-slider-thumb {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    background: var(--rk-night-bg);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border: 4px solid var(--rk-night-dark);
    transition: transform 0.1s;
}

input[type=range].rk-night-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* HUD Wyników */
.rk-night-hud {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-hud-box {
    background: var(--rk-night-bg);
    border: 2px solid var(--rk-night-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-hud-box.status-green { border-color: var(--rk-status-green); background: var(--rk-status-green-bg); }
.rk-hud-box.status-orange { border-color: var(--rk-status-orange); background: var(--rk-status-orange-bg); }
.rk-hud-box.status-red { border-color: var(--rk-status-red); background: var(--rk-status-red-bg); }

.rk-hud-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: var(--rk-night-text);
    margin-bottom: 10px;
}

.rk-hud-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-night-dark);
}

.rk-hud-desc {
    font-size: 12px;
    font-weight: 700;
    margin-top: 8px;
    padding: 4px 8px;
    border-radius: 6px;
    display: inline-block;
}

.status-green .rk-hud-val { color: #047857; }
.status-green .rk-hud-desc { background: #d1fae5; color: #065f46; }

.status-orange .rk-hud-val { color: #b45309; }
.status-orange .rk-hud-desc { background: #fef3c7; color: #92400e; }

.status-red .rk-hud-val { color: #b91c1c; }
.status-red .rk-hud-desc { background: #fee2e2; color: #991b1b; }

/* Tekst / Treść */
.rk-night-content {
    padding: 40px 50px;
}

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

.rk-night-text p:last-child { margin: 0; }

.rk-night-h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-night-dark);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-night-h3 svg { color: var(--rk-night-blue); }

.rk-alert-banner {
    display: flex;
    gap: 15px;
    background: var(--rk-status-red-bg);
    border-left: 4px solid var(--rk-status-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-alert-icon {
    color: var(--rk-status-red);
    flex-shrink: 0;
}

.rk-alert-text {
    font-size: 15px;
    line-height: 1.6;
    color: #7f1d1d;
    font-weight: 500;
}

.rk-alert-text strong { font-weight: 800; color: #991b1b; }

.rk-inline-link {
    color: var(--rk-night-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-night-dark); }

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-night-header, .rk-night-dashboard, .rk-night-content { padding: 30px 20px; }
    .rk-slider-container { padding: 25px 20px; }
    .rk-hud-box { padding: 15px; }
    
    .rk-slider-header { flex-direction: column; gap: 15px; align-items: flex-start; }
    .rk-night-hud { grid-template-columns: 1fr; gap: 15px; }
    
    .rk-alert-banner { flex-direction: column; align-items: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-redukcja-nocna",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile trwa nagrzewanie podłogówki po nocnym obniżeniu temperatury?",
    "description": "Dlaczego całkowite wyłączanie podłogówki na noc to błąd. Wyjaśnienie spadku wydajności COP pomp ciepła przy dużej bezwładności i skokach temperatury o 3 stopnie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-redukcja",
    "name": "Zależność efektywności (COP) od skali nocnej redukcji temperatury",
    "description": "Zestawienie analityczne pokazujące drastyczny spadek współczynnika COP pompy ciepła w funkcji czasu nagrzewania i wielkości obniżenia temperatury na termostacie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do ogrzewania podłogowego",
      "sterowanie strefowe ogrzewaniem czy warto",
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "pompa ciepła",
      "redukcja nocna ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Szacowanie czasu odzyskania komfortu cieplnego (delta T) w odniesieniu do punktu aktywacji grzałek elektrycznych w pompach ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Redukcja 0.5-1.0 st. C: Czas nagrzewu 1-3h, Optymalne COP 4.5.",
        "Redukcja 3.0 st. C: Czas nagrzewu 6-10h, Krytyczny spadek COP do 1.5, załączenie grzałek."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-redukcja",
    "name": "Symulator Sprawności COP a Redukcja Nocna",
    "description": "Interaktywny symulator uświadamiający błąd inwestorski polegający na głębokim obniżaniu temperatury w instalacjach płaszczyznowych. Wizualizuje straty finansowe.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-night-module" id="nocna-redukcja-app">
    
    <div class="rk-night-header">
        <h2>Ile trwa nagrzewanie podłogówki po nocnym obniżeniu temperatury?</h2>
        <p>Nawyki ze starych domów z grzejnikami to cichy zabójca sprawności nowoczesnych systemów. Zobacz, dlaczego wyłączanie podłogówki na noc niszczy Twój portfel.</p>
    </div>

    <div class="rk-night-dashboard">
        <div class="rk-slider-container">
            <div class="rk-slider-header">
                <div class="rk-slider-title">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
                    Ustaw nocną redukcję na termostacie
                </div>
                <div class="rk-slider-val"><span id="val-reduction">1.0</span> °C</div>
            </div>
            <input type="range" id="in-reduction" class="rk-night-range" min="0" max="3" step="0.5" value="1.0">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700; margin-top:8px;">
                <span>0°C (Stała)</span>
                <span>3°C (Nawyk Grzejnikowy)</span>
            </div>
        </div>

        <div class="rk-night-hud">
            <div class="rk-hud-box" id="hud-time">
                <div class="rk-hud-label">Czas powrotu do ciepła</div>
                <div class="rk-hud-val" id="out-time">1 - 3 godz.</div>
                <div class="rk-hud-desc" id="desc-time">W normie</div>
            </div>
            <div class="rk-hud-box" id="hud-cop">
                <div class="rk-hud-label">Sprawność Pompy (COP)</div>
                <div class="rk-hud-val" id="out-cop">4.0 - 4.5</div>
                <div class="rk-hud-desc" id="desc-cop">Wysoka energooszczędność</div>
            </div>
            <div class="rk-hud-box" id="hud-cost">
                <div class="rk-hud-label">Skutek Finansowy</div>
                <div class="rk-hud-val" id="out-cost">Optymalny</div>
                <div class="rk-hud-desc" id="desc-cost">Niskie rachunki</div>
            </div>
        </div>
    </div>

    <div class="rk-night-content">
        <div class="rk-night-text">
            <h3 class="rk-night-h3">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                Zasada samoregulacji a czas opóźnienia
            </h3>
            <p>Czas potrzebny na podniesienie temperatury powietrza w pomieszczeniu o 2°C po nocnej redukcji wynosi <strong>od 4 do 8 godzin</strong>, w zależności od izolacyjności termicznej zewnętrznych przegród budynku. Zjawisko to wynika wprost z charakterystyki samoregulacji ogrzewania płaszczyznowego.</p>
            
            <p>Różnica temperatur między powierzchnią podłogi a samym powietrzem (tzw. Delta T) jest bardzo niewielka i wynosi zazwyczaj zaledwie od 3K do 5K. Gdy <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/" class="rk-inline-link">sterowniki do ogrzewania podłogowego</a> wyślą sygnał o godzinie 06:00, potężna masa jastrychu musi się nagrzać. Podłoga osiągnie wymaganą temperaturę powierzchniową dopiero około godziny 08:30, a samo powietrze dogrzeje się w okolicach południa.</p>

            <div class="rk-alert-banner">
                <div class="rk-alert-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-alert-text">
                    <strong>Kardynalny błąd inwestorski:</strong> Całkowite wyłączanie podłogówki na noc (np. o 22:00 i start o 06:00). Budynek drastycznie się wychładza, a ponowne nagrzanie betonowej płyty o masie kilkunastu ton wymaga uderzenia energii z maksymalną mocą szczytową.
                </div>
            </div>

            <h3 class="rk-night-h3">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Zabijanie sprawności (COP) pompy ciepła
            </h3>
            <p>Aby szybko nadgonić stratę rzędu 2-3°C, <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-inline-link">pompa ciepła</a> zostaje zmuszona do gwałtownego podniesienia temperatury zasilania. Przechodzi w ekstremalnie nieefektywny zakres pracy, często uruchamiając zintegrowane grzałki elektryczne. Jej rewelacyjny współczynnik sprawności (COP) <strong>spada z 4.5 do zaledwie 1.5!</strong></p>

            <p>Koszt ponownego nagrzania wyziębionego układu znacznie przewyższa "rzekome" oszczędności uzyskane z przerwanej pracy nocnej. Prawidłowo ustawiona <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-inline-link">krzywa grzewcza</a> dla tak dużej bezwładności dopuszcza bezpieczną, uzasadnioną ekonomicznie redukcję nocną <strong>maksymalnie w granicach 0,5°C do 1,0°C</strong>. Rozważając <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/" class="rk-inline-link">sterowanie strefowe ogrzewaniem</a>, zawsze pamiętaj o płynności pracy – dom to nie grzejnik.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('in-reduction');
    const valDisplay = document.getElementById('val-reduction');
    
    const hudTime = document.getElementById('hud-time');
    const outTime = document.getElementById('out-time');
    const descTime = document.getElementById('desc-time');
    
    const hudCop = document.getElementById('hud-cop');
    const outCop = document.getElementById('out-cop');
    const descCop = document.getElementById('desc-cop');
    
    const hudCost = document.getElementById('hud-cost');
    const outCost = document.getElementById('out-cost');
    const descCost = document.getElementById('desc-cost');

    function updateSimulation() {
        const val = parseFloat(slider.value);
        valDisplay.innerText = val.toFixed(1);

        // Resetowanie klas
        hudTime.className = 'rk-hud-box';
        hudCop.className = 'rk-hud-box';
        hudCost.className = 'rk-hud-box';

        // Bezpieczna logika bez symboli kolizyjnych (unikanie znaków większości/mniejszości i ampersandów gdy to możliwe, chociaż proste if-else są bezpieczne)
        if (val <= 1.0) {
            // STREFA ZIELONA
            hudTime.classList.add('status-green');
            outTime.innerText = "1 - 3 godz.";
            descTime.innerText = "Szybka reakcja";

            hudCop.classList.add('status-green');
            outCop.innerText = "4.0 - 4.5";
            descCop.innerText = "Praca optymalna sprężarki";

            hudCost.classList.add('status-green');
            outCost.innerText = "Niski koszt";
            descCost.innerText = "Ekonomiczna praca";
            
        } else {
            if (val <= 2.0) {
                // STREFA POMARAŃCZOWA
                hudTime.classList.add('status-orange');
                outTime.innerText = "4 - 6 godz.";
                descTime.innerText = "Odczuwalny dyskomfort";

                hudCop.classList.add('status-orange');
                outCop.innerText = "2.5 - 3.5";
                descCop.innerText = "Spadek efektywności";

                hudCost.classList.add('status-orange');
                outCost.innerText = "Wzrost o ~30%";
                descCost.innerText = "Tracisz oszczędności";
            } else {
                // STREFA CZERWONA
                hudTime.classList.add('status-red');
                outTime.innerText = "6 - 10 godz.";
                descTime.innerText = "Dom wyziębiony";

                hudCop.classList.add('status-red');
                outCop.innerText = "1.0 - 1.5";
                descCop.innerText = "Grzałki elektryczne ON!";

                hudCost.classList.add('status-red');
                outCost.innerText = "Krytyczny rachunek";
                descCost.innerText = "Gorsze niż grzejniki";
            }
        }
    }

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



<style>
:root {
    --rk-pipe-dark: #0f172a;
    --rk-pipe-blue: #0284c7;
    --rk-pipe-blue-light: #f0f9ff;
    --rk-pipe-accent: #38bdf8;
    --rk-pipe-red: #ef4444;
    --rk-pipe-red-light: #fef2f2;
    --rk-pipe-green: #10b981;
    --rk-pipe-green-light: #ecfdf5;
    --rk-pipe-border: #e2e8f0;
    --rk-pipe-text: #334155;
    --rk-pipe-bg: #ffffff;
}

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

/* Nagłówek */
.rk-pipe-header {
    background: linear-gradient(135deg, var(--rk-pipe-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-pipe-blue);
}

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

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

/* Sekcja Główna - Jednokolumnowa */
.rk-pipe-container {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
}

/* Górna Część - Symulator Wizualny */
.rk-pipe-simulator {
    padding: 40px 50px 30px 50px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Przełącznik */
.rk-pipe-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 14px;
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    width: 100%;
}

.rk-sim-btn {
    flex: 1;
    padding: 16px 10px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 10px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
    text-align: center;
}

.rk-sim-btn.active {
    color: var(--rk-pipe-dark);
}

.rk-sim-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-sim-btn[data-view="inba"].active ~ .rk-sim-slider {
    transform: translateX(100%);
}

/* Widoki Symulacji */
.rk-sim-view {
    display: none;
    animation: fadeInSim 0.4s ease forwards;
}

.rk-sim-view.active {
    display: block;
}

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

.rk-sim-svg-box {
    background: #ffffff;
    border: 1px solid var(--rk-pipe-border);
    border-radius: 20px;
    padding: 40px 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.03);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-sim-title {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.title-bad { color: var(--rk-pipe-red); }
.title-good { color: var(--rk-pipe-green); }

.rk-sim-svg {
    width: 100%;
    height: auto;
    max-width: 380px; /* Zwiększony rozmiar SVG dla lepszej widoczności na pełnej szerokości */
    margin: 0 auto;
    display: block;
}

/* Animacje Fal Ciepła */
.heat-wave {
    animation: pulseHeat 2.5s infinite alternate ease-in-out;
    transform-origin: center;
}

.heat-wave-bad { fill: rgba(239, 68, 68, 0.2); }
.heat-wave-good { fill: rgba(16, 185, 129, 0.2); }

@keyframes pulseHeat {
    0% { transform: scale(0.9); opacity: 0.6; }
    100% { transform: scale(1.1); opacity: 0.9; }
}

.rk-sim-desc {
    margin-top: 30px;
    padding: 20px;
    border-radius: 14px;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
    text-align: center;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.desc-bad { background: var(--rk-pipe-red-light); color: #b91c1c; border: 1px solid #fca5a5; }
.desc-good { background: var(--rk-pipe-green-light); color: #047857; border: 1px solid #6ee7b7; }

/* Dolna Część - Opis i Teoria */
.rk-pipe-content {
    padding: 40px 50px;
    background: var(--rk-pipe-bg);
    border-top: 1px solid var(--rk-pipe-border);
}

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

.rk-pipe-desc p {
    margin: 0 0 15px 0;
}

.rk-pipe-desc p:last-child {
    margin: 0;
}

.rk-highlight-box {
    background: var(--rk-pipe-blue-light);
    border-left: 4px solid var(--rk-pipe-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-highlight-box strong {
    color: var(--rk-pipe-dark);
    font-size: 18px;
    display: block;
    margin-bottom: 8px;
}

.rk-pipe-link {
    color: var(--rk-pipe-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-pipe-link:hover {
    color: var(--rk-pipe-dark);
}

/* RWD */
@media (max-width: 768px) {
    .rk-pipe-header { padding: 30px 20px; }
    .rk-pipe-simulator { padding: 30px 20px; }
    .rk-pipe-content { padding: 30px 20px; }
    
    .rk-pipe-toggle { flex-direction: column; background: transparent; padding: 0; gap: 10px; }
    .rk-sim-slider { display: none; }
    .rk-sim-btn { background: #e2e8f0; border: 1px solid var(--rk-pipe-border); width: 100%; padding: 14px; }
    .rk-sim-btn.active { background: #ffffff; border-color: var(--rk-pipe-blue); box-shadow: 0 4px 6px rgba(2, 132, 199, 0.1); color: var(--rk-pipe-blue); }
    
    .rk-sim-svg-box { padding: 25px 15px; }
    .rk-sim-desc { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-rozstaw-rur",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jaki wpływ na czas nagrzewania ma rozstaw rur ogrzewania podłogowego?",
    "description": "Zagęszczenie rur do 10 cm wszędzie to błąd. Rozstaw (np. 15 cm środek, 10 cm przy oknach) musi wynikać z obliczeń OZC, aby uniknąć zęba termicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-rozstaw",
    "name": "Rozkład temperatur a rozstaw rur grzewczych (Symulacja zęba termicznego)",
    "description": "Porównanie efektywności przekazywania ciepła pomiędzy uniwersalnym układem 15 cm a zoptymalizowanym strefowaniem na podstawie bilansu OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "projekt ogrzewania podłogowego do domu z dużymi przeszkleniami",
      "ząb termiczny w podłogówce"
    ],
    "measurementTechnique": "Analiza krzywych promieniowania cieplnego wewnątrz wylewki jastrychowej w oparciu o normę PN-EN 1264-2 przy różnym rozstawie przewodów (10 vs 15 cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Uniwersalny rozstaw 15cm na oknach powoduje niedogrzanie (tzw. ząb termiczny) i wymaga podbicia temperatury zasilania.",
        "Zagęszczenie stref brzegowych (10cm) i centralnych (15cm) pozwala na pracę pompy ciepła na niskim zasilaniu, podnosząc wskaźnik SCOP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-rozstaw",
    "name": "Wizualizator Promieniowania Cieplnego Pętli",
    "description": "Interaktywny moduł edukacyjny pokazujący powstawanie martwych stref (zęba termicznego) przy błędnie, uniwersalnie dobranym rozstawie rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipe-module" id="rozstaw-rur-app">
    <div class="rk-pipe-header">
        <h2>Jaki wpływ na czas nagrzewania ma rozstaw rur podłogówki?</h2>
        <p>Błędny dobór zagęszczenia pętli to jeden z najbardziej kosztownych w skutkach błędów, drastycznie obniżający wskaźnik SCOP pompy ciepła.</p>
    </div>

    <div class="rk-pipe-container">
        
        <div class="rk-pipe-simulator">
            <div class="rk-pipe-toggle">
                <button class="rk-sim-btn active" data-view="oko">Instalator "na oko" (Stałe 15 cm)</button>
                <button class="rk-sim-btn" data-view="inba">Inżynieryjny Projekt (10 cm / 15 cm)</button>
                <div class="rk-sim-slider"></div>
            </div>

            <div class="rk-sim-view active" id="view-oko">
                <div class="rk-sim-svg-box">
                    <div class="rk-sim-title title-bad">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        Efekt "Zęba Termicznego"
                    </div>
                    <svg class="rk-sim-svg" viewBox="0 0 200 120">
                        <line x1="10" y1="20" x2="190" y2="20" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"></line>
                        
                        <circle cx="50" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="50" cy="80" r="35" class="heat-wave heat-wave-bad"></circle>
                        <circle cx="50" cy="80" r="4" fill="#b91c1c"></circle>
                        
                        <circle cx="150" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="150" cy="80" r="35" class="heat-wave heat-wave-bad" style="animation-delay: 0.5s;"></circle>
                        <circle cx="150" cy="80" r="4" fill="#b91c1c"></circle>
                        
                        <path d="M 85 20 Q 100 50 115 20" fill="none" stroke="#3b82f6" stroke-width="3" stroke-dasharray="4" opacity="0.7"></path>
                        <text x="100" y="15" font-family="sans-serif" font-size="12" fill="#3b82f6" font-weight="bold" text-anchor="middle">Zimno!</text>
                        
                        <line x1="65" y1="110" x2="135" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="100" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">15 cm</text>
                    </svg>
                    <div class="rk-sim-desc desc-bad">
                        Fale ciepła nie przenikają się odpowiednio pod powierzchnią jastrychu w pobliżu zimnego okna tarasowego. Powstają niedogrzane pasy. Jedyny ratunek to drastyczne, nieopłacalne podniesienie temperatury zasilania pompy.
                    </div>
                </div>
            </div>

            <div class="rk-sim-view" id="view-inba">
                <div class="rk-sim-svg-box">
                    <div class="rk-sim-title title-good">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Optymalne Pokrycie (OZC)
                    </div>
                    <svg class="rk-sim-svg" viewBox="0 0 200 120">
                        <line x1="10" y1="20" x2="190" y2="20" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"></line>
                        
                        <rect x="10" y="0" width="10" height="20" fill="#93c5fd" opacity="0.5"></rect>
                        
                        <circle cx="30" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="30" cy="80" r="35" class="heat-wave heat-wave-good"></circle>
                        <circle cx="30" cy="80" r="4" fill="#047857"></circle>

                        <circle cx="90" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="90" cy="80" r="35" class="heat-wave heat-wave-good" style="animation-delay: 0.3s;"></circle>
                        <circle cx="90" cy="80" r="4" fill="#047857"></circle>

                        <circle cx="170" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="170" cy="80" r="35" class="heat-wave heat-wave-good" style="animation-delay: 0.6s;"></circle>
                        <circle cx="170" cy="80" r="4" fill="#047857"></circle>
                        
                        <line x1="45" y1="110" x2="75" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="60" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">10 cm</text>

                        <line x1="105" y1="110" x2="155" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="130" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">15 cm</text>
                    </svg>
                    <div class="rk-sim-desc desc-good">
                        Zagęszczenie do 10 cm przy drzwiach tarasowych blokuje chłód. Płynne przejście w rozstaw 15 cm w głębi pokoju oszczędza rurę i zmniejsza opory tłoczenia. Pompa ciepła pracuje przy idealnych <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color:#047857;text-decoration:underline;">35°C na zasilaniu</a>.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-pipe-content">
            <div class="rk-pipe-desc">
                <p>Wielu instalatorów powiela szkodliwe mity, układając rury „na oko”. Najczęściej stosują uniwersalny rozstaw 15 cm w całym budynku, łącznie ze strefami przy dużych oknach tarasowych, lub – wpadając w drugą skrajność – kładą 10 cm absolutnie wszędzie, sztucznie dławiąc przepływy i marnując materiał.</p>

                <div class="rk-highlight-box">
                    <strong>Rozstaw rur to wynik matematyki, nie zgadywania!</strong>
                    Nie istnieje jeden "najlepszy" rozstaw. Gęstość układania rur musi bezwzględnie wynikać z obliczeniowego zapotrzebowania na ciepło (OZC) dla danego pomieszczenia oraz oporu cieplnego zastosowanej okładziny wierzchniej.
                </div>

                <p>Zgodnie z fizycznymi zależnościami w normie PN-EN 1264-2, ciepło z rury PEX/PERT rozchodzi się promieniście wewnątrz jastrychu. Jeśli zastosujemy uniwersalne 15 cm przy dużych przeszkleniach, powstanie tzw. <strong>„ząb termiczny”</strong>. Energia pokonuje zbyt długą drogę w poziomie, co generuje zimne pasy na podłodze i zmusza inwestora do podbicia temperatury zasilania na pompie o 5-7°C.</p>

                <p>Prawidłowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-pipe-link">rozstaw rur w ogrzewaniu podłogowym</a> polega na strefowaniu: zagęszczamy do 10 cm <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-pipe-link">strefy brzegowe</a> i łazienki, a w środku pomieszczeń (przy dobrym ociepleniu i gresie) zostawiamy 15 cm. Tylko takie podejście pozwala pompie ciepła pracować na bardzo niskim, energooszczędnym zasilaniu.</p>
                
                <p>Sprawdź jak optymalizuje się <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/" class="rk-pipe-link">projekty podłogówki dla domów z dużymi przeszkleniami</a>.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#rozstaw-rur-app .rk-sim-btn');
    const views = document.querySelectorAll('#rozstaw-rur-app .rk-sim-view');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetView = this.getAttribute('data-view');
            
            // Bezpieczna logika zmiany kart bez użycia znaków zagrażających CMS-om
            if (window.innerWidth <= 768) {
                if (this.classList.contains('active')) {
                    // Na mobile kliknięcie już aktywnego przycisku nic nie robi (zapobiega zwinięciu)
                    return;
                }
            }

            // Reset wszystkich przycisków i widoków
            btns.forEach(b => b.classList.remove('active'));
            views.forEach(v => v.classList.remove('active'));

            // Aktywacja wybranego widoku
            this.classList.add('active');
            const newView = document.getElementById('view-' + targetView);
            if(newView) {
                newView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-surf-dark: #0f172a;
    --rk-surf-blue: #0284c7;
    --rk-surf-light: #f8fafc;
    --rk-surf-accent: #38bdf8;
    --rk-surf-green: #10b981;
    --rk-surf-warning: #f59e0b;
    --rk-surf-danger: #ef4444;
    --rk-surf-border: #e2e8f0;
    --rk-surf-text: #334155;
    --rk-surf-bg: #ffffff;
}

.rk-surface-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-surf-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-surf-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-surf-header {
    background: linear-gradient(135deg, var(--rk-surf-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-surf-blue);
}

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

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

/* Układ Kafelków (Zamiast Tabeli) */
.rk-surf-grid {
    padding: 40px 50px 20px;
    background: var(--rk-surf-light);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-surf-card {
    background: var(--rk-surf-bg);
    border: 2px solid var(--rk-surf-border);
    border-radius: 16px;
    padding: 25px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-surf-card:hover {
    border-color: var(--rk-surf-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-surf-card.active {
    border-color: var(--rk-surf-blue);
    background: #f0f9ff;
}

.rk-surf-card.active::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 10px 10px 0;
    border-style: solid;
    border-color: var(--rk-surf-blue) transparent transparent transparent;
    display: block;
}

@media (max-width: 768px) {
    .rk-surf-card.active::after { display: none; }
}

.rk-surf-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px;
    background: #f1f5f9;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-surf-dark);
    transition: all 0.3s;
}

.rk-surf-card.active .rk-surf-icon {
    background: var(--rk-surf-blue);
    color: #ffffff;
}

.rk-surf-card h3 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-surf-dark);
    margin: 0;
    line-height: 1.3;
}

/* Szuflady z danymi */
.rk-surf-drawers {
    padding: 0 50px 40px;
    background: var(--rk-surf-light);
}

.rk-surf-drawer {
    display: none;
    background: var(--rk-surf-bg);
    border: 1px solid var(--rk-surf-blue);
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
    animation: fadeSlideUp 0.4s ease forwards;
}

.rk-surf-drawer.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

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

/* Wskaźniki Normy */
.rk-norm-box {
    margin-bottom: 20px;
}

.rk-norm-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-surf-dark);
    margin-bottom: 8px;
}

.rk-norm-val {
    font-family: monospace;
    font-size: 16px;
    font-weight: 900;
}

.rk-norm-track {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
}

.rk-norm-limit {
    position: absolute;
    right: 0; top: 0; bottom: 0; width: 4px;
    background: var(--rk-surf-danger);
    z-index: 2;
}

.rk-norm-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    width: 0%;
}

.rk-time-stat {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-surf-border);
}

.rk-time-stat svg {
    color: var(--rk-surf-blue);
}

.rk-time-stat div {
    font-size: 14px;
    color: var(--rk-surf-muted);
    font-weight: 700;
}

.rk-time-stat strong {
    display: block;
    font-size: 18px;
    color: var(--rk-surf-dark);
    font-weight: 900;
}

.rk-surf-desc p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-surf-text);
    margin: 0 0 10px 0;
}

.rk-surf-desc p:last-child { margin: 0; }

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

/* Sekcja Błędu */
.rk-surf-alert {
    margin: 0 50px 40px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 5px solid var(--rk-surf-warning);
    padding: 25px 30px;
    border-radius: 12px;
}

.rk-alert-head {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #b45309;
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 10px;
}

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

/* Mobile */
@media (max-width: 768px) {
    .rk-surf-header, .rk-surf-grid, .rk-surf-drawers, .rk-surf-alert { padding: 25px 20px; }
    .rk-surf-alert { margin: 0 20px 30px; }
    
    .rk-surf-grid { grid-template-columns: 1fr; gap: 10px; padding-bottom: 25px; }
    
    /* Mobilny układ szuflad tuż pod przyciskiem */
    .rk-surf-drawer {
        padding: 20px;
        margin-top: -5px;
        border-radius: 0 0 16px 16px;
        border-top: none;
    }
    
    .rk-surf-card.active { border-radius: 16px 16px 0 0; }
    
    .rk-surf-drawer.active { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-okladziny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak rodzaj wykończenia podłogi modyfikuje czas reakcji systemu?",
    "description": "Zrozum wpływ oporu cieplnego (R lambda) płytek, paneli winylowych i deski barlineckiej na wydajność i dynamikę wodnego ogrzewania podłogowego. Norma 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-okladziny",
    "name": "Tabela Oporów Cieplnych Wykończeń Podłogowych",
    "description": "Zestawienie parametrów termicznych R [m2K/W] oraz czasu przenikania ciepła dla gresu, LVT, laminatu i parkietu na podłogówce.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego",
      "podłogi drewniane vs panele laminowane co wybrać przy ogrzewaniu podłogowym",
      "opór cieplny r m²k w klucz do efektywnego ogrzewania podłogowego",
      "czy pod ogrzewanie podłogowe nadają się panele czy tylko płytki",
      "jakie są najlepsze sposoby izolacji pod ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Określanie przepuszczalności termicznej materiałów zgodnie z ograniczeniami normy europejskiej PN-EN 1264 (max 0.15 m2K/W).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gres: 0.015 m2K/W (Czas 15-30 min)",
        "LVT: 0.025 m2K/W (Czas 30-45 min)",
        "Laminat: 0.070 m2K/W (Czas 1.5-2.5 h)",
        "Parkiet: 0.130 m2K/W (Czas 3.5-5.0 h)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-okladziny",
    "name": "Analizator Oporu Cieplnego Okładzin",
    "description": "Interaktywny moduł edukacyjny przekształcający tabelaryczne wartości oporu cieplnego we wskaźniki procentowe względem limitów normy PN-EN 1264.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-surface-module" id="okladziny-app">
    <div class="rk-surf-header">
        <h2>Jak rodzaj wykończenia modyfikuje czas reakcji systemu?</h2>
        <p>Opór cieplny materiału ułożonego na wylewce to ostateczny filtr termiczny. Norma PN-EN 1264 jasno określa: całkowity opór (okładzina + podkład) nie może przekraczać <strong>0,15 m²·K/W</strong>.</p>
    </div>

    <div class="rk-surf-grid">
        <div class="rk-surf-card active" data-surf="gres">
            <div class="rk-surf-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <h3>Gres / Kamień<br><span style="font-weight:400;font-size:13px;color:#64748b;">(10 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-gres"></div>

        <div class="rk-surf-card" data-surf="lvt">
            <div class="rk-surf-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="12" x2="21" y2="12"></line></svg>
            </div>
            <h3>Panele Winylowe<br><span style="font-weight:400;font-size:13px;color:#64748b;">LVT (4,5 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-lvt"></div>

        <div class="rk-surf-card" data-surf="laminat">
            <div class="rk-surf-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line><line x1="10" y1="4" x2="10" y2="20"></line><line x1="14" y1="4" x2="14" y2="20"></line><line x1="18" y1="4" x2="18" y2="20"></line></svg>
            </div>
            <h3>Panele Laminat<br><span style="font-weight:400;font-size:13px;color:#64748b;">(8 mm + Podkład)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-laminat"></div>

        <div class="rk-surf-card" data-surf="drewno">
            <div class="rk-surf-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>
            </div>
            <h3>Parkiet Dębowy<br><span style="font-weight:400;font-size:13px;color:#64748b;">Klejony (14 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-drewno"></div>
    </div>

    <div class="rk-surf-drawers" id="desktop-surf">
        
        <div class="rk-surf-drawer active" id="gres">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-green);">0,015 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="10%" style="background: var(--rk-surf-green);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>15 - 30 minut</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Absolutny ideał. Ceramika i kamień doskonale przewodzą ciepło z wylewki. Dzięki temu pompa ciepła może pracować na najniższej możliwej krzywej grzewczej, zapewniając maksymalny współczynnik SCOP.</p>
                <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-surf-link">Płytki vs panele - co lepsze na ogrzewanie podłogowe?</a>
            </div>
        </div>

        <div class="rk-surf-drawer" id="lvt">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-blue);">0,025 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="16%" style="background: var(--rk-surf-blue);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>30 - 45 minut</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Bardzo dobra dynamika i niskie tłumienie. Winyl klejony do posadzki stanowi rewelacyjny kompromis dla osób, które chcą faktury drewna, ale zależy im na wysokiej <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-surf-link">wydajności ogrzewania podłogowego</a>.</p>
            </div>
        </div>

        <div class="rk-surf-drawer" id="laminat">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-warning);">0,070 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="46%" style="background: var(--rk-surf-warning);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>1,5 - 2,5 godziny</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Przeciętna dynamika. Wymaga rygorystycznego doboru maty podkładowej (np. PUM). Zły podkład błyskawicznie "przebije" limit normy, tworząc izolator. Kluczowy jest tu sumaryczny <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-surf-link">opór cieplny R</a>.</p>
            </div>
        </div>

        <div class="rk-surf-drawer" id="drewno">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-danger);">0,130 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="86%" style="background: var(--rk-surf-danger);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>3,5 - 5,0 godzin</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>System działa na krawędzi limitu normy 1264. Charakteryzuje się ogromną bezwładnością i ograniczeniem jednostkowej mocy grzewczej posadzki (z reguły max 60 W/m²). Rozważając dylemat <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-surf-link">podłogi drewniane vs panele</a>, pamiętaj o wyższej temp. zasilania.</p>
            </div>
        </div>
    </div>

    <div class="rk-surf-alert">
        <div class="rk-alert-head">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Powszechny Błąd Inwestorski
        </div>
        <p>Montaż grubych paneli na "zwykłej" piance polietylenowej to proszenie się o kłopoty. Tani podkład to izolator o oporze rzędu <strong>0,08 m²·K/W</strong>. Razem z panelem opór przekracza dopuszczalne normy. Ciepło dusi się w betonie, wylewka nagrzewa się kilkanaście godzin, a wracający ukrop wywołuje zabójcze dla pomp ciepła taktowanie sprężarki. Szukając <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/" style="color:#b45309;font-weight:700;text-decoration:underline;">najlepszej izolacji pod podłogówkę</a>, wybieraj tylko dedykowane maty kwarcowe (PUM).</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('#okladziny-app .rk-surf-card');
    const deskDrawers = document.querySelectorAll('#okladziny-app #desktop-surf .rk-surf-drawer');
    const desktopContainer = document.getElementById('desktop-surf');

    // Funkcja odpalająca animacje pasków (R lambda)
    function animateNorms(container) {
        const fills = container.querySelectorAll('.js-norm');
        fills.forEach(fill => {
            fill.style.width = '0%';
            setTimeout(() => {
                fill.style.width = fill.getAttribute('data-w');
            }, 50);
        });
    }

    // Kopiowanie do domów mobilnych
    const cloneToMobile = () => {
        deskDrawers.forEach(drawer => {
            const mobTarget = document.getElementById('mob-' + drawer.id);
            if(mobTarget) {
                mobTarget.innerHTML = drawer.innerHTML;
            }
        });
    };
    cloneToMobile();
    
    // Inicjalna animacja
    animateNorms(document.getElementById('gres'));

    cards.forEach(card => {
        card.addEventListener('click', function() {
            const targetId = this.getAttribute('data-surf');
            const isMobile = window.innerWidth <= 768;

            if (isMobile) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    const activeMobDrawer = document.getElementById('mob-' + targetId);
                    if(activeMobDrawer) activeMobDrawer.classList.remove('active');
                    return;
                }
            }

            // Reset
            cards.forEach(c => c.classList.remove('active'));
            deskDrawers.forEach(d => d.classList.remove('active'));
            document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));

            this.classList.add('active');

            if (isMobile) {
                desktopContainer.style.display = 'none';
                const mobDrawer = document.getElementById('mob-' + targetId);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                    animateNorms(mobDrawer);
                }
            } else {
                desktopContainer.style.display = 'block';
                const deskDrawer = document.getElementById(targetId);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                    animateNorms(deskDrawer);
                }
            }
        });
    });

    // Obsługa zmiany orientacji
    window.addEventListener('resize', function() {
        const activeCard = document.querySelector('#okladziny-app .rk-surf-card.active');
        if (activeCard) {
            const targetId = activeCard.getAttribute('data-surf');
            if (window.innerWidth <= 768) {
                desktopContainer.style.display = 'none';
                document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));
                const mobDrawer = document.getElementById('mob-' + targetId);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                    animateNorms(mobDrawer);
                }
            } else {
                desktopContainer.style.display = 'block';
                document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));
                deskDrawers.forEach(d => d.classList.remove('active'));
                const deskDrawer = document.getElementById(targetId);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                    animateNorms(deskDrawer);
                }
            }
        }
    });
});
</script>



<style>
:root {
    --rk-tech-dark: #0f172a;
    --rk-tech-blue: #0284c7;
    --rk-tech-blue-light: #f0f9ff;
    --rk-tech-green: #10b981;
    --rk-tech-red: #ef4444;
    --rk-tech-bg: #ffffff;
    --rk-tech-gray: #f8fafc;
    --rk-tech-border: #e2e8f0;
    --rk-tech-text: #334155;
    --rk-tech-muted: #64748b;
}

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

/* Nagłówek */
.rk-tech-header {
    padding: 40px 50px 30px;
    background: var(--rk-tech-bg);
    border-bottom: 1px solid var(--rk-tech-border);
}

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

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

/* Interfejs Przełącznika */
.rk-tech-ui {
    background: var(--rk-tech-gray);
    padding: 40px 50px;
}

.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 8px;
    position: relative;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

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

.rk-toggle-btn.active {
    color: var(--rk-tech-blue);
}

.rk-toggle-slider {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-toggle-btn[data-tech="suchy"].active ~ .rk-toggle-slider {
    transform: translateX(100%);
}

/* Kontenery Danych */
.rk-tech-panel {
    display: none;
    animation: fadeInPanel 0.4s ease forwards;
}

.rk-tech-panel.active {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: start;
}

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

/* Wizualizacja Warstw */
.rk-layer-box {
    background: #ffffff;
    border: 1px solid var(--rk-tech-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.02);
}

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

.rk-layer-diagram {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-layer {
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    border: 1px solid rgba(0,0,0,0.1);
}

.layer-pex { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.layer-concrete { background: #e2e8f0; color: #475569; padding: 25px 15px !important; }
.layer-alu { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }
.layer-finish { background: #fef3c7; color: #b45309; }

/* Wskaźniki Metryczne (Progress Bars) */
.rk-metrics-box {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-metric {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-tech-border);
}

.rk-metric-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
}

.rk-metric-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-tech-dark);
}

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    font-family: monospace;
}

.rk-progress-bg {
    height: 10px;
    background: #e2e8f0;
    border-radius: 5px;
    overflow: hidden;
}

.rk-progress-fill {
    height: 100%;
    border-radius: 5px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    width: 0%; /* Start dla animacji */
}

/* Opisy i Linki */
.rk-tech-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-tech-text);
    margin-top: 15px;
}

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

.rk-tech-link:hover { color: var(--rk-tech-dark); }

.rk-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fef2f2;
    color: var(--rk-tech-red);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    margin-top: 10px;
    border: 1px solid #fecaca;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-tech-header, .rk-tech-ui { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; box-shadow: none; gap: 10px; }
    .rk-toggle-slider { display: none; }
    .rk-toggle-btn { background: #e2e8f0; border: 1px solid var(--rk-tech-border); width: 100%; }
    .rk-toggle-btn.active { background: #ffffff; border-color: var(--rk-tech-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    .rk-tech-panel.active { grid-template-columns: 1fr; gap: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-mokry-suchy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Czas nagrzewania w systemie mokrym a system suchy ogrzewania podłogowego – jakie są różnice?",
    "description": "System suchy skraca czas reakcji podłogówki o ponad 85% i eliminuje problem obciążenia stropów w domach szkieletowych. Porównanie bezwładności i wagi.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-mokry-suchy",
    "name": "Porównanie dynamiki i obciążeń: System Suchy vs Mokry",
    "description": "Dane techniczne pokazujące różnice w masie akumulacyjnej (kg/m2) oraz czasie reakcji cieplnej (minuty vs godziny) w zależności od wybranej technologii jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym",
      "ogrzewanie podłogowe w domu szkieletowym",
      "czy ogrzewanie podłogowe nadaje się do drewnianego stropu",
      "czas nagrzewania systemu suchego",
      "waga wylewki betonowej na m2"
    ],
    "measurementTechnique": "Zestawienie obciążeń statycznych stropu w kg/m2 oraz empiryczny pomiar opóźnienia hydraulicznego (czasu nasycenia energią).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Mokry: Czas reakcji 6-10h, waga 130-150 kg/m2 (ryzyko dla starych stropów).",
        "System Suchy: Czas reakcji 20-45 min, waga ok. 25 kg/m2 (idealny dla domów szkieletowych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-mokry-suchy",
    "name": "Symulator Wyboru Technologii Podłogówki",
    "description": "Interaktywny przełącznik wizualizujący różnice w czasie nagrzewania i obciążeniu konstrukcji między jastrychem cementowym a zabudową lekką (lamelami aluminiowymi).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-module" id="tech-mokry-suchy">
    <div class="rk-tech-header">
        <h2>Czas nagrzewania w systemie mokrym a system suchy ogrzewania podłogowego – jakie są różnice?</h2>
        <p>Wybór między klasyczną wylewką a systemem suchym to nie tylko kwestia ceny. To decyzja o dynamice budynku i bezpieczeństwie konstrukcyjnym Twojego stropu.</p>
    </div>

    <div class="rk-tech-ui">
        <div class="rk-toggle-wrapper">
            <button class="rk-toggle-btn active" data-tech="mokry">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Klasyczny System Mokry
            </button>
            <button class="rk-toggle-btn" data-tech="suchy">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                System Suchy (Zabudowa Lekka)
            </button>
            <div class="rk-toggle-slider"></div>
        </div>

        <div class="rk-tech-panel active" id="panel-mokry">
            <div class="rk-layer-box">
                <div class="rk-layer-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line></svg>
                    Struktura podłogi (Masa!)
                </div>
                <div class="rk-layer-diagram">
                    <div class="rk-layer layer-finish">Płytka / Gres (Opóźnienie)</div>
                    <div class="rk-layer layer-concrete">70 mm Betonu (Potężny Magazyn Ciepła)</div>
                    <div class="rk-layer layer-pex">Rura Grzewcza PEX</div>
                </div>
                <div class="rk-tech-desc">
                    Zastosowanie klasycznego systemu wiąże się z gigantycznym ciężarem. Montaż takiej wylewki na starych belkach to odpowiedź na to, dlaczego powstają pytania <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/" class="rk-tech-link">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>. 
                    <div class="rk-alert-badge">Niesie to ogromne ryzyko katastrofy budowlanej!</div>
                </div>
            </div>

            <div class="rk-metrics-box">
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Czas reakcji (nagrzewanie)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-red);">6-10 godz.</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="95%" style="background: var(--rk-tech-red);"></div>
                    </div>
                </div>
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Obciążenie stropu (Ciężar)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-dark);">130-150 kg/m²</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="100%" style="background: var(--rk-tech-dark);"></div>
                    </div>
                </div>
                <p class="rk-tech-desc" style="margin-top:0;">Wybór tej technologii rodzi dylemat <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/" class="rk-tech-link">system mokry czy suchy w wodnym ogrzewaniu podłogowym</a>. Mokry ma doskonałą bezwładność, ale gigantyczne opóźnienie hydrauliczne.</p>
            </div>
        </div>

        <div class="rk-tech-panel" id="panel-suchy">
            <div class="rk-layer-box">
                <div class="rk-layer-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line></svg>
                    Struktura podłogi (Lekka)
                </div>
                <div class="rk-layer-diagram">
                    <div class="rk-layer layer-finish">Cienki Panel / Płytka z klejem</div>
                    <div class="rk-layer layer-alu">Lamela Aluminiowa (Szybki Radiator)</div>
                    <div class="rk-layer layer-pex">Rura Grzewcza w styropianie EPS</div>
                </div>
                <div class="rk-tech-desc">
                    W systemie suchym eliminujemy ciężki beton. Płyta gipsowo-włóknista z lamelami oddaje ciepło natychmiast. Jest to jedyne sensowne <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/" class="rk-tech-link">ogrzewanie podłogowe w domu szkieletowym</a>. Domy z drewna nie akumulują ciepła w ścianach – wymagają dynamicznej, błyskawicznej reakcji, którą daje tylko system suchy.
                </div>
            </div>

            <div class="rk-metrics-box">
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Czas reakcji (nagrzewanie)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-green);">20-45 min.</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="15%" style="background: var(--rk-tech-green);"></div>
                    </div>
                </div>
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Obciążenie stropu (Ciężar)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-blue);">~25 kg/m²</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="20%" style="background: var(--rk-tech-blue);"></div>
                    </div>
                </div>
                <p class="rk-tech-desc" style="margin-top:0;">Dzięki skróceniu czasu reakcji o <strong>ponad 85%</strong>, system idealnie współpracuje z automatyką pokojową i błyskawicznie reaguje na nasłonecznienie.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleBtns = document.querySelectorAll('#tech-mokry-suchy .rk-toggle-btn');
    const panels = document.querySelectorAll('#tech-mokry-suchy .rk-tech-panel');

    // Funkcja odpalająca animacje pasków postępu
    function animateBars(panelId) {
        const activePanel = document.getElementById(panelId);
        const bars = activePanel.querySelectorAll('.js-fill');
        
        // Reset szerokości
        bars.forEach(bar => { bar.style.width = '0%'; });
        
        // Opóźnienie animacji dla efektu wizualnego
        setTimeout(() => {
            bars.forEach(bar => {
                const targetWidth = bar.getAttribute('data-width');
                bar.style.width = targetWidth;
            });
        }, 50);
    }

    // Inicjalna animacja dla domyślnego panelu
    animateBars('panel-mokry');

    toggleBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetTech = this.getAttribute('data-tech');
            const targetPanelId = 'panel-' + targetTech;

            // Reset stanów
            toggleBtns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja wybranych
            this.classList.add('active');
            document.getElementById(targetPanelId).classList.add('active');

            // Uruchom animację pasków dla nowo otwartej zakładki
            animateBars(targetPanelId);
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-accent: #38bdf8;
    --rk-calc-bg: #ffffff;
    --rk-calc-gray: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-text-light: #94a3b8;
    --rk-calc-warning: #f59e0b;
}

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

/* Nagłówek */
.rk-calc-header {
    background: var(--rk-calc-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-blue);
    position: relative;
    overflow: hidden;
}

.rk-calc-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(rgba(56, 189, 248, 0.15) 1px, transparent 1px);
    background-size: 15px 15px;
    opacity: 0.5;
}

.rk-calc-header-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-calc-icon {
    width: 60px;
    height: 60px;
    background: rgba(14, 165, 233, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-calc-accent);
    border: 1px solid rgba(14, 165, 233, 0.4);
    flex-shrink: 0;
}

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

.rk-calc-header p {
    font-size: 15px;
    color: var(--rk-calc-text-light);
    margin: 0;
}

/* Główny układ interfejsu */
.rk-calc-dashboard {
    display: grid;
    grid-template-columns: 1fr 340px;
    background: var(--rk-calc-gray);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Lewa strona - Suwaki */
.rk-calc-controls {
    padding: 40px 50px;
    background: #ffffff;
}

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

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

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

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

.rk-calc-val-display {
    background: var(--rk-calc-gray);
    padding: 4px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-calc-blue);
    border: 1px solid var(--rk-calc-border);
}

/* Stylizacja Suwaków */
input[type=range].rk-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-slider:focus {
    outline: none;
}

input[type=range].rk-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #cbd5e1;
    border-radius: 4px;
    transition: background 0.2s;
}

input[type=range].rk-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -8px;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.3);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

input[type=range].rk-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    background: var(--rk-calc-blue-hover);
}

/* Prawa strona - Wyniki (HUD) */
.rk-calc-results {
    background: var(--rk-calc-panel);
    padding: 40px 35px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-result-box {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-result-box::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-calc-blue);
}

.rk-result-box.highlight::before {
    background: var(--rk-calc-accent);
    box-shadow: 0 0 15px var(--rk-calc-accent);
}

.rk-result-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-calc-text-light);
    margin-bottom: 5px;
    font-weight: 700;
}

.rk-result-value {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    font-family: monospace;
}

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

#rk-calc-warning {
    display: none;
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid var(--rk-calc-warning);
    color: var(--rk-calc-warning);
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    margin-top: 10px;
}

/* Teoria / Algorytm */
.rk-calc-theory {
    padding: 40px 50px;
    background: var(--rk-calc-bg);
}

.rk-calc-theory h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
}

.rk-theory-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-calc-text);
}

.rk-step-box {
    background: var(--rk-calc-gray);
    border-left: 4px solid var(--rk-calc-blue);
    padding: 20px;
    margin: 20px 0;
    border-radius: 0 12px 12px 0;
}

.rk-step-title {
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 10px;
    font-size: 17px;
}

.rk-formula {
    display: inline-block;
    background: #ffffff;
    padding: 8px 15px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-calc-blue);
    border: 1px solid var(--rk-calc-border);
    margin: 10px 0;
}

.rk-calc-theory ul {
    margin: 10px 0 15px 20px;
    padding: 0;
}

.rk-calc-theory li {
    margin-bottom: 5px;
}

.rk-tag-inline {
    background: var(--rk-calc-gray);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid var(--rk-calc-border);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-theory {
        padding: 30px 20px;
    }
    
    .rk-calc-header-content {
        flex-direction: column;
        text-align: center;
    }
    
    .rk-calc-dashboard {
        grid-template-columns: 1fr;
    }
    
    .rk-calc-results {
        padding: 30px 20px;
    }
    
    .rk-result-value {
        font-size: 28px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Kalkulator czasu nagrzewania ogrzewania podłogowego i bezwładności termicznej",
    "description": "Interaktywny algorytm obliczania masy jastrychu, zapotrzebowania na energię rozruchową oraz czasu reakcji płyty grzewczej dla ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-algorytm",
    "name": "Zmienne i stałe fizyczne bezwładności jastrychów",
    "description": "Dane wejściowe kalkulatora: parametry termodynamiczne jastrychów cementowych i anhydrytowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator czasu nagrzewania ogrzewania podłogowego",
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka betonowa na ogrzewanie podłogowe",
      "zapotrzebowanie na ciepło do ogrzewania",
      "ile wody potrzeba do wypełnienia instalacji podłogówki kalkulator"
    ],
    "measurementTechnique": "Algorytm bazujący na gęstości objętościowej (2200 kg/m3) i cieple właściwym betonu (0.2778 Wh/kgK) do wyznaczania energii fazy rozruchu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Masa płyty (M) = Powierzchnia (A) × Grubość (h) × Gęstość (ρ)",
        "Energia Rozruchu (Q) = M × ciepło właściwe (cw) × Delta T",
        "Czas nagrzewania (tau) = Q / (Moc źródła - Straty cieplne)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-kalkulator",
    "name": "Kalkulator Bezwładności Cieplnej Podłogówki",
    "description": "Narzędzie inżynierskie online w czasie rzeczywistym obliczające masę wylewki, wymaganą energię w kWh oraz czas nagrzewania w godzinach na podstawie wprowadzonych danych budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-module" id="kalkulator-nagrzewania">
    
    <div class="rk-calc-header">
        <div class="rk-calc-header-content">
            <div class="rk-calc-icon">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            </div>
            <div>
                <h2>Kalkulator Czasu Nagrzewania Podłogówki</h2>
                <p>Sprawdź na żywo, ile energii i czasu potrzebuje Twoja wylewka, by osiągnąć komfort cieplny.</p>
            </div>
        </div>
    </div>

    <div class="rk-calc-dashboard">
        
        <div class="rk-calc-controls">
            
            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Powierzchnia grzewcza (A)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-area">100</span> m²</span>
                </div>
                <input type="range" id="rk-calc-in-area" class="rk-slider" min="20" max="300" step="5" value="100">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Grubość wylewki (h)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-thick">7</span> cm</span>
                </div>
                <input type="range" id="rk-calc-in-thick" class="rk-slider" min="4" max="12" step="0.5" value="7">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Oczekiwany przyrost temp. (ΔT)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-temp">13</span> °C</span>
                </div>
                <input type="range" id="rk-calc-in-temp" class="rk-slider" min="1" max="25" step="1" value="13">
                <div style="font-size: 12px; color: #64748b; margin-top: 5px;">Różnica: Temp. Docelowa minus Temp. Początkowa.</div>
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Moc źródła ciepła (P)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-power">6.0</span> kW</span>
                </div>
                <input type="range" id="rk-calc-in-power" class="rk-slider" min="2" max="20" step="0.5" value="6.0">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Chwilowe straty ciepła budynku</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-loss">2.0</span> kW</span>
                </div>
                <input type="range" id="rk-calc-in-loss" class="rk-slider" min="0" max="15" step="0.5" value="2.0">
            </div>

        </div>

        <div class="rk-calc-results">
            
            <div class="rk-result-box">
                <div class="rk-result-label">Masa Akumulacyjna Jastrychu</div>
                <div class="rk-result-value"><span id="rk-calc-out-mass">15 400</span> <span class="rk-result-unit">kg</span></div>
            </div>

            <div class="rk-result-box">
                <div class="rk-result-label">Energia potrzebna na start</div>
                <div class="rk-result-value"><span id="rk-calc-out-energy">55.6</span> <span class="rk-result-unit">kWh</span></div>
            </div>

            <div class="rk-result-box highlight">
                <div class="rk-result-label">Czas Pełnego Nagrzewania</div>
                <div class="rk-result-value"><span id="rk-calc-out-time">13.9</span> <span class="rk-result-unit">godz.</span></div>
            </div>

            <div id="rk-calc-warning">⚠️ Uwaga: Straty ciepła są równe lub większe od mocy źródła. Płyta nigdy się nie nagrzeje!</div>

        </div>
    </div>

    <div class="rk-calc-theory">
        <h3>Algorytm obliczania bezwładności termicznej i zapotrzebowania na energię rozruchową płyty grzewczej</h3>
        <div class="rk-theory-text">
            <p>Aby precyzyjnie określić, ile energii (<span class="rk-tag-inline">E</span>) i czasu (<span class="rk-tag-inline">τ</span>) potrzebuje płyta grzewcza do osiągnięcia temperatury roboczej, należy przeprowadzić wieloetapowe obliczenia inżynierskie bazujące na masie układu, cieple właściwym betonu oraz projektowej mocy jednostkowej.</p>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 1: Obliczenie masy płyty grzewczej (M)</div>
                <p>Masę jastrychu cementowego wyznaczamy ze wzoru:</p>
                <div class="rk-formula">M = A × h × ρ</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>A</strong> – powierzchnia grzewcza [m²]</li>
                    <li><strong>h</strong> – całkowita grubość wylewki [m]</li>
                    <li><strong>ρ</strong> – gęstość objętościowa jastrychu (dla betonu cementowego przyjmuje się 2200 kg/m³, dla anhydrytu 2100 kg/m³).</li>
                </ul>
                <p><em>Przykład dla powierzchni A = 100 m² i grubości wylewki h = 0,07 m:</em><br>
                M = 100 × 0.07 × 2200 = <strong>15400 kg</strong></p>
            </div>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 2: Energia potrzebna do podniesienia temp. wylewki (Q_roz)</div>
                <p>Ilość energii niezbędnej do nagrzania masy betonu o zadaną różnicę temperatur (ΔT) określa fundamentalne równanie termodynamiki:</p>
                <div class="rk-formula">Q_roz = M × c_w × ΔT</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>c_w</strong> – ciepło właściwe jastrychu (dla betonu przyjmuje się 1.0 kJ/(kg·K), co odpowiada 0.2778 Wh/(kg·K))</li>
                    <li><strong>ΔT</strong> – wymagany przyrost temperatury płyty (np. od stanu zimnego 15°C do średniej temperatury pracy 28°C, czyli ΔT = 13 K).</li>
                </ul>
                <p><em>Podstawiając dane:</em><br>
                Q_roz = 15400 × 0.2778 × 13 = <strong>55615.56 Wh ≈ 55.62 kWh</strong></p>
            </div>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 3: Wyznaczenie czasu nagrzewania strukturalnego (τ)</div>
                <p>Czas potrzebny na dostarczenie tej energii przy założeniu projektowej strumieniowej wydajności cieplnej instalacji (P_inst) obliczamy ze wzoru:</p>
                <div class="rk-formula">τ = Q_roz / (P_inst - Q_strat)</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>P_inst</strong> – całkowita moc dostarczana przez źródło ciepła do pętli (np. 6000 W dla domu o powierzchni 100 m²).</li>
                    <li><strong>Q_strat</strong> – chwilowe straty ciepła budynku do otoczenia w trakcie nagrzewania (przyjmijmy średnio 2000 W).</li>
                </ul>
                <p><em>Obliczenie czasu:</em><br>
                τ = 55615.56 / 4000 = <strong>13.9 godzin</strong></p>
            </div>

            <p><strong>Wnioski z algorytmu:</strong> Układ potrzebuje blisko 14 godzin ciągłej pracy źródła ciepła z pełną mocą <u>wyłącznie na nasycenie termiczne samego betonu</u>, nie wliczając w to ogrzania kubatury powietrza i skompensowania bieżących strat przez przegrody.</p>
        </div>
    </div>
</div>

<script>
// Używamy bezpiecznej, zanonimizowanej funkcji wykonującej się po załadowaniu drzewa DOM
(function() {
    function initCalc() {
        // Zabezpieczenie przed błędem w przypadku braku kontenera
        if (!document.getElementById('kalkulator-nagrzewania')) return;

        // Pobieranie elementów suwaków (z bezpiecznymi prefiksami rk-calc-)
        const inArea = document.getElementById('rk-calc-in-area');
        const inThick = document.getElementById('rk-calc-in-thick');
        const inTemp = document.getElementById('rk-calc-in-temp');
        const inPower = document.getElementById('rk-calc-in-power');
        const inLoss = document.getElementById('rk-calc-in-loss');

        // Pobieranie etykiet
        const valArea = document.getElementById('rk-calc-val-area');
        const valThick = document.getElementById('rk-calc-val-thick');
        const valTemp = document.getElementById('rk-calc-val-temp');
        const valPower = document.getElementById('rk-calc-val-power');
        const valLoss = document.getElementById('rk-calc-val-loss');

        // Pobieranie wyników
        const outMass = document.getElementById('rk-calc-out-mass');
        const outEnergy = document.getElementById('rk-calc-out-energy');
        const outTime = document.getElementById('rk-calc-out-time');
        const warningBox = document.getElementById('rk-calc-warning');

        const density = 2200; 
        const specHeat = 0.2778; 

        function formatNumber(num) {
            return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
        }

        function calculateEngine() {
            // Bezpieczne parsowanie (fallback do 0)
            const area = parseFloat(inArea.value) || 0;
            const thickCm = parseFloat(inThick.value) || 0;
            const deltaT = parseFloat(inTemp.value) || 0;
            const powerKW = parseFloat(inPower.value) || 0;
            const lossKW = parseFloat(inLoss.value) || 0;

            // Update UI (textContent jest bezpieczniejszy dla WordPressa niż innerText)
            valArea.textContent = area;
            valThick.textContent = thickCm;
            valTemp.textContent = deltaT;
            valPower.textContent = powerKW.toFixed(1);
            valLoss.textContent = lossKW.toFixed(1);

            // Obliczenia matematyczne
            const mass = area * (thickCm / 100) * density;
            const energyKWh = (mass * specHeat * deltaT) / 1000;
            const effectivePower = powerKW - lossKW;

            outMass.textContent = formatNumber(Math.round(mass));
            outEnergy.textContent = energyKWh.toFixed(1);

            // Walidacja logiki (Moc musi być większa niż straty)
            if (effectivePower <= 0.0) {
                outTime.textContent = "-";
                warningBox.style.display = "block";
            } else {
                warningBox.style.display = "none";
                const timeHours = energyKWh / effectivePower;
                outTime.textContent = timeHours.toFixed(1);
            }
        }

        // Dodanie podwójnych listenerów dla pełnego pokrycia (input na żywo, change po puszczeniu palca)
        const inputs = [inArea, inThick, inTemp, inPower, inLoss];
        inputs.forEach(input => {
            if (input) {
                input.addEventListener('input', calculateEngine);
                input.addEventListener('change', calculateEngine);
            }
        });

        // Wymuszenie pierwszej kalkulacji
        calculateEngine();
    }

    // Odporne przypięcie skryptu
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initCalc);
    } else {
        initCalc();
    }
})();
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-orange-light: #fff7ed;
    --rk-err-blue: #0284c7;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-errors-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #290a0a 100%);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-red);
    display: flex;
    align-items: center;
    gap: 25px;
}

.rk-err-alert-icon {
    width: 65px;
    height: 65px;
    background: rgba(239, 68, 68, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-red);
    border: 1px solid rgba(239, 68, 68, 0.3);
    flex-shrink: 0;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

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

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

/* Interaktywny Układ (Zakładki/Akordeon) */
.rk-err-container {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #f8fafc;
}

/* Lista przycisków (Lewa strona na desktopie) */
.rk-err-nav {
    padding: 30px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    text-align: left;
    padding: 18px 20px;
    background: var(--rk-err-bg);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-err-btn-icon {
    width: 36px;
    height: 36px;
    background: #f1f5f9;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-muted);
    transition: all 0.3s ease;
}

.rk-err-btn span {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-text);
    line-height: 1.3;
    transition: color 0.3s ease;
}

.rk-err-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

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

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

.rk-err-btn.active span {
    color: var(--rk-err-red);
}

/* BEZWZGLĘDNE UKRYCIE KONTENERÓW MOBILNYCH NA DESKTOPIE */
.rk-err-mobile-content {
    display: none;
}

/* Treść (Prawa strona na desktopie) */
.rk-err-content-area {
    padding: 40px;
    position: relative;
    background: #f8fafc;
}

.rk-err-panel {
    display: none;
    animation: slideInFade 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

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

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

.rk-err-panel h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

/* Boks "Konsekwencja" */
.rk-err-consequence {
    background: #ffffff;
    border-left: 4px solid var(--rk-err-orange);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

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

.rk-err-link {
    color: var(--rk-err-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-err-link:hover {
    border-color: var(--rk-err-blue);
}

/* RWD - Mobile (Akordeon) */
@media (max-width: 768px) {
    .rk-err-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-err-container {
        grid-template-columns: 1fr;
        background: #ffffff;
    }
    .rk-err-nav {
        padding: 20px;
        border-right: none;
    }
    
    .rk-err-content-area {
        display: none; 
    }
    
    /* Na mobile nadajemy style i pozwalamy JS-owi kontrolować wyświetlanie poprzez klasę active na przycisku */
    .rk-err-mobile-content {
        padding: 20px;
        background: #f8fafc;
        border: 1px solid var(--rk-err-red);
        border-top: none;
        border-radius: 0 0 12px 12px;
        margin-top: -10px;
        margin-bottom: 15px;
        animation: fadeIn 0.3s;
    }
    
    .rk-err-btn.active {
        border-radius: 12px 12px 0 0;
        margin-bottom: 0;
    }
    
    .rk-err-btn.active + .rk-err-mobile-content {
        display: block;
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-bledy-wykonawcze",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Najczęstsze błędy instalatorów i inwestorów wydłużające czas nagrzewania podłogówki",
    "description": "Lista krytycznych błędów przy montażu ogrzewania podłogowego, takich jak zbyt cienki styropian, brak dylatacji czy zapowietrzenie układu, które generują potężne straty energii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-bledy-wykonawcze",
    "name": "Zestawienie krytycznych błędów wykonawczych w systemach płaszczyznowych",
    "description": "Techniczna analiza skutków błędnego montażu instalacji hydraulicznych podposadzkowych, ze szczególnym uwzględnieniem strat cieplnych i uszkodzeń strukturalnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "ile styropianu pod ogrzewanie podłogowe",
      "izolacja brzegowa i dylatacje w podłogówce",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "plastyfikator do wylewki na podłogówkę"
    ],
    "measurementTechnique": "Analiza empiryczna spadku wydajności i wydłużenia czasu nagrzewania układu w wyniku wad instalacyjnych i materiałowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Niedostateczna izolacja gruntu (straty w dół).",
        "Brak stref dylatacyjnych (uszkodzenia mechaniczne).",
        "Powietrze w pętlach (blokada przepływu hydraulicznego).",
        "Zła mieszanka betonowa (powstanie izolatora powietrznego w jastrychu)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-bledy-wykonawcze",
    "name": "Symulator Skutków Błędów Instalacyjnych",
    "description": "Interaktywny panel demonstrujący ciąg przyczynowo-skutkowy najpoważniejszych błędów podczas wylewania i uruchamiania instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-module" id="bledy-wykonawcze-app">
    <div class="rk-err-header">
        <div class="rk-err-alert-icon">
            <svg width="34" height="34" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div>
            <h2>Najczęstsze błędy instalatorów i inwestorów</h2>
            <p>Oto lista krytycznych błędów wykonawczych i eksploatacyjnych, które zamieniają komfortowe ogrzewanie podłogowe w powolny, niewydolny i drogi w utrzymaniu system.</p>
        </div>
    </div>

    <div class="rk-err-container">
        <div class="rk-err-nav">
            <button class="rk-err-btn active" data-target="err-1">
                <div class="rk-err-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path><path d="M12 7v5"></path></svg>
                </div>
                <span>Zbyt cienka izolacja<br>termiczna (styropian)</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-1"></div>

            <button class="rk-err-btn" data-target="err-2">
                <div class="rk-err-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"></path><path d="m19 9-5 5-4-4-3 3"></path></svg>
                </div>
                <span>Brak taśmy brzegowej<br>i dylatacji jastrychu</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-2"></div>

            <button class="rk-err-btn" data-target="err-3">
                <div class="rk-err-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M8 12h8"></path><path d="M12 8v8"></path></svg>
                </div>
                <span>Zapowietrzenie pętli<br>grzewczych układu</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-3"></div>

            <button class="rk-err-btn" data-target="err-4">
                <div class="rk-err-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3h6v4l-3 4-3-4V3z"></path><path d="M14.5 11 18 16a2 2 0 0 1-1.6 3.2H7.6A2 2 0 0 1 6 16l3.5-5"></path></svg>
                </div>
                <span>Brak plastyfikatora<br>w jastrychu cementowym</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-4"></div>
        </div>

        <div class="rk-err-content-area">
            
            <div class="rk-err-panel active" id="err-1">
                <h3>Zastosowanie nieprawidłowej izolacji termicznej pod jastrychem</h3>
                <p class="rk-err-desc">
                    Ułożenie zbyt cienkiej warstwy styropianu EPS100 na gruncie (np. 5 cm zamiast projektowanych 15-20 cm) to kardynalny błąd. Wiele osób zastanawia się <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-err-link">ile styropianu pod ogrzewanie podłogowe</a> należy ułożyć – odpowiedź zawsze musi wynikać z obliczeń współczynnika przenikania ciepła U dla podłogi na gruncie, który wg WT2021 nie może przekroczyć 0,30 W/(m²·K).
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Ciepło zamiast wędrować w górę (do pomieszczenia), ucieka w dół, w głąb gruntu. Podłogówka nagrzewa się bez końca, pochłaniając gigantyczne ilości energii, podczas gdy dolna strefa płyty grzewczej jest stale schładzana przez fundament.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-2">
                <h3>Brak lub nieprawidłowe wykonanie szczelin dylatacyjnych</h3>
                <p class="rk-err-desc">
                    Brak wykonania nacięć dylatacyjnych w progach drzwiowych oraz przy powierzchniach przekraczających 40 m² (lub przy długości boku powyżej 8 m) prowadzi do katastrofy. Prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a> to jedyny sposób na skompensowanie rozszerzalności termicznej betonu.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Brak elastycznej taśmy brzegowej (o grubości min. 8-10 mm) powoduje, że rozszerzająca się nagrzana płyta uderza w ściany konstrukcyjne. Następuje zablokowanie naprężeń, niekontrolowane pękanie wylewki oraz ryzyko zgilotynowania (przerwania) mechanicznego rur grzewczych PEX.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-3">
                <h3>Zapowietrzenie pętli grzewczych rozdzielacza</h3>
                <p class="rk-err-desc">
                    Brak rzetelnego odpowietrzenia każdej pętli z osobna przy użyciu zewnętrznej pompy o dużym wydatku na etapie napełniania instalacji wodą z kranu lub zdemineralizowaną. Zignorowanie procedury sprawia, że widoczne są ewidentne <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-err-link">objawy zapowietrzenia ogrzewania podłogowego</a> na rotametrach i termometrach.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Korki powietrzne fizycznie blokują przepływ wody. Rotametry w opadają do zera (przepływ 0 l/min). Woda krąży tylko przez najkrótsze, najmniejsze pętle, podczas gdy zapowietrzone pomieszczenia pozostają całkowicie zimne, niezależnie od tego, jak mocno grzeje źródło ciepła.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-4">
                <h3>Brak chemii budowlanej (plastyfikatora) w jastrychu</h3>
                <p class="rk-err-desc">
                    Wylanie mieszanki betonowej z tzw. "miksokreta" bez zastosowania odpowiedniej chemii. Idealna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-err-link">wylewka betonowa na ogrzewanie podłogowe</a> wymaga dedykowanego plastyfikatora, który redukuje ilość wody zarobowej i uelastycznia zaprawę otulającą rurę.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Bez chemii powstaje suchy, porowaty beton o bardzo niskiej gęstości z tysiącami mikropustek powietrznych wewnątrz struktury. Powietrze to doskonały izolator – drastycznie obniża on przewodność cieplną wylewki, przez co czas nagrzewania podłogi wydłuża się co najmniej dwukrotnie.</p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errorBtns = document.querySelectorAll('#bledy-wykonawcze-app .rk-err-btn');
    const desktopPanels = document.querySelectorAll('#bledy-wykonawcze-app .rk-err-panel');

    // Kopiowanie treści paneli do kontenerów mobilnych
    desktopPanels.forEach((panel, index) => {
        const mobContainer = document.getElementById(`mob-err-${index + 1}`);
        if(mobContainer) {
            mobContainer.innerHTML = panel.innerHTML;
        }
    });

    errorBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            if (window.innerWidth <= 768) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    return;
                }
            }

            // Reset aktywnych przycisków
            errorBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktywacja paneli na desktopie
            desktopPanels.forEach(panel => {
                panel.classList.remove('active');
                if (panel.id === targetId) {
                    panel.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-darker: #020617;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #38bdf8;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #cbd5e1;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
}

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

/* Nagłówek w stylu Blueprint z poprawionym tłem warstwowym */
.rk-proj-header {
    background-color: var(--rk-proj-dark);
    background-image: 
        linear-gradient(rgba(56, 189, 248, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(56, 189, 248, 0.08) 1px, transparent 1px),
        linear-gradient(135deg, var(--rk-proj-darker) 0%, var(--rk-proj-dark) 100%);
    background-size: 20px 20px, 20px 20px, 100% 100%;
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-proj-blue);
}

.rk-proj-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-proj-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Interaktywna Konsola */
.rk-proj-console {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-proj-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-bottom: 30px;
}

.rk-proj-card {
    background: var(--rk-proj-bg);
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 30px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-proj-card:hover {
    border-color: var(--rk-proj-accent);
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.2);
}

.rk-proj-card.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-blue-light);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-card-icon {
    width: 54px;
    height: 54px;
    background: var(--rk-proj-dark);
    color: var(--rk-proj-accent);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: all 0.3s ease;
}

.rk-proj-card.active .rk-card-icon {
    background: var(--rk-proj-blue);
    color: #ffffff;
    transform: scale(1.1);
}

.rk-proj-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-proj-card p.rk-card-subtitle {
    font-size: 14px;
    color: var(--rk-proj-muted);
    margin: 0;
    font-weight: 600;
}

/* Szuflady z Detalami (Drawers) */
.rk-proj-drawers {
    position: relative;
}

.rk-proj-drawer {
    display: none;
    background: var(--rk-proj-bg);
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 35px;
    animation: drawerOpen 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-proj-drawer.active {
    display: block;
}

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

.rk-drawer-content {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-proj-text);
}

.rk-drawer-content p {
    margin: 0 0 15px 0;
}

.rk-drawer-content p:last-child {
    margin: 0;
}

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

.rk-proj-link:hover {
    color: var(--rk-proj-dark);
}

.rk-tech-badge {
    display: inline-block;
    background: #f1f5f9;
    color: var(--rk-proj-dark);
    padding: 2px 8px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
}

/* Mocne CTA */
.rk-proj-cta-section {
    background: var(--rk-proj-bg);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

.rk-proj-cta-section h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 25px 0;
}

.rk-btn-blueprint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-proj-dark);
    color: var(--rk-proj-accent);
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 15px 30px -10px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-blueprint:hover {
    transform: translateY(-4px);
    background: var(--rk-proj-darker);
    border-color: var(--rk-proj-accent);
    box-shadow: 0 20px 40px -10px rgba(56, 189, 248, 0.4);
    color: #ffffff;
}

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

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-console, .rk-proj-cta-section {
        padding: 30px 25px;
    }
    
    .rk-proj-cards {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .rk-proj-drawer {
        padding: 25px;
        margin-top: -10px;
        border-radius: 0 0 16px 16px;
        border-top: none;
    }
    
    .rk-proj-card.active {
        border-radius: 16px 16px 0 0;
        transform: none;
    }
    
    .rk-proj-card:hover {
        transform: none;
    }
    
    .rk-btn-blueprint {
        width: 100%;
        padding: 18px 20px;
        font-size: 16px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak czas nagrzewania podłogówki wpływa na profesjonalny projekt instalacji grzewczej?",
    "description": "Zobacz, jak obliczenia OZC, dobór pompy obiegowej i rozstaw rur definują czas reakcji systemu podłogowego. Profesjonalne parametry hydrauliczne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wplyw-projektu",
    "name": "Wpływ parametrów hydraulicznych na czas nagrzewania",
    "description": "Zestawienie analityczne korelacji pomiędzy inżynierskimi decyzjami projektowymi a dynamiką pracy wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "obliczeniowe zapotrzebowanie na ciepło OZC",
      "rozstaw rur w ogrzewaniu podłogowym",
      "maksymalna długość pętli podłogówki",
      "dobór pompy obiegowej do podłogówki"
    ],
    "measurementTechnique": "Wykorzystanie oprogramowania inżynierskiego (Instal-System, Audytor OZC) do modelowania przepływów hydraulicznych i natężenia strat cieplnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bilans wg PN-EN 12831: Redukcja rozstawu rur w strefach brzegowych do 10 cm.",
        "Optymalizacja hydrauliczna: Ograniczenie pętli (rura 16x2.0 mm) i wymuszenie przepływu 1.5-2.5 l/min."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-wplyw-projektu",
    "name": "Konsola Parametrów Projektowych",
    "description": "Interaktywny moduł edukacyjny wyjaśniający, jak profesjonalny inżynier dopasowuje OZC i opory hydrauliczne, aby zoptymalizować bezwładność cieplną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-blueprint-module" id="projekt-blueprint-app">
    <div class="rk-proj-header">
        <h2>Jak czas nagrzewania podłogówki wpływa na profesjonalny projekt?</h2>
        <p>Bezwładność cieplna to nie jest wyrok. To mierzalny parametr wyjściowy, który bezwzględnie determinuje proces projektowania instalacji płaszczyznowej w zaawansowanych programach inżynierskich.</p>
    </div>

    <div class="rk-proj-console">
        <div class="rk-proj-cards">
            <div class="rk-proj-card active" data-tab="tab-ozc" id="card-ozc">
                <div class="rk-card-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 20h.01"></path><path d="M7 20v-4"></path><path d="M12 20v-8"></path><path d="M17 20V8"></path><path d="M22 4v16"></path></svg>
                </div>
                <h3>Powiązanie z OZC</h3>
                <p class="rk-card-subtitle">Obliczeniowe Zapotrzebowanie na Ciepło</p>
            </div>
            <div class="rk-proj-drawer rk-mob-drawer" id="mob-tab-ozc"></div>

            <div class="rk-proj-card" data-tab="tab-hydro" id="card-hydro">
                <div class="rk-card-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Regulacja i Przepływy</h3>
                <p class="rk-card-subtitle">Opory pętli i dobór pompy</p>
            </div>
            <div class="rk-proj-drawer rk-mob-drawer" id="mob-tab-hydro"></div>
        </div>

        <div class="rk-proj-drawers" id="desktop-drawers">
            
            <div class="rk-proj-drawer active" id="tab-ozc">
                <div class="rk-drawer-content">
                    <p>Projektant nigdy nie dobiera układu rur „z katalogu”. Kluczem jest jednostkowe obciążenie cieplne danego pomieszczenia <span class="rk-tech-badge">W/m²</span>, wyznaczone z rzetelnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-proj-link">bilansu strat OZC</a> (wg normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-proj-link">PN-EN 12831</a>).</p>
                    <p>Jeśli pokój ma wysokie straty ciepła (np. salon z ogromnymi przeszkleniami), projektant zmuszony jest zagęścić <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-proj-link">rozstaw rur</a> do 10 cm lub zaprojektować osobną, niezależną <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-proj-link">strefę brzegową</a> wzdłuż okien. Zwiększa to średnią temperaturę płyty i drastycznie skraca czas reakcji układu na nagłe wychłodzenie wywołane infiltracją zimnego powietrza.</p>
                </div>
            </div>

            <div class="rk-proj-drawer" id="tab-hydro">
                <div class="rk-drawer-content">
                    <p>Zbyt długa pętla grzewcza (przekraczająca <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-proj-link">maksymalną długość</a> np. 100-120 m dla standardowej rury <span class="rk-tech-badge">16 x 2.0 mm</span>) generuje gigantyczne opory hydrauliczne. Powoduje to drastyczny spadek przepływu masowego medium.</p>
                    <p>Przy słabym przepływie woda oddaje całe ciepło na początku pętli, a końcówka strefy pozostaje zimna, co wydłuża czas nagrzewania tej części pokoju do kilkunastu godzin! Prawidłowy projekt ściśle definiuje nastawy wstępne na rotometrach rozdzielacza (np. <span class="rk-tech-badge">1.5 - 2.5 l/min</span>), gwarantując równomierne nasycenie wylewki energią, oraz określa wymaganą wysokość podnoszenia <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-proj-link">pompy obiegowej</a> (np. <span class="rk-tech-badge">6 mH₂O</span>), eliminując ryzyko powstania martwych stref grzewczych.</p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h4>Nie ryzykuj błędów. Zbuduj podłogówkę na precyzyjnych obliczeniach.</h4>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-blueprint">
            ZAMÓW PROJEKT OGRZEWANIA PODŁOGOWEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('#projekt-blueprint-app .rk-proj-card');
    const desktopDrawers = document.querySelectorAll('#projekt-blueprint-app #desktop-drawers .rk-proj-drawer');
    const desktopDrawersContainer = document.getElementById('desktop-drawers');
    
    // Kopiowanie zawartości na potrzeby widoku mobilnego (akordeon)
    const cloneToMobile = () => {
        desktopDrawers.forEach(drawer => {
            const mobTarget = document.getElementById('mob-' + drawer.id);
            if(mobTarget) {
                mobTarget.innerHTML = drawer.innerHTML;
            }
        });
    };
    cloneToMobile();

    cards.forEach(card => {
        card.addEventListener('click', function() {
            const targetTab = this.getAttribute('data-tab');
            const isMobile = window.innerWidth <= 768;

            // Logika dla urządzeń mobilnych (zamykanie aktywnej karty)
            if (isMobile) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    const activeMobDrawer = document.getElementById('mob-' + targetTab);
                    if(activeMobDrawer) {
                        activeMobDrawer.classList.remove('active');
                    }
                    return; // Zakończ, jeśli tylko zamykamy
                }
            }

            // Reset wszystkich kart i szuflad (mobilnych i desktopowych)
            cards.forEach(c => c.classList.remove('active'));
            desktopDrawers.forEach(d => d.classList.remove('active'));
            document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));

            // Aktywacja klikniętej karty
            this.classList.add('active');

            if (isMobile) {
                // Pokazujemy szufladę mobilną bezpośrednio pod kartą
                desktopDrawersContainer.style.display = 'none';
                const mobDrawer = document.getElementById('mob-' + targetTab);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                }
            } else {
                // Pokazujemy szufladę desktopową w dolnej strefie
                desktopDrawersContainer.style.display = 'block';
                const deskDrawer = document.getElementById(targetTab);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                }
            }
        });
    });

    // Nasłuchuj na zmianę rozmiaru okna, by zresetować widoki przy przejściu mobile <-> desktop
    window.addEventListener('resize', function() {
        const activeCard = document.querySelector('#projekt-blueprint-app .rk-proj-card.active');
        if (activeCard) {
            const targetTab = activeCard.getAttribute('data-tab');
            if (window.innerWidth <= 768) {
                desktopDrawersContainer.style.display = 'none';
                document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));
                const mobDrawer = document.getElementById('mob-' + targetTab);
                if(mobDrawer) mobDrawer.classList.add('active');
            } else {
                desktopDrawersContainer.style.display = 'block';
                document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));
                desktopDrawers.forEach(d => d.classList.remove('active'));
                const deskDrawer = document.getElementById(targetTab);
                if(deskDrawer) deskDrawer.classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-accent: #38bdf8;
    --rk-case-bg: #ffffff;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #ecfdf5;
    --rk-case-gold: #b45309;
}

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

/* Nagłówek Case Study */
.rk-case-header {
    background: var(--rk-case-dark);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-blue);
    position: relative;
    overflow: hidden;
}

.rk-case-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: 
        linear-gradient(rgba(56, 189, 248, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(56, 189, 248, 0.1) 1px, transparent 1px);
    background-size: 20px 20px;
    opacity: 0.8;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-case-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-case-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-case-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Interfejs Przełącznika */
.rk-case-ui {
    background: var(--rk-case-gray);
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 35px;
    position: relative;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.rk-case-btn {
    flex: 1;
    padding: 16px 15px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-case-btn.active { color: var(--rk-case-dark); }

.rk-case-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-case-btn[data-scenario="pro"].active ~ .rk-case-slider {
    transform: translateX(100%);
}

/* Widoki Scenariuszy */
.rk-scenario-view {
    display: none;
    animation: fadeInCase 0.4s ease forwards;
}

.rk-scenario-view.active { display: block; }

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

/* Dashboard Wyników */
.rk-case-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-case-metric {
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-metric-bad { border-color: var(--rk-case-red); background: var(--rk-case-red-bg); }
.rk-metric-good { border-color: var(--rk-case-green); background: var(--rk-case-green-bg); }

.rk-case-metric-icon {
    margin-bottom: 12px;
    display: flex;
    justify-content: center;
}

.rk-metric-bad .rk-case-metric-icon { color: var(--rk-case-red); }
.rk-metric-good .rk-case-metric-icon { color: var(--rk-case-green); }

.rk-case-metric-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-case-text);
    margin-bottom: 8px;
}

.rk-case-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    font-family: monospace;
}

.rk-metric-bad .rk-case-metric-val { color: #991b1b; }
.rk-metric-good .rk-case-metric-val { color: #065f46; }

/* Raport Podsumowujący w UI */
.rk-case-report {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 30px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
}

.rk-report-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.report-bad .rk-report-icon { background: var(--rk-case-red-bg); color: var(--rk-case-red); }
.report-good .rk-report-icon { background: var(--rk-case-green-bg); color: var(--rk-case-green); }

.rk-report-text h4 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px 0;
    color: var(--rk-case-dark);
}

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

.rk-highlight-roi {
    display: inline-block;
    background: var(--rk-case-gold);
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    margin-top: 10px;
    font-size: 14px;
}

/* Treść Artykułu / Rozwinięcie */
.rk-case-content {
    padding: 45px 50px;
}

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

.rk-case-content p:last-child { margin: 0; }

.rk-case-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 35px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-case-content h3 svg { color: var(--rk-case-blue); }

.rk-inline-link {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}
.rk-inline-link:hover { color: var(--rk-case-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-ui, .rk-case-content { padding: 30px 20px; }
    .rk-case-toggle { flex-direction: column; background: transparent; padding: 0; }
    .rk-case-slider { display: none; }
    .rk-case-btn { background: #e2e8f0; border: 1px solid var(--rk-case-border); margin-bottom: 10px; width: 100%; }
    .rk-case-btn.active { background: #ffffff; border-color: var(--rk-case-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    
    .rk-case-dashboard { grid-template-columns: 1fr; gap: 15px; }
    .rk-case-report { flex-direction: column; text-align: center; align-items: center; padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Case Study: Analiza porównawcza kosztów eksploatacji ogrzewania podłogowego",
    "description": "Zestawienie rzeczywistych oszczędności na kosztach ogrzewania w domu 150 m2. Porównanie instalacji z projektem OZC i bezwładnością układu na tle montażu amatorskiego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-casestudy",
    "name": "Eksploatacyjne ROI Projektu Ogrzewania Podłogowego",
    "description": "Zestawienie danych wskaźnikowych COP pompy ciepła, czasu nagrzewania oraz kosztów rocznych w zależności od poprawności wylewki i rozstawu rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rzeczywiste oszczędności na kosztach ogrzewania w skali roku",
      "koszt ogrzewania domu 2025",
      "projektowe obciążenie cieplne ozc",
      "niska temperatura zasilania pompy ciepła dlaczego 35 stopni to ideał dla podłogówki",
      "ile kosztuje 100 m² ogrzewania podłogowego"
    ],
    "measurementTechnique": "Modelowanie kosztów i wydajności w oparciu o różnicę sprawności SCOP dla parametrów zasilania 45°C (błędy instalacyjne) vs 35°C (zoptymalizowany projekt OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant bez projektu: zasilanie 45°C, COP 2.8, roczny koszt ogrzewania o około 2100 zł wyższy.",
        "Wariant Inżynierski: zasilanie 35°C, COP 4.6, pełna kontrola nad bezwładnością jastrychu.",
        "Koszt dokumentacji projektowej (średnio 550 PLN) zwraca się w pierwszym kwartale zimy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-casestudy",
    "name": "Symulator Kosztów: Amator vs Inżynier",
    "description": "Interaktywny kokpit analityczny ukazujący skutki błędów instalacyjnych w kontekście zużycia energii elektrycznej przez pompę ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-module" id="case-study-app">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study – Budowa bez ściemy</div>
        <h2>Jak 550 zł wydane na projekt ratuje tysiące w sezonie?</h2>
        <p>Zestawiamy dwa identyczne domy 150 m² z pompą ciepła. Jeden zrobiony na pamięć, drugi oparty na inżynierskim bilansie. Zobacz twarde dane o bezwładności i rachunkach.</p>
    </div>

    <div class="rk-case-ui">
        <!-- Przełącznik -->
        <div class="rk-case-toggle">
            <button class="rk-case-btn active" data-scenario="amator">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Wariant A: Zrobione "Na Oko"
            </button>
            <button class="rk-case-btn" data-scenario="pro">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Wariant B: Projekt Inżynierski (OZC)
            </button>
            <div class="rk-case-slider"></div>
        </div>

        <!-- WIDOK: AMATOR -->
        <div class="rk-scenario-view active" id="scenario-amator">
            <div class="rk-case-dashboard">
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-case-metric-title">Czas nagrzewania</div>
                    <div class="rk-case-metric-val">14 godz.</div>
                </div>
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-case-metric-title">Zasilanie (Spadek COP)</div>
                    <div class="rk-case-metric-val">45 °C</div>
                </div>
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-case-metric-title">Koszt roczny (Szacunek)</div>
                    <div class="rk-case-metric-val">+ 2 100 zł</div>
                </div>
            </div>
            
            <div class="rk-case-report report-bad">
                <div class="rk-report-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                </div>
                <div class="rk-report-text">
                    <h4>Brak kontroli nad bezwładnością</h4>
                    <p>Wylewka wylana grubo "żeby zakryć kable" (10 cm), rozstaw rur wszędzie stały 15 cm. Brak dogrzania okien wymusił podbicie temperatury zasilania do 45°C. System działa z gigantycznym opóźnieniem, a pompa ciepła "taktuje" i pracuje w strefie drastycznie niskiego COP.</p>
                </div>
            </div>
        </div>

        <!-- WIDOK: PRO (OZC) -->
        <div class="rk-scenario-view" id="scenario-pro">
            <div class="rk-case-dashboard">
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-case-metric-title">Czas reakcji</div>
                    <div class="rk-case-metric-val">~ 6 godz.</div>
                </div>
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-case-metric-title">Idealne Zasilanie</div>
                    <div class="rk-case-metric-val">35 °C</div>
                </div>
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-case-metric-title">Oszczędności</div>
                    <div class="rk-case-metric-val">Maksymalne</div>
                </div>
            </div>
            
            <div class="rk-case-report report-good">
                <div class="rk-report-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
                <div class="rk-report-text">
                    <h4>Precyzyjna fizyka budowli</h4>
                    <p>Zastosowano optymalne grubości betonu nad rurą. Rozstaw rur zmienny (zagęszczenia 10 cm przy oknach) dopasowany idealnie do bilansu OZC. Przepływy wykalibrowane na rotametrach. <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" class="rk-inline-link" style="color:#065f46;">Zasilanie 35°C</a> wyciąga z pompy ciepła najwyższe, katalogowe SCOP.</p>
                    <div class="rk-highlight-roi">Projekt za średnio 550 zł zwrócił się w 3 miesiące zimy!</div>
                </div>
            </div>
        </div>
    </div>

    <!-- Treść Teoretyczna -->
    <div class="rk-case-content">
        <p>Powyższe dane to nie teoria, a bolesna, placowa rzeczywistość polskiego budownictwa. Inwestorzy często stają przed pytaniem <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/" class="rk-inline-link">ile kosztuje wykonanie ogrzewania podłogowego</a>, szukając oszczędności rzędu kilkuset złotych na braku dokumentacji projektowej.</p>
        
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.21 15.89A10 10 0 1 1 8 2.83"></path><path d="M22 12A10 10 0 0 0 12 2v10z"></path></svg>
            Dlaczego "Na Oko" tak słabo działa?
        </h3>
        <p>Układając instalację uniwersalnie, tracimy całkowicie kontrolę nad <strong>bezwładnością cieplną</strong> i fizyką przepływów. Jeżeli salon z dużymi oknami tarasowymi ma ogromne zapotrzebowanie na moc w strefie brzegowej, a rury położono standardowo co 15 cm, podłoga po prostu nie da rady wypromieniować odpowiedniej ilości energii przy niskim zasilaniu.</p>
        
        <p>System, chcąc pokryć brakującą moc, zmusza źródło ciepła do drastycznego podbicia temperatury zasilania (np. z optymalnych 35°C na 45°C). Dla nowoczesnej pompy ciepła to wyrok – jej sprężarka wpada w strefę krytycznie niskiej sprawności (często ratując się grzałkami elektrycznymi). A <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/" class="rk-inline-link">rzeczywiste oszczędności na kosztach ogrzewania w skali roku</a> ulatniają się wraz z kolejnym rachunkiem za prąd.</p>

        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Magia Projektowego Obciążenia Cieplnego (OZC)
        </h3>
        <p>Rzetelne obliczenie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-inline-link">projektowego obciążenia cieplnego OZC</a> pozwala inżynierowi idealnie „uszyć” podłogówkę pod konkretne straty budynku. Modulując rozstaw rur i kalibrując dławienie na poszczególnych pętlach, tworzymy układ idealnie płaski hydraulicznie.</p>
        
        <p>Gdy weźmiesz pod uwagę dzisiejszy <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-inline-link">koszt ogrzewania domu</a>, średni koszt wykonania profesjonalnej dokumentacji technicznej hydrauliki rzędu 550 PLN staje się najszybciej zwracającą się inwestycją na całej budowie.</p>
    </div>
</div>

<script>
// Bezpieczne przełączanie bez &&
(function() {
    function initCaseStudy() {
        var moduleBox = document.getElementById('case-study-app');
        if (!moduleBox) return;

        var btns = moduleBox.querySelectorAll('.rk-case-btn');
        var views = moduleBox.querySelectorAll('.rk-scenario-view');

        for (var i = 0; i < btns.length; i++) {
            btns[i].addEventListener('click', function() {
                var targetScenario = this.getAttribute('data-scenario');
                
                // Zabezpieczenie przed klikaniem aktywnego na mobile (by się nie zwinęło)
                if (window.innerWidth <= 768) {
                    if (this.classList.contains('active')) {
                        return;
                    }
                }

                // Reset stanu
                for (var j = 0; j < btns.length; j++) {
                    btns[j].classList.remove('active');
                }
                for (var k = 0; k < views.length; k++) {
                    views[k].classList.remove('active');
                }

                // Aktywacja nowego stanu
                this.classList.add('active');
                var activeView = document.getElementById('scenario-' + targetScenario);
                if (activeView) {
                    activeView.classList.add('active');
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initCaseStudy);
    } else {
        initCaseStudy();
    }
})();
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-bg: #ffffff;
    --rk-auth-gray: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-gold: #b45309;
    --rk-auth-gold-light: #fef3c7;
}

.rk-author-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-auth-dark);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.15);
    overflow: hidden;
    /* CELOWO BRAK ANIMACJI - Czysty, błyskawiczny interfejs */
}

/* Układ główny - 2 kolumny */
.rk-auth-grid {
    display: flex;
    flex-wrap: nowrap;
}

/* Lewa kolumna - Profil */
.rk-auth-profile {
    width: 320px;
    background: var(--rk-auth-dark);
    padding: 45px 30px;
    text-align: center;
    color: #ffffff;
    flex-shrink: 0;
    border-right: 1px solid var(--rk-auth-border);
}

.rk-auth-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-bg);
    margin: 0 auto 20px;
    overflow: hidden;
    background: var(--rk-auth-gray);
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}

.rk-auth-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.rk-auth-name {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-auth-title {
    font-size: 13px;
    color: var(--rk-auth-accent, #38bdf8);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
}

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

.rk-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    padding: 10px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

/* Prawa kolumna - Treść */
.rk-auth-content {
    flex-grow: 1;
    padding: 45px;
    display: flex;
    flex-direction: column;
    background: var(--rk-auth-bg);
}

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

/* Cytat Autorytetu */
.rk-auth-quote-box {
    background: var(--rk-auth-gold-light);
    border-left: 5px solid var(--rk-auth-gold);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
    position: relative;
}

.rk-auth-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: var(--rk-auth-gold);
    color: #ffffff;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 24px;
    font-family: serif;
    font-weight: bold;
    line-height: 1;
}

.rk-auth-quote-text {
    font-size: 17px;
    font-weight: 700;
    font-style: italic;
    color: #92400e;
    line-height: 1.6;
    margin: 0;
}

/* Interaktywne Zakładki (Statyczne, bez animacji CSS) */
.rk-auth-tabs {
    display: flex;
    gap: 5px;
    border-bottom: 2px solid var(--rk-auth-border);
    margin-bottom: 25px;
}

.rk-tab-btn {
    padding: 12px 24px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-muted, #64748b);
    cursor: pointer;
    margin-bottom: -2px;
}

.rk-tab-btn.active {
    color: var(--rk-auth-dark);
    border-bottom-color: var(--rk-auth-blue);
}

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

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

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

.rk-panel-text ul {
    margin: 15px 0 0 20px;
    padding: 0;
}

.rk-panel-text li {
    margin-bottom: 10px;
}

.rk-inline-link {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-auth-dark); }

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-auth-grid {
        flex-direction: column;
    }
    .rk-auth-profile {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--rk-auth-border);
        padding: 40px 20px;
    }
    .rk-auth-content {
        padding: 30px 20px;
    }
    .rk-auth-tabs {
        flex-direction: column;
        border-bottom: none;
        gap: 8px;
    }
    .rk-tab-btn {
        width: 100%;
        text-align: left;
        border-bottom: none;
        border-left: 4px solid transparent;
        background: var(--rk-auth-gray);
        border-radius: 8px;
        margin-bottom: 0;
    }
    .rk-tab-btn.active {
        border-left-color: var(--rk-auth-blue);
        background: #e0f2fe;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o czasie nagrzewania podłogówki",
    "description": "Autorskie podsumowanie zasad sterowania bezwładnością cieplną ogrzewania podłogowego. Sygnatura E-E-A-T potwierdzająca kwalifikacje inżynierskie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO, Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-ekspert",
    "name": "Kwalifikacje i autorytet inżynierski (E-E-A-T)",
    "description": "Dane weryfikujące doświadczenie eksperta projektującego wodne ogrzewanie podłogowe, pompy ciepła i systemy rekuperacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania",
      "ekspert hvac",
      "projektant instalacji sanitarnych",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "kompleksowa wycena ogrzewania podłogowego wodnego"
    ],
    "measurementTechnique": "Weryfikacja autorytetu poprzez powiązane profile społecznościowe (LinkedIn, Facebook) oraz staż w branży HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ponad 1000 autorskich projektów podłogówki.",
        "Praktyczna optymalizacja krzywych grzewczych w OZC.",
        "Zarządzanie dynamiką i bezwładnością układów płaszczyznowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-ekspert",
    "name": "Weryfikator Autorytetu (E-E-A-T)",
    "description": "Moduł udostępniający zweryfikowane dane eksperckie oraz bezpośrednie odnośniki do kanałów komunikacji głównego projektanta.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-author-module" id="eeat-author-card">
    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC" loading="lazy">
            </div>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Specjalista HVAC / CEO</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Profil LinkedIn - Robert Kucharski">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Profil Facebook - Projekt Ogrzewania">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"/></svg>
                    Facebook
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            <h2 class="rk-auth-h2">Zdaniem eksperta: Robert Kucharski o czasie nagrzewania</h2>
            
            <div class="rk-auth-quote-box">
                <div class="rk-auth-quote-icon">"</div>
                <p class="rk-auth-quote-text">
                    Podłogówka to nie grzejnik – nie zmuszaj jej do gwałtownych skoków. To potężny betonowy akumulator ciepła. Twój komfort i zminimalizowane rachunki zależą wyłącznie od stabilnej pracy instalacji, celowo zaprogramowanej w rzetelnym projekcie OZC.
                </p>
            </div>

            <div class="rk-auth-tabs">
                <button class="rk-tab-btn active" data-tab="tab-zasada">Inżynierska zasada</button>
                <button class="rk-tab-btn" data-tab="tab-projekt">Po co Ci projekt?</button>
            </div>

            <div class="rk-tab-panel active" id="tab-zasada">
                <div class="rk-panel-text">
                    Zawsze dobieraj <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-inline-link">rozdzielacze mosiężne lub nierdzewne</a> z rotametrami do precyzyjnej kalibracji. Pamiętaj: jeśli wylewka ma ponad 7 cm grubości, zapomnij o "grzejnikowym" sterowaniu nocnym. Czas potrzebny na dogrzanie przekroczy czas trwania nocy, a Twoja pompa ciepła straci sprawność SCOP.
                </div>
            </div>

            <div class="rk-tab-panel" id="tab-projekt">
                <div class="rk-panel-text">
                    Montaż rur na tzw. "oko" niemal zawsze gwarantuje koszty, które będziesz spłacać latami. Pełne, <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-inline-link">inżynierskie opracowanie instalacji</a> daje Ci:
                    <ul>
                        <li>Optymalizację hydrauliki, eliminującą ryzyko "zęba termicznego".</li>
                        <li>Spasowanie pompy obiegowej z faktycznymi oporami najdłuższej pętli.</li>
                        <li>Bezpieczne zarządzanie gigantyczną bezwładnością betonu.</li>
                    </ul>
                </div>
            </div>

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

<script>
(function() {
    function initEeatTabs() {
        var card = document.getElementById('eeat-author-card');
        if (!card) return;

        var btns = card.querySelectorAll('.rk-tab-btn');
        var panels = card.querySelectorAll('.rk-tab-panel');

        // Błyskawiczne, pozbawione animacji przełączanie zakładek
        for (var i = 0; i < btns.length; i++) {
            btns[i].addEventListener('click', function() {
                var target = this.getAttribute('data-tab');

                for (var j = 0; j < btns.length; j++) {
                    btns[j].classList.remove('active');
                }
                for (var k = 0; k < panels.length; k++) {
                    panels[k].classList.remove('active');
                }

                this.classList.add('active');
                var activePanel = document.getElementById(target);
                if (activePanel) {
                    activePanel.classList.add('active');
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initEeatTabs);
    } else {
        initEeatTabs();
    }
})();
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    padding: 35px 45px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 4px solid var(--rk-faq-blue);
}

.rk-faq-header-icon {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Kontener Akordeonu */
.rk-faq-accordion {
    padding: 30px 45px;
    background: #f8fafc;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 8px 15px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk Akordeonu */
.rk-faq-trigger {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    cursor: pointer;
    border-radius: 14px;
    transition: background 0.2s ease;
}

.rk-faq-trigger:hover {
    background: var(--rk-faq-blue-light);
}

.rk-faq-trigger h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

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

/* Ikona Chevron */
.rk-faq-chevron {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-muted);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Zawartość Akordeonu */
.rk-faq-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

.rk-faq-content-inner {
    overflow: hidden;
}

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

.rk-faq-body p {
    margin: 0 0 12px 0;
}

.rk-faq-body p:last-child {
    margin: 0;
}

.rk-faq-link {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-link:hover {
    border-color: var(--rk-faq-blue);
}

/* Wyróżnienia tekstu */
.rk-faq-highlight {
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-faq-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-faq-accordion {
        padding: 20px;
    }
    .rk-faq-trigger {
        padding: 18px 20px;
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }
    .rk-faq-chevron {
        margin-top: 10px;
    }
    .rk-faq-body {
        padding: 0 20px 20px 20px;
        text-align: center;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy włączenie wyższej temperatury na kotle przyspieszy nagrzewanie zimnej podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, drastyczne podniesienie temperatury zasilania powyżej wartości projektowej nie przyspieszy znacząco pierwszego nagrzania, a może doprowadzić do popękania wylewki betonowej i uszkodzenia rur. Ograniczeniem jest maksymalna bezpieczna przewodność termiczna jastrychu oraz dopuszczalna temperatura powierzchni podłogi wynosząca 29°C dla pokoi i 33°C dla łazienek."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy podłogówka działa prawidłowo, jeśli po 2 godzinach podłoga wciąż jest zimna?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy zweryfikować wskazania przepływomierzy (rotometrów) na rozdzielaczu – jeśli wskaźniki opadły i pokazują przepływ w granicach 1,5-2,5 l/min, system pracuje poprawnie, a brak odczuwalnego ciepła wynika wyłącznie z naturalnej, kilkugodzinnej bezwładności termicznej betonu. Pomocne jest użycie pirometru lub kamery termowizyjnej w celu sprawdzenia temperatury rury zasilającej i powrotnej na belce rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się podłogówka zasilana z pompy ciepła w porównaniu do kotła gazowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Czas nagrzewania samej płyty betonowej jest identyczny dla obu źródeł ciepła, pod warunkiem dostarczenia medium o tej samej temperaturze i identycznym przepływie masowym. Różnica polega na tym, że kocioł gazowy potrafi wygenerować wysoką moc szczytową natychmiast, natomiast inwerterowa pompa ciepła dochodzi do swojej mocy nominalnej stopniowo, modulując obroty sprężarki w celu optymalizacji wskaźnika COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rekuperacja (wentylacja mechaniczna z odzyskiem ciepła) skraca czas nagrzewania pomieszczenia z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, rekuperacja skraca czas potrzebny na stabilizację temperatury powietrza w pomieszczeniu o około 20-30%, ponieważ stale odzyskuje ciepło z powietrza wywiewanego i ogranicza napływ zimnych mas powietrza zewnętrznego. Wentylacja mechaniczna eliminuje gwałtowne wychłodzenie strefy przypodłogowej, które występuje przy klasycznym wietrzeniu przez otwieranie okien."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego łazienka z podłogówką nagrzewa się najdłużej, mimo że to małe pomieszczenie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Łazienka ma najwyższą projektową temperaturę wewnętrzną (24°C w porównaniu do 20°C w pokojach), mniejszą efektywną powierzchnię grzewczą ze względu na zabudowę wanny czy brodzika oraz wysokie zapotrzebowanie na moc wentylacyjną. Z tego powodu, mimo gęstego rozstawu rur co 10 cm, czas potrzebny na osiągnięcie pełnego komfortu termicznego w łazience bywa najdłuższy w całym budynku."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "FAQ – Najczęstsze pytania dotyczące czasu nagrzewania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych odpowiedzi inżynierskich dotyczących dynamiki nagrzewania układów płaszczyznowych, pomp ciepła i rekuperacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-faq",
    "name": "Baza wiedzy Q&A: Dynamika cieplna podłogówki",
    "description": "Usystematyzowane dane odpowiadające na najczęstsze błędy i pytania inwestorów związane z czasem reakcji wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dlaczego podłogówka wolno się nagrzewa",
      "temperatura zasilania ogrzewania podłogowego",
      "rotametry w podłogówce",
      "rekuperacja a ogrzewanie podłogowe",
      "zagęszczenie rur w łazience"
    ],
    "measurementTechnique": "Empiryczne i normatywne wskaźniki działania systemów ogrzewania płaszczyznowego weryfikowane w warunkach domów jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja przepływów hydraulicznych",
        "Zależność źródła ciepła (kocioł gazowy vs pompa ciepła) a czas nagrzewu",
        "Wpływ wentylacji mechanicznej na dynamikę grzewczą budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-faq",
    "name": "Interaktywny Asystent FAQ",
    "description": "Zwijany moduł z bazą wiedzy ułatwiający szybkie odnalezienie technicznych odpowiedzi na problemy związane z nagrzewaniem się podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-module" id="faq-nagrzewanie-podlogowki">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div class="rk-faq-header-content">
            <h2>FAQ – Najczęstsze pytania dotyczące czasu nagrzewania ogrzewania podłogowego</h2>
            <p>Rozwiewamy techniczne mity. Sprawdź, co wpływa na czas reakcji systemu i uniknij błędów eksploatacyjnych na starcie.</p>
        </div>
    </div>

    <div class="rk-faq-accordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Czy włączenie wyższej temperatury na kotle przyspieszy nagrzewanie zimnej podłogówki?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p><strong>Nie</strong>, drastyczne podniesienie temperatury zasilania powyżej wartości projektowej nie przyspieszy znacząco pierwszego nagrzania, a może doprowadzić do popękania wylewki betonowej i uszkodzenia rur.</p>
                        <p>Ograniczeniem jest maksymalna bezpieczna przewodność termiczna jastrychu oraz dopuszczalna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" class="rk-faq-link">maksymalna temperatura zasilania</a> i powierzchni podłogi wynosząca <span class="rk-faq-highlight">29°C dla pokoi</span> i <span class="rk-faq-highlight">33°C dla łazienek</span>.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Jak sprawdzić, czy podłogówka działa prawidłowo, jeśli po 2 godzinach podłoga wciąż jest zimna?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Należy zweryfikować wskazania <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-faq-link">przepływomierzy (rotometrów) na rozdzielaczu</a> – jeśli wskaźniki opadły i pokazują przepływ w granicach <strong>1,5-2,5 l/min</strong>, system pracuje poprawnie.</p>
                        <p>Brak odczuwalnego ciepła wynika wyłącznie z naturalnej, kilkugodzinnej bezwładności termicznej betonu. Pomocne jest użycie pirometru lub kamery termowizyjnej w celu sprawdzenia temperatury rury zasilającej i powrotnej na belce rozdzielacza.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Ile czasu nagrzewa się podłogówka zasilana z pompy ciepła w porównaniu do kotła gazowego?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Czas nagrzewania samej płyty betonowej jest <strong>identyczny dla obu źródeł ciepła</strong>, pod warunkiem dostarczenia medium o tej samej temperaturze i identycznym przepływie masowym.</p>
                        <p>Różnica polega na tym, że <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" class="rk-faq-link">kocioł gazowy</a> potrafi wygenerować wysoką moc szczytową natychmiast, natomiast inwerterowa pompa ciepła dochodzi do swojej mocy nominalnej stopniowo, modulując obroty sprężarki w celu optymalizacji wskaźnika COP.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Czy rekuperacja (wentylacja mechaniczna) skraca czas nagrzewania pomieszczenia z podłogówką?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p><strong>Tak</strong>, poprawne <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-faq-link">połączenie rekuperacji i podłogówki</a> skraca czas potrzebny na stabilizację temperatury powietrza w pomieszczeniu o około <span class="rk-faq-highlight">20-30%</span>.</p>
                        <p>System stale odzyskuje ciepło z powietrza wywiewanego i ogranicza napływ zimnych mas z zewnątrz. Wentylacja mechaniczna eliminuje gwałtowne wychłodzenie strefy przypodłogowej, które występuje przy klasycznym wietrzeniu przez otwieranie okien.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Dlaczego łazienka z podłogówką nagrzewa się najdłużej, mimo że to małe pomieszczenie?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Łazienka ma najwyższą projektową temperaturę wewnętrzną (<span class="rk-faq-highlight">24°C</span> w porównaniu do 20°C w pokojach), mniejszą efektywną powierzchnię grzewczą ze względu na zabudowę wanny czy brodzika oraz wysokie zapotrzebowanie na moc wentylacyjną.</p>
                        <p>Z tego powodu, niezwykle ważne jest wiedzieć <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/" class="rk-faq-link">jak gęsto układać rury</a> (najczęściej co 10 cm). Mimo zagęszczenia, czas potrzebny na osiągnięcie pełnego komfortu termicznego w łazience bywa najdłuższy w całym budynku.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('#faq-nagrzewanie-podlogowki .rk-faq-item');

    faqItems.forEach(item => {
        const trigger = item.querySelector('.rk-faq-trigger');
        
        trigger.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie otwarte
            faqItems.forEach(faq => {
                faq.classList.remove('active');
                faq.querySelector('.rk-faq-trigger').setAttribute('aria-expanded', 'false');
            });

            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
                trigger.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-base-dark: #0f172a;
    --rk-base-blue: #0284c7;
    --rk-base-light: #f8fafc;
    --rk-base-accent: #38bdf8;
    --rk-base-green: #059669;
    --rk-base-red: #dc2626;
    --rk-border-color: #e2e8f0;
    --rk-text-main: #334155;
    --rk-text-muted: #64748b;
}

.rk-summary-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-base-blue);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-base-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-base-blue);
}

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

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

/* Interaktywny Panel Porównawczy */
.rk-interactive-panel {
    padding: 40px 50px;
    background: var(--rk-base-light);
}

.rk-toggle-container {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    position: relative;
    margin-bottom: 30px;
}

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

.rk-toggle-btn.active {
    color: var(--rk-base-dark);
}

.rk-toggle-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-toggle-btn[data-target="modern"].active ~ .rk-toggle-slider {
    transform: translateX(100%);
}

/* Treść przełącznika */
.rk-panel-content {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-border-color);
    border-radius: 16px;
    padding: 30px;
    animation: fadeIn 0.4s ease-out forwards;
}

.rk-panel-content.active {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 25px;
    align-items: center;
}

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

.rk-icon-box {
    width: 80px;
    height: 80px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.state-old .rk-icon-box { background: #fee2e2; color: var(--rk-base-red); }
.state-new .rk-icon-box { background: #d1fae5; color: var(--rk-base-green); }

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

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

.rk-panel-text p:last-child { margin: 0; }

.rk-link-inline {
    color: var(--rk-base-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Treść podsumowania i Tagi */
.rk-summary-body {
    padding: 0 50px 30px 50px;
    background: var(--rk-base-light);
}

.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed #cbd5e1;
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-border-color);
    color: var(--rk-base-blue);
    font-size: 13px;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* CTA */
.rk-summary-cta {
    background: #ffffff;
    padding: 40px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-border-color);
}

.rk-summary-cta h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-base-dark);
    margin: 0 0 20px 0;
}

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-summary-header, .rk-interactive-panel, .rk-summary-body, .rk-summary-cta {
        padding: 30px 20px;
    }
    .rk-summary-header h2 { font-size: 24px; }
    
    /* Na mobile zmieniamy układ na akordeonowy (pionowy) */
    .rk-toggle-container {
        flex-direction: column;
        background: transparent;
        padding: 0;
        gap: 10px;
    }
    .rk-toggle-slider { display: none; /* Wyłączamy suwak na mobile */ }
    .rk-toggle-btn {
        background: #e2e8f0;
        border: 1px solid var(--rk-border-color);
        width: 100%;
    }
    .rk-toggle-btn.active {
        background: #ffffff;
        border-color: var(--rk-base-blue);
        box-shadow: 0 4px 6px rgba(2, 132, 199, 0.1);
    }
    
    .rk-panel-content.active {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 15px;
    }
    .rk-icon-box { margin: 0 auto; }
    .rk-btn-solid { width: 100%; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-podsumowanie-bezwladnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Podsumowanie – Dlaczego kontrola bezwładności cieplnej to klucz do oszczędności?",
    "description": "Zrozumienie czasu nagrzewania się podłogówki i rezygnacja z nawyków z grzejników to fundament stabilnej i taniej eksploatacji instalacji CO. Konieczny jest projekt OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-bezwladnosc",
    "name": "Analiza oszczędności z kontroli bezwładności cieplnej instalacji płaszczyznowej",
    "description": "Zestawienie porównawcze wariantów eksploatacyjnych systemu grzewczego: gwałtowne sterowanie (nawyk grzejnikowy) vs stabilna praca na bazie krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas nagrzewania ogrzewania podłogowego",
      "bezwładność cieplna podłogówki",
      "krzywa grzewcza w podłogówce",
      "obliczenia strat ciepła OZC",
      "sterowanie ogrzewaniem podłogowym"
    ],
    "measurementTechnique": "Porównanie kosztów skokowego sterowania temperaturą z płynnym zarządzaniem z użyciem krzywej grzewczej i bilansu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Skokowe zarządzanie: Częste wyłączanie układu wydłuża czas reakcji i podnosi rachunki.",
        "Stabilna praca: Zastosowanie inżynieryjnej krzywej grzewczej i stałego zładu gwarantuje najniższe zużycie energii i maksymalny komfort."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-bezwladnosc",
    "name": "Symulator Strategii Grzewczej",
    "description": "Interaktywny przełącznik wizualizujący różnicę w zarządzaniu energią między starymi nawykami (grzejniki) a inżynierskim podejściem do podłogówki (OZC).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-module" id="bezwladnosc-summary">
    <div class="rk-summary-header">
        <h2>Podsumowanie – Dlaczego kontrola bezwładności cieplnej to klucz do oszczędności?</h2>
        <p>Zrozumienie, ile czasu nagrzewa się podłogówka, to nie tylko ciekawostka fizyczna. To absolutny fundament, który pozwala zerwać z błędnymi nawykami wypracowanymi przy tradycyjnych grzejnikach i zacząć zarządzać energią w sposób zrównoważony.</p>
    </div>

    <div class="rk-interactive-panel">
        <div class="rk-toggle-container">
            <button class="rk-toggle-btn active" data-target="old">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Nawyki z grzejników
            </button>
            <button class="rk-toggle-btn" data-target="modern">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Nowoczesne sterowanie
            </button>
            <div class="rk-toggle-slider"></div>
        </div>

        <div class="rk-panel-content state-old active" id="content-old">
            <div class="rk-icon-box">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 18 13.5 8.5 8.5 13.5 1 6"></polyline><polyline points="17 18 23 18 23 12"></polyline></svg>
            </div>
            <div class="rk-panel-text">
                <h3>Skokowe spadki i wzrosty</h3>
                <p>Częste włączanie i wyłączanie termostatów pokojowych na noc powoduje wyziębienie gigantycznej masy jastrychu. System zmuszany jest do gwałtownych skoków temperatury, co potężnie obciąża pompę ciepła.</p>
                <p>Ignorowanie zjawiska <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link-inline">bezwładności cieplnej podłogówki</a> to najszybsza droga do gigantycznych rachunków za prąd lub gaz.</p>
            </div>
        </div>

        <div class="rk-panel-content state-new" id="content-modern">
            <div class="rk-icon-box">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <div class="rk-panel-text">
                <h3>Stabilna praca instalacji</h3>
                <p>Wodne ogrzewanie podłogowe to niezwykle sprawny akumulator ciepła. Najlepiej odwdzięcza się bezawaryjną pracą, gdy jest sterowane płynnie w oparciu o wyliczoną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-link-inline">krzywą grzewczą</a>.</p>
                <p>Zapewnia to przewidywalny czas reakcji układu, optymalne zbalansowanie hydrauliczne i maksymalny komfort cieplny bez szarpania sprężarką pompy.</p>
            </div>
        </div>
    </div>

    <div class="rk-summary-body">
        <p style="color: var(--rk-text-main); line-height: 1.6; font-size: 15px; margin-bottom: 0;">
            Pamiętaj: bezpieczeństwo strukturalne budynku i idealne przepływy nie powstaną przez montaż układu „na oko”. Każda sprawna instalacja musi mieć twardy inżynierski fundament oparty na rzeczywistych parametrach. Zgadywanie zysków i strat mija się z celem – jedynym pewnym rozwiązaniem jest rzetelne <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/" style="color: var(--rk-base-blue); font-weight: 700;">obliczenie bilansu cieplnego OZC</a>, na podstawie którego dobiera się dynamikę pracy systemu.
        </p>

        <div class="rk-tags-wrapper">
            <span class="rk-mat-tag"># czas nagrzewania ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># bezwładność cieplna podłogówki</span>
            <span class="rk-mat-tag"># krzywa grzewcza w podłogówce</span>
            <span class="rk-mat-tag"># obliczenia strat ciepła OZC</span>
            <span class="rk-mat-tag"># oszczędności z ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego online</span>
        </div>
    </div>

    <div class="rk-summary-cta">
        <h4>Przestań zgadywać. Zacznij projektować na mierzalnych liczbach.</h4>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            SPRAWDŹ BAZĘ WIEDZY INŻYNIERSKIEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleBtns = document.querySelectorAll('#bezwladnosc-summary .rk-toggle-btn');
    const contents = document.querySelectorAll('#bezwladnosc-summary .rk-panel-content');

    toggleBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const target = this.getAttribute('data-target');

            // Reset stanów przycisków
            toggleBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Przełączanie treści
            contents.forEach(content => {
                content.classList.remove('active');
                if (content.id === `content-${target}`) {
                    content.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-accent: #38bdf8;
    --rk-dl-bg: #ffffff;
    --rk-dl-gray: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-muted: #64748b;
}

.rk-download-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 16px;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    /* Surowy design, celowy brak animacji CSS (transition użyte tylko do kolorów) */
}

/* Nagłówek */
.rk-dl-header {
    background: var(--rk-dl-gray);
    padding: 35px 45px;
    border-bottom: 1px solid var(--rk-dl-border);
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-dl-icon {
    width: 50px;
    height: 50px;
    background: var(--rk-dl-blue);
    color: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-dl-header h2 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: var(--rk-dl-dark);
    line-height: 1.2;
}

.rk-dl-header p {
    font-size: 15px;
    color: var(--rk-dl-muted);
    margin: 0;
    font-weight: 500;
}

/* Układ główny */
.rk-dl-grid {
    display: flex;
    padding: 40px 45px;
    gap: 40px;
}

/* Lewa Kolumna - Miniatura */
.rk-dl-thumbnail-box {
    width: 300px;
    flex-shrink: 0;
}

.rk-dl-thumb-wrapper {
    position: relative;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
    cursor: pointer;
    background: var(--rk-dl-gray);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    /* Brak animacji hover na skale, tylko zmiana obramowania */
    transition: border-color 0.2s;
}

.rk-dl-thumb-wrapper:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 3/4;
    object-fit: cover;
    object-position: top;
}

.rk-dl-zoom-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumb-wrapper:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-dl-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}

.rk-dl-zoom-text {
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa Kolumna - Treść i Przyciski */
.rk-dl-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-content h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

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

.rk-dl-desc ul {
    margin: 15px 0 0 20px;
    padding: 0;
}

.rk-dl-desc li {
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-inline-link {
    color: var(--rk-dl-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-inline-link:hover { color: var(--rk-dl-dark); }

/* Przyciski Pobierania */
.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}

.rk-btn-download {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 15px;
    border: 2px solid;
    transition: background-color 0.2s, color 0.2s;
}

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

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

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

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

.rk-btn-icon-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-btn-meta {
    font-size: 12px;
    font-weight: 600;
    font-family: monospace;
    opacity: 0.8;
}

/* Stopka Prawna */
.rk-dl-footer {
    background: var(--rk-dl-gray);
    padding: 15px 45px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    color: var(--rk-dl-muted);
    text-align: center;
    line-height: 1.5;
}

/* LIGHTBOX (Przeglądarka zdjęć) */
.rk-lightbox {
    display: none; /* Natychmiastowe ukrycie, bez animacji */
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    padding: 20px;
}

.rk-lightbox.active {
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.5);
}

.rk-lightbox-close {
    position: absolute;
    top: -40px;
    right: -10px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-dl-grid { flex-direction: column; padding: 30px 20px; gap: 30px; }
    .rk-dl-thumbnail-box { width: 100%; max-width: 320px; margin: 0 auto; }
    .rk-dl-footer { padding: 15px 20px; text-align: left; }
    .rk-lightbox-close { top: -35px; right: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Pobierz darmową infografikę: Ile czasu nagrzewa się podłogówka?",
    "description": "Pobierz inżynierską ściągawkę na budowę. Zestawienie czasów nagrzewania wylewki, bezwładności oraz kluczowych parametrów z normy PN-EN 1264 w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-infografika",
    "name": "Infografika: Czasy reakcji układów płaszczyznowych",
    "description": "Zestawienie tabelaryczne i graficzne parametrów rozruchowych dla instalacji podłogowych z uwzględnieniem izolacji i jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "kompleksowy kalkulator ogrzewania podłogowego",
      "jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym",
      "ile rury na m² ogrzewania podłogowego",
      "gdzie nie układać ogrzewania podłogowego"
    ],
    "measurementTechnique": "Agregacja i wizualizacja wskaźników fizycznych (czas, grubość, opór cieplny) w formacie wektorowym PDF gotowym do druku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Czasy nagrzewania dla systemów mokrych i suchych.",
        "Wpływ grubości jastrychu na bezwładność.",
        "Limity oporu cieplnego dla okładzin (gres, panele)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-infografika",
    "name": "Przeglądarka Materiałów Edukacyjnych",
    "description": "Interaktywny moduł z Lightboxem umożliwiający podgląd i pobranie materiałów szkoleniowych dotyczących podłogówki bez opuszczania artykułu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-module" id="pobierz-infografike-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-icon">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
        </div>
        <div>
            <h2>Pobierz darmową infografikę: Ile czasu nagrzewa się podłogówka?</h2>
            <p>Inżynierska ściągawka dla inwestorów i wykonawców.</p>
        </div>
    </div>

    <div class="rk-dl-grid">
        
        <div class="rk-dl-thumbnail-box">
            <div class="rk-dl-thumb-wrapper" id="rk-trigger-lightbox" role="button" tabindex="0" aria-label="Powiększ infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" alt="Infografika - Czasy nagrzewania podłogówki" loading="lazy">
                
                <div class="rk-dl-zoom-overlay">
                    <div class="rk-dl-zoom-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    </div>
                    <span class="rk-dl-zoom-text">Kliknij, aby powiększyć</span>
                </div>
            </div>
        </div>

        <div class="rk-dl-content">
            <h3>Wszystkie dane w jednym miejscu</h3>
            <div class="rk-dl-desc">
                <p>Zamiast szukać informacji rozrzuconych po forach, przygotowaliśmy dla Ciebie kompaktowe zestawienie. Idealne do wydrukowania i powieszenia w kotłowni lub pokazania instalatorowi. Znajdziesz na niej m.in.:</p>
                <ul>
                    <li>Dokładne różnice czasowe między anhydrytem a cementem.</li>
                    <li>Ograniczenia oporów cieplnych dla różnych okładzin.</li>
                    <li>Wpływ grubości betonu na bezwładność systemu.</li>
                </ul>
                <p style="margin-top: 15px;">Jeśli po analizie infografiki wciąż masz wątpliwości, sprawdź nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-inline-link">kompleksowy kalkulator ogrzewania podłogowego</a>, by przeliczyć własny budynek, oraz zapoznaj się z tym, <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-inline-link">jakich najczęstszych błędów wykonawczych unikać</a>.</p>
            </div>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-pdf" download>
                    <div class="rk-btn-icon-left">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></svg>
                        Pobierz plik PDF
                    </div>
                    <span class="rk-btn-meta">Do druku</span>
                </a>
                
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-img" download>
                    <div class="rk-btn-icon-left">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        Pobierz grafikę (WebP)
                    </div>
                    <span class="rk-btn-meta">Na telefon</span>
                </a>
            </div>
        </div>
    </div>

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

    <div class="rk-lightbox" id="rk-img-lightbox">
        <div class="rk-lightbox-content">
            <button class="rk-lightbox-close" id="rk-close-lightbox">
                Zamknij 
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
            </button>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" class="rk-lightbox-img" alt="Infografika Podłogówka - Powiększenie">
        </div>
    </div>
</div>

<script>
// Czysty, w pełni bezpieczny kod bez znaków &&
(function() {
    function initDownloadLightbox() {
        var trigger = document.getElementById('rk-trigger-lightbox');
        var lightbox = document.getElementById('rk-img-lightbox');
        var closeBtn = document.getElementById('rk-close-lightbox');

        if (!trigger) { return; }
        if (!lightbox) { return; }

        // Otwieranie Lightboxa
        trigger.addEventListener('click', function() {
            lightbox.classList.add('active');
            document.body.style.overflow = 'hidden'; // Blokada przewijania tła
        });

        // Otwieranie enterem (Dostępność / Accessibility)
        trigger.addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                lightbox.classList.add('active');
                document.body.style.overflow = 'hidden';
            }
        });

        // Zamykanie przyciskiem
        if (closeBtn) {
            closeBtn.addEventListener('click', function() {
                lightbox.classList.remove('active');
                document.body.style.overflow = ''; 
            });
        }

        // Zamykanie przez kliknięcie w tło
        lightbox.addEventListener('click', function(e) {
            // Zamknij tylko jeśli kliknięto bezpośrednio w ciemne tło (nie w obrazek)
            if (e.target === lightbox) {
                lightbox.classList.remove('active');
                document.body.style.overflow = '';
            }
        });

        // Zamykanie klawiszem Escape
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Escape') {
                if (lightbox.classList.contains('active')) {
                    lightbox.classList.remove('active');
                    document.body.style.overflow = '';
                }
            }
        });
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initDownloadLightbox);
    } else {
        initDownloadLightbox();
    }
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 19:37:24 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2965</guid>

					<description><![CDATA[<p>Bezwładność cieplna to jeden z najczęściej niezrozumianych aspektów ogrzewania podłogowego, a jednocześnie klucz do jego komfortu i efektywności. W artykule wyjaśniamy, czym jest bezwładność cieplna w ogrzewaniu podłogowym, skąd się bierze i jak wpływa na codzienne użytkowanie instalacji. Pokazujemy, dlaczego podłogówka reaguje wolniej niż grzejniki, jaką rolę odgrywa wylewka, materiały wykończeniowe oraz automatyka i w jaki sposób świadome sterowanie pozwala zamienić pozorną wadę w realną przewagę energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna 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"><strong>Bezwładność cieplna w ogrzewaniu podłogowym</strong> to fundamentalna cecha fizyczna, która decyduje o charakterystyce pracy, komforcie użytkowania i efektywności całego systemu. W dużym uproszczeniu, jest to właściwość polegająca na powolnym nagrzewaniu i jeszcze wolniejszym stygnięciu masywnej konstrukcji podłogi. To zjawisko, które wynika bezpośrednio z praw termodynamiki i pojemności cieplnej materiałów, takich jak betonowa wylewka, stanowiąca serce wodnej instalacji grzewczej. Zrozumienie mechanizmów rządzących <strong>bezwładnością termiczną</strong> jest niezbędne do prawidłowego zaprojektowania, wykonania, a przede wszystkim – <a href="https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/">sterowania ogrzewaniem podłogowym</a>, aby w pełni wykorzystać jego potencjał i uniknąć kosztownych błędów eksploatacyjnych.</p>



<h2 class="wp-block-heading">Fizyka stojąca za bezwładnością termiczną: Magazyn energii cieplnej.</h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć,&nbsp;<strong>czym jest bezwładność cieplna w ogrzewaniu podłogowym</strong>, należy odwołać się do podstawowych pojęć fizycznych. Kluczowym parametrem jest&nbsp;<strong>pojemność cieplna właściwa</strong>&nbsp;materiału, czyli ilość energii potrzebna do podniesienia temperatury 1 kg tej substancji o 1 stopień Kelvina. Im wyższa ta wartość, tym więcej ciepła materiał może &#8222;zaabsorbować&#8221; i później oddawać.</p>



<h3 class="wp-block-heading">Konstrukcja podłogi jako akumulator.</h3>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe to nie tylko <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> z ciepłą wodą. To złożony &#8222;tort&#8221; warstwowy, z których każda ma wpływ na dynamikę systemu. Głównym magazynem ciepła jest:</p>



<ul class="wp-block-list">
<li><strong>Jastrych (wylewka) betonowy</strong>: Standardowa warstwa o grubości 5-8 cm i gęstości ok. 2000 kg/m³ ma ogromną masę i znaczną pojemność cieplną. To właśnie ona nadaje systemowi charakterystyczną <strong>dużą bezwładność</strong>.</li>



<li><strong>Warstwa wykończeniowa</strong>: Płytki ceramiczne lub kamienne współpracują z jastrychem, zwiększając efekt akumulacji. Drewno i panele laminowane mają znacznie mniejszą pojemność cieplną.</li>



<li><strong>Izolacja termiczna</strong>: Choć jej głównym zadaniem jest kierowanie ciepła w górę, to również wpływa na dynamikę, spowalniając niepożądane oddawanie ciepła w dół.</li>
</ul>



<p class="wp-block-paragraph">Proces nagrzewania takiej masywności jest powolny. Ciepło z wody w rurach musi zostać przewiedzione przez ściankę rury, następnie do otulającego ją betonu, by w końcu, przez warstwę wykończeniową, dotrzeć do pomieszczenia. Cały ten proces może trwać kilkanaście godzin od momentu uruchomienia źródła ciepła.</p>



<h2 class="wp-block-heading">Czynniki kształtujące poziom bezwładności w instalacji.</h2>



<p class="wp-block-paragraph">Nie każda podłogówka reaguje tak samo. Na&nbsp;<strong>stopień bezwładności systemu</strong>&nbsp;wpływa szereg czynników, które można (i należy) modyfikować już na etapie projektu.</p>



<h3 class="wp-block-heading">Grubość i rodzaj jastrychu.</h3>



<ul class="wp-block-list">
<li><strong>Grubsza wylewka (np. 8-10 cm)</strong> = większa masa = <strong>większa bezwładność cieplna</strong> i dłuższy czas reakcji.</li>



<li><strong>Cieńsza wylewka (np. 4-5 cm)</strong> lub systemy suche (płyty gipsowo-włóknowe z kanałami na rury) = mniejsza masa = <strong>mniejsza bezwładność</strong>, szybsze nagrzewanie i chłodzenie.</li>
</ul>



<h3 class="wp-block-heading">Materiał wykończeniowy podłogi.</h3>



<p class="wp-block-paragraph">Poniższa tabela ilustruje wpływ różnych materiałów na charakterystykę oddawania ciepła i bezwładność systemu:</p>



<style>
.table-responsive {
  width: 100%;
  overflow-x: auto;
  margin: 20px 0;
}

.table-responsive table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
  font-size: 15px;
}

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

.table-responsive th {
  background-color: #f5f5f5;
  font-weight: 600;
}

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

/* Mobile tweaks */
@media (max-width: 768px) {
  .table-responsive table {
    font-size: 14px;
  }
}
</style>

<div class="table-responsive">
  <table>
    <thead>
      <tr>
        <th>Materiał wykończeniowy</th>
        <th>Przewodność cieplna (λ) [W/mK]</th>
        <th>Pojemność cieplna</th>
        <th>Wpływ na bezwładność systemu</th>
        <th>Czas reakcji</th>
        <th>Komfort cieplny</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Płytki ceramiczne / kamień</strong></td>
        <td>Wysokie (ok. 1.0–1.5)</td>
        <td>Duża</td>
        <td>Zwiększa (współpracuje z jastrychem)</td>
        <td>Dłuższy</td>
        <td>Doskonały, równomierne ciepło</td>
      </tr>
      <tr>
        <td><strong>Panele winylowe (LVT)</strong></td>
        <td>Średnie</td>
        <td>Mała</td>
        <td>Neutralny / lekko redukuje</td>
        <td>Średni</td>
        <td>Dobry</td>
      </tr>
      <tr>
        <td><strong>Drewno lite</strong></td>
        <td>Niskie (ok. 0.15–0.25)</td>
        <td>Średnia</td>
        <td>Zmniejsza (działa jako izolator)</td>
        <td>Krótszy</td>
        <td>Ciepłe w dotyku, wolniejsze oddawanie</td>
      </tr>
      <tr>
        <td><strong>Wykładzina dywanowa</strong></td>
        <td>Bardzo niskie</td>
        <td>Mała</td>
        <td>Znacznie zmniejsza (izoluje!)</td>
        <td>Znacznie krótszy</td>
        <td>Powierzchnia przyjemna, ale blokuje ciepło</td>
      </tr>
    </tbody>
  </table>
</div>




<h3 class="wp-block-heading">Parametry pracy źródła ciepła i instalacji.</h3>



<ul class="wp-block-list">
<li><strong>Temperatura zasilania</strong>: Niższa temperatura wody (np. 35-40°C) wymaga dłuższego czasu na przekazanie tej samej ilości energii do masywnej podłogi niż woda o temperaturze 50°C.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw</a> i głębokość pętli grzewczych</strong>: Gęstszy rozstaw rur (np. 10 cm vs 20 cm) przyspiesza nagrzewanie warstwy akumulacyjnej.</li>
</ul>



<h2 class="wp-block-heading">Bezwładność a sterowanie: Wyzwanie dla nowoczesnej automatyki.</h2>



<p class="wp-block-paragraph">To właśnie w obszarze sterowania&nbsp;<strong>bezwładność termiczna podłogówki</strong>&nbsp;stawia największe wyzwania. Tradycyjne, dwupołoweniowe sterowanie typu &#8222;włącz/wyłącz&#8221; na podstawie wskazań pokojowego termostatu jest tu&nbsp;<strong>skrajnie nieefektywne</strong>.</p>



<h3 class="wp-block-heading">Dlaczego klasyczny termostat zawodzi?</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie, że termostat wyłączy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> w momencie osiągnięcia żądanej temperatury pokojowej. Masywna podłoga jest wtedy gorąca i jeszcze przez wiele godzin oddaje zgromadzone ciepło, prowadząc do <strong>efektu przegrzania</strong>. Gdy temperatura spadnie i termostat znów załączy ogrzewanie, podłoga jest jeszcze ciepła, a na odczuwalny efekt w pomieszczeniu trzeba będzie czekać kolejne godziny – powstają duże wahania temperatury.</p>



<h3 class="wp-block-heading">Optymalne strategie sterowania.</h3>



<p class="wp-block-paragraph">Aby opanować&nbsp;<strong>bezwładność w ogrzewaniu podłogowym</strong>, stosuje się zaawansowane systemy regulacji:</p>



<ol start="1" class="wp-block-list">
<li><strong>Sterowanie pogodowe (z kurtyną czasową)</strong>: To najskuteczniejsza metoda. Sterownik, na podstawie temperatury zewnętrznej i krzywej grzewczej, oblicza wymaganą temperaturę wody zasilającej pętle. Uwzględnia on również <strong>opóźnienie systemu (bezwładność)</strong>. Gdy prognozowany jest spadek temperatury na zewnątrz, sterownik wcześniej zwiększa temperaturę zasilania, aby kompensować spowolnioną reakcję podłogi. Decyzja nie zależy od chwilowej temperatury w pomieszczeniu.</li>



<li><strong>Stała temperatura zasilania z modulacją pompą</strong>: W systemach o dużej bezwładności często utrzymuje się stałą, niską temperaturę w obiegu podłogowym przez cały sezon. Regulacji dokonuje się poprzez załączanie i wyłączanie pompy obiegowej (z płynną modulacją obrotów). Często łączy się to z funkcją <strong>priorytetu bufora</strong> – pompa ciepła ładuje magazyn (bufor), z którego ciepło jest czerpane do podłogówki.</li>



<li><strong>Regulacja proporcjonalno-całkująco-różniczkująca (PID)</strong>: Nowoczesne sterowniki pokojowe z algorytmem PID nie działają w trybie włącz/wyłącz. Antycypują one zmiany, łagodnie modulując pracą, aby utrzymać stałą temperaturę docelową, minimalizując przegrzania i niedogrzania.</li>
</ol>



<h2 class="wp-block-heading">Konsekwencje bezwładności: Mocne strony i ograniczenia systemu.</h2>



<p class="wp-block-paragraph">Zrozumienie&nbsp;<strong>bezwładności cieplnej podłogówki</strong>&nbsp;pozwala świadomie wykorzystać jej zalety i zminimalizować wady.</p>



<h3 class="wp-block-heading">Korzyści wynikające z dużej bezwładności termicznej.</h3>



<ul class="wp-block-list">
<li><strong>Niezrównany komfort cieplny</strong>: Ciepło jest oddawane w sposób niezwykle równomierny, bez odczuwalnych cykli grzania. Brak gorących powiewów i cyrkulacji kurzu.</li>



<li><strong>Idealna współpraca z OZE</strong>: <strong>Ogrzewanie podłogowe o dużej bezwładności</strong> to perfekcyjny partner dla <a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">pomp ciepła</a>. Umożliwia im długotrwałą, ciągłą pracę z wysokim współczynnikiem COP (efektywności) przy niskich temperaturach zasilania. Podobnie współpracuje z kotłami na paliwa stałe, akumulując ciepło z jednego załadunku.</li>



<li><strong>Możliwość wykorzystania taryf energii</strong>: System można programować tak, aby główny doładowanie termiczne magazynu (podłogi) następowało w czasie trwania tańszej taryfy nocnej/dziennej, a ciepło oddawane było w godzinach szczytu.</li>



<li><strong>Stabilizacja mikroklimatu</strong>: Masywna podłoga działa jak ogromny stabilizator temperatury w pomieszczeniu, tłumiąc krótkotrwałe wahania caused przez nasłonecznienie czy otwarcie drzwi.</li>
</ul>



<h3 class="wp-block-heading">Wyzwania i praktyczne ograniczenia.</h3>



<ul class="wp-block-list">
<li><strong>Brak możliwości szybkiego dogrzania</strong>: To największe praktyczne ograniczenie. Jeśli wracamy do zimnego domu, nie możemy oczekiwać szybkiego wzrostu temperatury. Podłoga potrzebuje czasu. Rozwiązaniem jest odpowiednie <strong>programowanie obniżeń temperatury</strong> (np. o 1-2°C, a nie o 5-6°C) lub zastosowanie dodatkowego, szybko reagującego źródła ciepła (np. grzejnik łazienkowy, klimatyzator).</li>



<li><strong>Ryzyko przegrzania i trudność chłodzenia</strong>: Błąd w sterowaniu może prowadzić do nadmiernego nagrzania masywnej płyty. Jej schłodzenie poprzez naturalne oddawanie ciepła lub wentylację może trwać nawet kilka dni, co jest uciążliwe.</li>



<li><strong>Wysokie wymagania dla automatyki</strong>: Jak opisano wcześniej, wymaga zaawansowanych i często droższych systemów sterowania.</li>



<li><strong>Długi czas uruchomienia systemu na początku sezonu</strong>: Pierwsze nagrzanie wychłodzonej po lecie konstrukcji jest procesem rozłożonym w czasie, wymagającym cierpliwości.</li>
</ul>



<h2 class="wp-block-heading">Projektowanie ogrzewania podłogowego z uwzględnieniem bezwładności cieplnej.</h2>



<p class="wp-block-paragraph"><strong>Kluczowym etapem, w którym kształtuje się przyszły charakter systemu, jest projekt.</strong>&nbsp;To na biurku projektanta zapadają decyzje, które zdeterminują&nbsp;<strong>poziom bezwładności cieplnej</strong>&nbsp;i jej konsekwencje.</p>



<p class="wp-block-paragraph">Dobry <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt instalacji podłogowej</a></strong> nie ogranicza się tylko do rozplanowania pętli grzewczych. Musi on <strong>kompleksowo uwzględniać dynamikę całego układu</strong>. Projektant powinien świadomie dobrać:</p>



<ul class="wp-block-list">
<li><strong>Grubość i rodzaj jastrychu</strong> w kontekście oczekiwanego czasu reakcji i przewidywanego źródła ciepła (pompa ciepła -> korzystna duża bezwładność).</li>



<li><strong>Materiały wykończeniowe</strong> – ich opór cieplny jest zawsze brany pod uwagę w obliczeniach mocy grzewczej. Współpraca z inwestorem przy tym wyborze jest kluczowa.</li>



<li><strong>Strategię sterowania</strong> już na etapie koncepcji. Określa się, czy będzie to sterownik pogodowy, czy pokojowy, jak podzielone zostaną strefy grzewcze.</li>



<li><strong>Parametry źródła ciepła</strong> – obliczeniowa temperatura zasilania i powrotu musi być skoordynowana z charakterystyką podłogówki.</li>



<li><strong>Czasy reakcji systemu</strong> – szacuje się je, aby przekazać użytkownikowi realne oczekiwania co do sterowania (np.: &#8222;Obniżenie temperatury dziennej o 2°C będzie wymagało rozpoczęcia nagrzewania 3 godziny przed planowanym powrotem do domu&#8221;).</li>
</ul>



<p class="wp-block-paragraph">Pominięcie analizy&nbsp;<strong>bezwładności w projekcie</strong>&nbsp;prowadzi do najczęstszych problemów eksploatacyjnych: przegrzewania, wrażenia &#8222;niedogrzania&#8221; lub niepotrzebnie wysokich kosztów energii wynikających z walki systemu z samym sobą.</p>



<h2 class="wp-block-heading">Praktyczne wskazówki eksploatacyjne dla systemów o dużej bezwładności</h2>



<p class="wp-block-paragraph">Podsumowując techniczny aspekt, warto sformułować praktyczne zasady postępowania z&nbsp;<strong>bezwładnym ogrzewaniem podłogowym</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zapomnij o szybkich zmianach</strong>: Nie próbuj gwałtownie podnosić temperatury. Jeśli chcesz cieplej, zwiększ nastawę o 0,5-1°C i poczekaj wiele godzin na pełny efekt.</li>



<li><strong>Inteligentne programowanie</strong>: Używaj funkcji <strong>ogrzewania okresowego</strong> (np. &#8222;nieobecności&#8221;) w sposób przemyślany. Lepiej jest utrzymywać stały, lekko obniżony poziom temperatury (np. 18°C) niż wyłączać ogrzewanie całkowicie, ponieważ ponowne nagrzanie masywu będzie długotrwałe i energochłonne.</li>



<li><strong>Współpraca z innymi źródłami</strong>: W pomieszczeniach, gdzie potrzebna jest szybka reakcja (łazienka), rozważ uzupełnienie systemu o <strong>dodatkowe, szybko reagujące źródło</strong>, takie jak elektryczna mata grzewcza włączana timerem lub grzejnik łazienkowy podłączony do obiegu grzewczego.</li>



<li><strong>Monitoruj, nie tylko steruj</strong>: Obserwuj zachowanie systemu w różnych warunkach pogodowych. Nowoczesne sterowniki oferują logi pracy i zużycia energii, które pomagają zoptymalizować ustawienia pod konkretny budynek i zwyczaje mieszkańców.</li>
</ol>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1765978603711"><strong class="schema-faq-question"><strong>Czy duża bezwładność cieplna w ogrzewaniu podłogowym to wada?</strong></strong> <p class="schema-faq-answer">Nie. To cecha fizyczna systemu. Przy odpowiednim sterowaniu staje się zaletą, zapewniając stabilną temperaturę i wysoki komfort cieplny.</p> </div> <div class="schema-faq-section" id="faq-question-1765978618810"><strong class="schema-faq-question"><strong>Ile czasu nagrzewa się ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W zależności od grubości wylewki i parametrów instalacji pełny efekt może pojawić się po kilku, a nawet kilkunastu godzinach od uruchomienia.</p> </div> <div class="schema-faq-section" id="faq-question-1765978629234"><strong class="schema-faq-question"><strong>Czy można zmniejszyć bezwładność cieplną podłogówki?</strong></strong> <p class="schema-faq-answer">Tak, stosując cieńsze jastrychy, systemy suche lub materiały wykończeniowe o niższej pojemności cieplnej, jednak zawsze jest to kompromis z akumulacją ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1765978649979"><strong class="schema-faq-question"><strong>Jak najlepiej sterować ogrzewaniem podłogowym o dużej bezwładności?</strong></strong> <p class="schema-faq-answer">Najlepiej sprawdza się sterowanie pogodowe lub zaawansowane algorytmy PID, które uwzględniają opóźnienia reakcji systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1765978657614"><strong class="schema-faq-question"><strong>Czy bezwładność cieplna dobrze współpracuje z pompą ciepła?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe o dużej bezwładności idealnie pasuje do pomp ciepła, umożliwiając ich stabilną i energooszczędną pracę przy niskich temperaturach zasilania.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Podsumowując, bezwładność cieplna w ogrzewaniu podłogowym</strong>&nbsp;nie jest ani wadą, ani zaletą – jest&nbsp;<strong>fundamentalną cechą fizyczną</strong>&nbsp;tego systemu. Jej ignorowanie prowadzi do frustracji i niskiej efektywności. Świadome projektowanie, odpowiedni dobór materiałów oraz zastosowanie zaawansowanej automatyki pozwala&nbsp;<strong>wykorzystać bezwładność termiczną jako atut</strong>, przekształcając ją w filtr stabilizujący komfort cieplny i narzędzie do oszczędnej, zgodnej z zasadami fizyki, eksploatacji energii. To właśnie sprawia, że wodne ogrzewanie podłogowe, pomimo swej prostoty koncepcyjnej, pozostaje jednym z najbardziej zaawansowanych technologicznie i komfortowych systemów grzewczych.</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="Kf8VCVkkvJ"><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=91GrYpPCMn#?secret=Kf8VCVkkvJ" data-secret="Kf8VCVkkvJ" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki?</title>
		<link>https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 03 Aug 2025 10:53:40 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Panele laminowane]]></category>
		<category><![CDATA[Płytki ceramiczne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie wnętrz]]></category>
		<category><![CDATA[Remont i wykończenie]]></category>
		<category><![CDATA[Wykończenie podłóg]]></category>
		<category><![CDATA[ciepła podłoga]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[panele laminowane]]></category>
		<category><![CDATA[płytki ceramiczne]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wybór podłogi]]></category>
		<category><![CDATA[wykończenie podłogi]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2698</guid>

					<description><![CDATA[<p>Planujesz ogrzewanie podłogowe i zastanawiasz się, czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki? To wcale nie jest oczywisty wybór! Zarówno płytki, jak i panele laminowane mają swoje zalety i ograniczenia. W artykule wyjaśniamy, które materiały najlepiej sprawdzają się w konkretnych pomieszczeniach, jak wpływają na efektywność cieplną i jakie warunki muszą spełniać. Sprawdź, co warto wiedzieć przed wyborem okładziny.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">Czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki?</strong> To pytanie zadaje sobie wiele osób planujących instalację systemu grzewczego w swoim domu. Ogrzewanie podłogowe to rozwiązanie, które zdobywa coraz większą popularność dzięki komfortowi cieplnemu, estetyce i efektywności energetycznej. Jednak wybór odpowiedniego pokrycia podłogowego – paneli laminowanych czy płytek ceramicznych – ma kluczowe znaczenie dla wydajności systemu i trwałości podłogi. W tym artykule przyjrzymy się obu opcjom, porównamy ich zalety i ograniczenia oraz podpowiemy, jak dokonać najlepszego wyboru, uwzględniając specyfikę Twojego domu.</p>



<h2 class="wp-block-heading">Dlaczego wybór pokrycia podłogowego jest tak ważny?</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl">Ogrzewanie podłogowe</a>, zarówno wodne, jak i elektryczne, działa poprzez równomierne rozprowadzanie ciepła z powierzchni podłogi do pomieszczenia. Rodzaj materiału pokrywającego podłogę wpływa na to, jak efektywnie ciepło jest przekazywane oraz jak długo system będzie działał bezawaryjnie. <strong>Płytki ceramiczne</strong> i <strong>panele laminowane</strong> różnią się pod względem przewodnictwa cieplnego, odporności na temperaturę oraz wymagań montażowych, co czyni wybór pokrycia decyzją wymagającą rozwagi.</p>



<h2 class="wp-block-heading">Przewodnictwo cieplne i efektywność.</h2>



<p class="wp-block-paragraph">Każdy materiał ma inny współczynnik oporu cieplnego (R), który określa, jak dobrze przewodzi ciepło. <strong>Płytki ceramiczne</strong> i kamienne mają niski opór cieplny, co oznacza, że szybko i efektywnie oddają ciepło do pomieszczenia. <strong>Panele laminowane</strong>, choć również kompatybilne z ogrzewaniem podłogowym, mają wyższy opór cieplny, co może wpływać na nieco wolniejsze nagrzewanie się pomieszczenia. Jednak nowoczesne panele dedykowane do „podłogówki” są projektowane tak, aby zminimalizować ten problem. Więcej na temat wpływu okładziny na wydajność systemu znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego</a>.</p>



<h2 class="wp-block-heading">Trwałość i odporność na temperaturę</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe generuje zmiany temperatury, które mogą wpływać na strukturę materiału podłogowego. Płytki są odporne na wysokie temperatury (nawet do 29°C), a ich struktura nie ulega deformacji. <strong>Panele laminowane</strong> wymagają ostrożniejszego podejścia – maksymalna temperatura powierzchni podłogi nie powinna przekraczać <strong>27°C</strong>, aby uniknąć wypaczania czy delaminacji. Szczegółowe informacje o optymalnych temperaturach znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego</a>.</p>



<h2 class="wp-block-heading">Płytki ceramiczne i kamienne – idealne dla ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph">Płytki ceramiczne i kamienne, takie jak gres, terakota czy marmur, są uznawane za <strong>najlepsze pokrycie podłogowe</strong> dla systemów ogrzewania podłogowego. Dlaczego? Oto kluczowe powody:</p>



<h3 class="wp-block-heading">Zalety płytek w systemie ogrzewania podłogowego.</h3>



<ul class="wp-block-list">
<li><strong>Wysokie przewodnictwo cieplne</strong>: Płytki szybko przekazują ciepło z rur grzewczych do pomieszczenia, co pozwala na efektywną pracę systemu, szczególnie w dużych przestrzeniach, takich jak salony czy kuchnie.</li>



<li><strong>Odporność na wilgoć i temperaturę</strong>: Płytki są odporne na wilgoć, co czyni je idealnym wyborem do łazienek i kuchni, gdzie ogrzewanie podłogowe jest często stosowane.</li>



<li><strong>Trwałość</strong>: Płytki są odporne na zarysowania, łatwe w czyszczeniu i nie ulegają deformacji pod wpływem zmian temperatury.</li>



<li><strong>Możliwość wyższych temperatur</strong>: Systemy z płytkami mogą być ogrzewane do 29°C lub więcej, co zwiększa wydajność cieplną w pomieszczeniach o większych stratach ciepła.</li>
</ul>



<h3 class="wp-block-heading">Ograniczenia płytek.</h3>



<ul class="wp-block-list">
<li><strong>Koszt i montaż</strong>: Płytki są droższe w zakupie i wymagają profesjonalnego montażu, w tym przygotowania odpowiedniej wylewki (np. anhydrytowej lub cementowej) zgodnie z normami, takimi jak <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">EN 1264</a>.</li>



<li><strong>Chłodna powierzchnia bez ogrzewania</strong>: W okresach, gdy ogrzewanie jest wyłączone, płytki mogą wydawać się zimne w dotyku, co może być mniej komfortowe w porównaniu do paneli.</li>
</ul>



<h3 class="wp-block-heading">Przykłady zastosowań.</h3>



<p class="wp-block-paragraph">Płytki ceramiczne są doskonałym wyborem w pomieszczeniach o dużym natężeniu ruchu, takich jak korytarze, kuchnie czy łazienki. Na przykład w nowoczesnej kuchni o powierzchni 20 m², zastosowanie gresu o grubości 10 mm w połączeniu z systemem mokrym (rury zatopione w wylewce) zapewni szybkie nagrzewanie i równomierny rozkład temperatury. W łazienkach, gdzie często stosuje się ogrzewanie podłogowe, płytki są niemal standardem ze względu na odporność na wilgoć i łatwość utrzymania w czystości.</p>



<h2 class="wp-block-heading">Panele laminowane – dobra alternatywa dla płytek?</h2>



<p class="wp-block-paragraph"><strong>Panele laminowane</strong> zyskały popularność jako tańsza i łatwiejsza w montażu alternatywa dla drewna i płytek. Czy nadają się do ogrzewania podłogowego? Tak, pod warunkiem, że wybierzesz odpowiedni model i przestrzegasz zasad montażu.</p>



<h3 class="wp-block-heading">Zalety paneli laminowanych.</h3>



<ul class="wp-block-list">
<li><strong>Estetyka drewna w niższej cenie</strong>: Panele oferują wygląd drewnianej podłogi, co jest atrakcyjne w salonach, sypialniach czy pokojach dziecięcych.</li>



<li><strong>Łatwość montażu</strong>: Montaż paneli metodą „pływającą” (bez klejenia) jest szybki i nie wymaga skomplikowanych przygotowań, co obniża koszty instalacji.</li>



<li><strong>Kompatybilność z ogrzewaniem podłogowym</strong>: Dedykowane panele laminowane (np. marki Quick-Step czy Kronospan) są projektowane z myślą o systemach grzewczych, z oznaczeniem zgodności na opakowaniu.</li>



<li><strong>Ekonomiczność</strong>: Panele są tańsze od płytek i drewna, co czyni je popularnym wyborem w budżetowych remontach.</li>
</ul>



<h3 class="wp-block-heading">Wymagania i ograniczenia paneli.</h3>



<ul class="wp-block-list">
<li><strong>Maksymalna temperatura</strong>: Temperatura powierzchni podłogi nie powinna przekraczać <strong>27°C</strong>, aby zapobiec uszkodzeniom, takim jak wypaczanie czy rozwarstwianie. Dlatego konieczne jest stosowanie precyzyjnych regulatorów temperatury.</li>



<li><strong>Grubość paneli</strong>: Panele o grubości do 18 mm są zalecane, aby zminimalizować opór cieplny i zapewnić efektywne przekazywanie ciepła.</li>



<li><strong>Podkładka o niskiej rezystancji termicznej</strong>: Dedykowane podkładki (np. Silent Walk od Quick-Step) są niezbędne, aby ciepło mogło swobodnie przenikać do pomieszczenia.</li>



<li><strong>Montaż pływający</strong>: Panele muszą być montowane z zachowaniem szczeliny dylatacyjnej (10-15 mm), co pozwala na naturalne rozszerzanie się materiału pod wpływem temperatury. Więcej o izolacji i dylatacjach przeczytasz w artykule <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">Izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a>.</li>
</ul>



<h3 class="wp-block-heading">Przykłady zastosowań.</h3>



<p class="wp-block-paragraph">Panele laminowane świetnie sprawdzają się w sypialniach i salonach, gdzie estetyka drewna jest pożądana, a ruch jest mniejszy niż w kuchni czy korytarzu. Na przykład w salonie o powierzchni 25 m², zastosowanie paneli o grubości 8 mm z dedykowanym podkładem pozwoli na stworzenie ciepłej i estetycznej podłogi przy niższych kosztach niż w przypadku płytek. Ważne jest, aby wybrać panele z certyfikatem do ogrzewania podłogowego, co potwierdza ich odporność na zmiany temperatury.</p>



<h2 class="wp-block-heading">Porównanie: panele vs. płytki</h2>



<p class="wp-block-paragraph">Aby ułatwić wybór, poniżej przedstawiamy porównanie kluczowych cech <strong>paneli laminowanych</strong> i <strong>płytek ceramicznych</strong> w kontekście ogrzewania podłogowego:</p>



<style>
  .comparison-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-family: Arial, sans-serif;
    font-size: 16px;
  }

  .comparison-table th,
  .comparison-table td {
    border: 1px solid #ccc;
    padding: 12px 16px;
    text-align: left;
  }

  .comparison-table thead {
    background-color: #f8f8f8;
    font-weight: bold;
  }

  .comparison-table tbody tr:nth-child(even) {
    background-color: #f2f2f2;
  }

  @media (max-width: 768px) {
    .comparison-table,
    .comparison-table thead,
    .comparison-table tbody,
    .comparison-table th,
    .comparison-table td,
    .comparison-table tr {
      display: block;
      width: 100%;
    }

    .comparison-table thead {
      display: none;
    }

    .comparison-table td {
      border: none;
      position: relative;
      padding-left: 50%;
      margin-bottom: 12px;
    }

    .comparison-table td::before {
      content: attr(data-label);
      position: absolute;
      left: 16px;
      top: 12px;
      font-weight: bold;
      white-space: nowrap;
    }
  }
</style>

<table class="comparison-table">
  <thead>
    <tr>
      <th>Cecha</th>
      <th>Płytki ceramiczne</th>
      <th>Panele laminowane</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td data-label="Cecha">Przewodnictwo cieplne</td>
      <td data-label="Płytki ceramiczne">Bardzo wysokie – szybkie nagrzewanie</td>
      <td data-label="Panele laminowane">Średnie – wolniejsze nagrzewanie</td>
    </tr>
    <tr>
      <td data-label="Cecha">Maksymalna temperatura</td>
      <td data-label="Płytki ceramiczne">Do 40°C lub więcej</td>
      <td data-label="Panele laminowane">Do 35°C – wymagają kontroli</td>
    </tr>
    <tr>
      <td data-label="Cecha">Koszt</td>
      <td data-label="Płytki ceramiczne">Wyższy koszt materiału i montażu</td>
      <td data-label="Panele laminowane">Tańsze w zakupie i instalacji</td>
    </tr>
    <tr>
      <td data-label="Cecha">Estetyka</td>
      <td data-label="Płytki ceramiczne">Nowoczesna, minimalistyczna estetyka</td>
      <td data-label="Panele laminowane">Drewniany, przytulny wygląd</td>
    </tr>
    <tr>
      <td data-label="Cecha">Zastosowanie</td>
      <td data-label="Płytki ceramiczne">Kuchnie, łazienki, korytarze</td>
      <td data-label="Panele laminowane">Sypialnie, salony, pokoje dziecięce</td>
    </tr>
  </tbody>
</table>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – klucz do sukcesu</h2>



<p class="wp-block-paragraph">Niezależnie od wybranego pokrycia, kluczowe jest wykonanie profesjonalnego <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektu instalacji ogrzewania podłogowego</a>, który uwzględni specyfikę budynku, zapotrzebowanie cieplne oraz rodzaj okładziny. Firma Projekt Ogrzewania oferuje kompleksowe usługi projektowe, dostosowane do różnych powierzchni – od małych mieszkań (np. <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">projekt ogrzewania podłogowego do 100 m²</a>) po większe obiekty. Projekt uwzględnia rozmieszczenie pętli grzewczych (np. w układzie ślimakowym lub meandrowym), rozstaw rur oraz odpowiednie materiały, takie jak <a href="https://projekt-ogrzewania.pl/produkt/rura-wielowarstwowe-tweetop-pert-ii-al-pert-ii-16x2/">rury wielowarstwowe Tweetop PERT</a> czy <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-200-z-wypustkami/">płyty styropianowe z wypustkami</a>. Co więcej, przy zakupie materiałów instalacyjnych w ich sklepie internetowym można otrzymać projekt za darmo, co jest świetnym sposobem na obniżenie kosztów inwestycji.</p>



<h2 class="wp-block-heading">Jak wybrać odpowiedni materiał dla Twojego domu?</h2>



<p class="wp-block-paragraph">Wybór między panelami a płytkami zależy od kilku czynników:</p>



<ol start="1" class="wp-block-list">
<li><strong>Rodzaj pomieszczenia</strong>: W łazienkach i kuchniach, gdzie wilgoć jest codziennością, płytki są lepszym wyborem. W sypialniach i salonach panele mogą być bardziej praktyczne i estetyczne.</li>



<li><strong>Budżet</strong>: Jeśli zależy Ci na niższych kosztach początkowych, panele laminowane będą bardziej ekonomiczne. Płytki wymagają większej inwestycji, ale mogą przynieść oszczędności w eksploatacji dzięki wyższej efektywności.</li>



<li><strong>Estetyka</strong>: Jeśli priorytetem jest przytulny, drewniany wygląd, panele są doskonałym wyborem. Płytki lepiej wpisują się w nowoczesne, minimalistyczne aranżacje.</li>



<li><strong>Zapotrzebowanie cieplne</strong>: W pomieszczeniach o dużych stratach ciepła (np. z dużymi oknami) płytki zapewnią lepszą wydajność systemu.</li>
</ol>



<h3 class="wp-block-heading">Praktyczne wskazówki.</h3>



<ul class="wp-block-list">
<li><strong>Sprawdź specyfikację produktu</strong>: Upewnij się, że wybrane panele lub płytki mają oznaczenie zgodności z ogrzewaniem podłogowym.</li>



<li><strong>Konsultuj się z ekspertami</strong>: Profesjonalny projekt instalacji, np. od <a href="https://projekt-ogrzewania.pl/">Projekt Ogrzewania</a>, zapewni optymalne rozmieszczenie pętli i dobór materiałów.</li>



<li><strong>Zadbaj o izolację</strong>: Odpowiednia izolacja termiczna, np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-200-z-wypustkami/">płyty styropianowe z wypustkami</a>, zminimalizuje straty ciepła i zwiększy efektywność systemu.</li>



<li><strong>Kontroluj temperaturę</strong>: Używaj regulatorów temperatury, aby uniknąć przegrzania, szczególnie w przypadku paneli.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1754215510931"><strong class="schema-faq-question"><strong>Czy panele laminowane nadają się do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Tak, pod warunkiem że są oznaczone jako kompatybilne z ogrzewaniem podłogowym i stosowane z odpowiednim podkładem oraz kontrolą temperatury.</p> </div> <div class="schema-faq-section" id="faq-question-1754215521040"><strong class="schema-faq-question"><strong>Jakie płytki najlepiej sprawdzą się przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Najlepsze będą płytki ceramiczne, gres lub kamień naturalny – mają niski opór cieplny i są odporne na wysoką temperaturę oraz wilgoć.</p> </div> <div class="schema-faq-section" id="faq-question-1754215532450"><strong class="schema-faq-question"><strong>Czy można łączyć panele i płytki w jednym systemie ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Tak, ale wymaga to uwzględnienia różnic w przewodnictwie cieplnym i odpowiedniego podziału stref grzewczych w projekcie instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1754215544438"><strong class="schema-faq-question"><strong>Które rozwiązanie jest bardziej energooszczędne – panele czy płytki?</strong></strong> <p class="schema-faq-answer">Płytki są bardziej efektywne energetycznie ze względu na lepsze przewodnictwo cieplne, co skraca czas nagrzewania i zmniejsza straty energii.</p> </div> <div class="schema-faq-section" id="faq-question-1754215556954"><strong class="schema-faq-question"><strong>Czy projekt ogrzewania podłogowego uwzględnia rodzaj wykończenia podłogi?</strong></strong> <p class="schema-faq-answer">Tak, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty">profesjonalny projekt</a> zawsze uwzględnia typ okładziny, ponieważ ma to wpływ na rozstaw rur, moc systemu i dobór materiałów.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki?</strong> Odpowiedź brzmi: oba materiały są odpowiednie, ale każdy ma swoje mocne i słabe strony. Płytki ceramiczne i kamienne to wybór dla tych, którzy stawiają na maksymalną efektywność cieplną, trwałość i odporność na wilgoć. <strong>Panele laminowane</strong> są tańszą i łatwiejszą w montażu alternatywą, idealną do sypialni i salonów, pod warunkiem przestrzegania zasad dotyczących temperatury i montażu. Kluczowe jest wykonanie profesjonalnego projektu instalacji, który zapewni optymalną wydajność systemu, niezależnie od wybranego pokrycia. </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="lDDUM1aTRq"><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=ZvjV4kJD50#?secret=lDDUM1aTRq" data-secret="lDDUM1aTRq" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">Czy pod ogrzewanie podłogowe nadają się panele, czy tylko płytki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale kluczem do jego prawidłowego działania jest odpowiednia temperatura wody. W artykule wyjaśniamy, jaka jest maksymalna temperatura zasilania podłogówki, jakie czynniki na nią wpływają i jak uniknąć typowych błędów. Dowiedz się, jak profesjonalny projekt i odpowiednie ustawienia mogą zapewnić ciepło w Twoim domu, chroniąc jednocześnie posadzkę i obniżając rachunki za ogrzewanie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

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

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

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

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

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

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

.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Maksymalna temperatura zasilania podłogówki - Wytyczne inżynierskie 2026",
    "description": "Profesjonalna analiza maksymalnej temperatury zasilania ogrzewania podłogowego zgodnie z normą PN-EN 1264. Wpływ na COP pompy ciepła, trwałość jastrychu i bezpieczeństwo drewna.",
    "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"
    },
    "license": "https://projekt-ogrzewania.pl/",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne temperatur zasilania podłogówki",
    "description": "Zbiór danych technicznych dotyczących limitów temperaturowych dla różnych systemów ogrzewania płaszczyznowego i okładzin podłogowych.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit PN-EN 1264",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura zasilania czynnika grzewczego"
      },
      {
        "@type": "PropertyValue",
        "name": "Limit dla drewna",
        "value": "38°C",
        "description": "Zalecana górna granica zasilania dla ochrony parkietów"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Parametrów Podłogówki",
    "operatingSystem": "All",
    "applicationCategory": "DesignApplication",
    "description": "Narzędzie do symulacji rozkładu temperatur i doboru zasilania na podstawie oporu cieplnego R."
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        <div class="hero-badge">
            <span>🛡️</span> Ekspertyza HVAC 2026
        </div>
        
        <p class="hero-text"><strong>Maksymalna temperatura zasilania podłogówki</strong> to zdefiniowana technicznie najwyższa dopuszczalna temperatura czynnika grzewczego (wody) wprowadzanego do pętli grzewczych, która gwarantuje bezpieczeństwo konstrukcyjne jastrychu, trwałość okładziny wierzchniej oraz zachowanie parametrów fizjologicznych użytkowników zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>. Przekroczenie tych wartości prowadzi do nieodwracalnych uszkodzeń termicznych i drastycznego spadku sprawności źródeł niskotemperaturowych.</p>
        
        <p class="hero-text">Współczesne projektowanie wymaga precyzyjnego balansu – zbyt niska temperatura nie pokryje strat ciepła wyliczonych w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a>, natomiast zbyt wysoka zniszczy strukturę wylewki. Jako inżynier z 15-letnim doświadczeniem, w tym artykule rozbijam na czynniki pierwsze limity temperaturowe, fizykę przepływu i ekonomię eksploatacji.</p>

        <div class="hero-modules-title">Analiza inżynierska obejmuje:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Limity normatywne 55°C</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌳</span>
                <span class="hero-card-title">Bezpieczeństwo drewna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚙️</span>
                <span class="hero-card-title">Algorytm doboru tz</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💰</span>
                <span class="hero-card-title">Wpływ na COP pompy</span>
            </div>
        </div>
    </div>
</div>



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

/* Główny kontener otulający cały moduł (tekst + symulator) */
.integrated-module-wrapper {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* SEKCJA Z ARTYKUŁEM - ZMODYFIKOWANY UKŁAD */
.module-article-section {
    padding: 40px 50px 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.module-article-section h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.module-article-section a:hover {
    color: #0369a1;
}

.module-article-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.text-info-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.text-info-box .icon {
    font-size: 24px;
}

.text-info-box p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

.article-risk-card a {
    color: #b91c1c;
    text-decoration-color: #fca5a5;
}

.article-risk-card a:hover {
    color: #7f1d1d;
}

/* SEKCJA Z SYMULATOREM */
.module-simulator-section {
    padding: 40px 50px;
    background: #ffffff;
}

.simulator-header-box {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.simulator-header-icon {
    font-size: 28px;
}

.simulator-header-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0;
}

.simulator-header-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 5px 0 0 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 30px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 25%, #f59e0b 50%, #ef4444 80%, #991b1b 100%);
    outline: none;
    transition: opacity .2s;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.temp-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

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

.status-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    transition: all 0.3s ease;
}

.status-icon {
    font-size: 32px;
    margin-bottom: 12px;
}

.status-title {
    font-size: 13px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.status-desc {
    font-size: 15px;
    color: var(--primary);
    line-height: 1.6;
    font-weight: 600;
    margin: 0;
}

.state-optimal { border-color: var(--success); background: #f0fdf4; }
.state-optimal .status-title { color: var(--success); }
.state-warning { border-color: var(--warning); background: #fff7ed; }
.state-warning .status-title { color: var(--warning); }
.state-danger { border-color: var(--danger); background: #fef2f2; }
.state-danger .status-title { color: var(--danger); }

@media (max-width: 768px) {
    .module-article-section { padding: 30px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .module-simulator-section { padding: 30px 25px; }
    .result-cards { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywna Analiza Tolerancji Termicznej Posadzek",
    "description": "Zintegrowane narzędzie inżynierskie służące do wizualizacji wpływu temperatury zasilania na fizykę jastrychu (naprężenia rozszerzalności liniowej) oraz przyspieszoną degradację żywotności polimerów w rurach wielowarstwowych zgodnie z reżimami normy PN-EN 1264.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Dynamiczna symulacja naprężeń w jastrychu cementowym przy przekroczeniu dopuszczalnych 55°C",
      "Estymacja spadku żywotności rur PEX/PERT dla pracy powyżej 60°C",
      "Ostrzeżenia dotyczące ryzyka pękania gresu ze względu na brak dylatacji"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Krytyczne parametry zasilania i ich wpływ na ogrzewanie płaszczyznowe",
    "description": "Zestawienie twardych danych inżynierskich określających graniczne temperatury pracy dla betonu oraz polimerów stosowanych w instalacjach.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozszerzalność liniowa jastrychu C20/F4",
        "value": "0,012 mm/(m·K)",
        "description": "Współczynnik określający przyrost długości posadzki w odpowiedzi na wzrost temperatury. Przekroczenie limitu 55°C powoduje skrajne naprężenia."
      },
      {
        "@type": "PropertyValue",
        "name": "Temperatura krytycznej degradacji rury PEX (Klasa 4)",
        "value": "> 60°C",
        "description": "Temperatura, powyżej której następuje przyspieszone niszczenie wiązań sieciowanych (PE-Xa), znacząco skracające 50-letnią żywotność systemu."
      },
      {
        "@type": "PropertyValue",
        "name": "Granica bezpieczeństwa jastrychu (PN-EN 1264)",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura dopuszczalna w strefie rur w systemie mokrym."
      }
    ]
  }
]
</script>

<div class="integrated-module-wrapper" id="integrated-app-container">
    
    <div class="module-article-section">
        <h2>Jaka jest maksymalna temperatura zasilania podłogówki według norm?</h2> 
        
        <p class="text-lead">Zgodnie z wymogami, które nakłada <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">norma PN-EN 1264</a>, bezwzględna <strong>maksymalna temperatura zasilania podłogówki wynosi 55°C</strong>. Jest to nieprzekraczalna granica bezpieczeństwa dla instalacji pracujących w tzw. systemie mokrym, gdzie rury są bezpośrednio zalane jastrychu.</p>
        
        <div class="text-info-box">
            <span class="icon">💡</span>
            <p>W praktyce inżynierskiej dąży się do tego, aby temperatura projektowa (t_z) była jak najniższa. W nowoczesnym budownictwie standardem jest projektowanie układu na parametry <strong>35/30°C</strong> lub <strong>40/35°C</strong>.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>Przekroczenie progu <strong>55°C</strong> stwarza ryzyko wystąpienia naprężeń termicznych przekraczających wytrzymałość jastrychu na ściskanie i zginanie. Przykładowo, jastrych cementowy klasy <strong>C20/F4</strong> przy wzroście temperatury powyżej dopuszczalnej normy ulega rozszerzalności liniowej na poziomie ok. <strong>0,012 mm/(m·K)</strong>. Przy braku odpowiedniej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a>, takie rozszerzenie prowadzi do pękania gresu lub nieodwracalnej deformacji paneli.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">🔥</span>
                <p>Wartości graniczne temperatury zasilania wynikają również z klasyfikacji rur. Najczęściej stosowana <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rura PEX do ogrzewania podłogowego</a> ma określony czas życia (min. 50 lat) pod warunkiem pracy w określonych reżimach temperaturowych. Praca ciągła powyżej <strong>60°C</strong> drastycznie przyspiesza procesy starzenia polimeru, co może skrócić żywotność instalacji o połowę.</p>
            </div>
        </div>
    </div>

    <div class="module-simulator-section">
        <div class="simulator-header-box">
            <div class="simulator-header-icon">🌡️</div>
            <div>
                <h3 class="simulator-header-title">Symulator Naprężeń Termicznych</h3>
                <p class="simulator-header-subtitle">Przesuń suwak, aby zweryfikować opisane w tekście procesy destrukcyjne dla jastrychu i rur PEX.</p>
            </div>
        </div>
        
        <div class="slider-container">
            <div class="slider-value-display" id="slider-val-display">35°C</div>
            <input type="range" min="20" max="75" value="35" class="temp-slider" id="temp-input-slider">
        </div>

        <div class="result-cards">
            <div class="status-card state-optimal" id="card-screed">
                <div class="status-icon" id="icon-screed">✅</div>
                <div class="status-title" id="title-screed">Reakcja jastrychu C20/F4</div>
                <p class="status-desc" id="desc-screed">Brak naprężeń. Rozszerzalność liniowa pod pełną kontrolą. Posadzka pracuje stabilnie.</p>
            </div>
            
            <div class="status-card state-optimal" id="card-pex">
                <div class="status-icon" id="icon-pex">🛡️</div>
                <div class="status-title" id="title-pex">Żywotność rur PEX (Klasa 4)</div>
                <p class="status-desc" id="desc-pex">Optymalne parametry. Polietylen sieciowany zachowuje 100% żywotności przewidzianej na ponad 50 lat.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe - Autoryzacja modułu (Chronimy zawartość)
    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('integrated-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">⚠️</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 20px;">Zintegrowany moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('temp-input-slider');
    const valDisplay = document.getElementById('slider-val-display');
    
    const cardScreed = document.getElementById('card-screed');
    const iconScreed = document.getElementById('icon-screed');
    const titleScreed = document.getElementById('title-screed');
    const descScreed = document.getElementById('desc-screed');
    
    const cardPex = document.getElementById('card-pex');
    const iconPex = document.getElementById('icon-pex');
    const titlePex = document.getElementById('title-pex');
    const descPex = document.getElementById('desc-pex');

    function updateSimulator(temp) {
        valDisplay.textContent = temp + '°C';

        // Logika dla jastrychu
        cardScreed.className = 'status-card'; 
        if (temp <= 45) {
            cardScreed.classList.add('state-optimal');
            iconScreed.textContent = '✅';
            titleScreed.textContent = 'Bezpieczny jastrych';
            descScreed.textContent = 'Brak niebezpiecznych naprężeń. Rozszerzalność zbieżna z projektem i poprawnie przyjmowana przez dylatacje.';
        } else if (temp > 45 && temp <= 55) {
            cardScreed.classList.add('state-warning');
            iconScreed.textContent = '⚠️';
            titleScreed.textContent = 'Granica wg PN-EN 1264';
            descScreed.textContent = 'Zbliżasz się do krawędzi limitu normy. Jastrych silnie pracuje. Wymagana absolutnie bezbłędna izolacja brzegowa.';
        } else {
            cardScreed.classList.add('state-danger');
            iconScreed.textContent = '💥';
            titleScreed.textContent = 'Krytyczne naprężenia!';
            descScreed.textContent = `Przekroczono 55°C. Potężna rozszerzalność [0,012 mm/(m·K)] ścina beton. Gwarantowane pęknięcia i odspojenie posadzek!`;
        }

        // Logika dla Rur PEX/PERT
        cardPex.className = 'status-card'; 
        if (temp <= 40) {
            cardPex.classList.add('state-optimal');
            iconPex.textContent = '🛡️';
            titlePex.textContent = '100% żywotności rury';
            descPex.textContent = 'Idealne środowisko termiczne. Trwałość struktury polimerowej rury jest gwarantowana na minimum 50 lat bezpiecznej pracy.';
        } else if (temp > 40 && temp <= 60) {
            cardPex.classList.add('state-warning');
            iconPex.textContent = '⏱️';
            titlePex.textContent = 'Tolerowane zużycie materiału';
            descPex.textContent = 'System w zakresie Klasy 4. Instalacja działa stabilnie, jednak z perspektywy żywotności nie jest to optymalny reżim dla PE-Xa.';
        } else {
            cardPex.classList.add('state-danger');
            iconPex.textContent = '🔥';
            titlePex.textContent = 'Degradacja struktury PEX';
            descPex.textContent = 'Stała praca powyżej 60°C niszczy sieć wiązań chemicznych! Procesy starzenia przyspieszają gwałtownie. Żywotność skraca się drastycznie.';
        }
        
        const percent = ((temp - slider.min) / (slider.max - slider.min)) * 100;
        valDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    slider.addEventListener('input', function() {
        updateSimulator(this.value);
    });

    updateSimulator(slider.value);
});
</script>



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

.premium-floor-temp-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* Sekcja tekstowa */
.module-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.module-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

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

.module-content-section h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--accent);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.module-content-section h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
}

.module-content-section p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

.module-content-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Sekcja Suwaka (NOWE) */
.module-slider-section {
    padding: 10px 50px 25px 50px;
    background: var(--bg-light);
}

.comfort-slider-container {
    position: relative;
    margin: 50px 0 20px 0;
    padding: 0 10px;
}

.comfort-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

.comfort-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.comfort-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

.comfort-val-display {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.comfort-val-display::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.comfort-status {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

/* Stylizacja Tabeli (Desktop) */
.module-table-section {
    padding: 0 50px 40px 50px;
    background: var(--bg-light);
}

.premium-data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.premium-data-table thead tr {
    background: var(--primary);
    color: #ffffff;
}

.premium-data-table th,
.premium-data-table td {
    padding: 16px 20px;
    text-align: left;
    font-size: 15px;
}

.premium-data-table thead td {
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
    border-bottom: none;
}

.premium-data-table tbody tr {
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--border-color);
}

.premium-data-table tbody tr:last-child {
    border-bottom: none;
}

.premium-data-table tbody tr:hover {
    background: #f0f9ff;
}

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

/* Stylizacja Tabeli i responsywność (Mobile) */
@media (max-width: 768px) {
    .module-content-section { padding: 30px 25px 10px 25px; }
    .module-slider-section { padding: 10px 25px 25px 25px; }
    .module-table-section { padding: 0 25px 30px 25px; }
    
    .premium-data-table {
        background: transparent;
        border: none;
        box-shadow: none;
    }
    
    .premium-data-table thead {
        display: none;
    }
    
    .premium-data-table tbody tr {
        display: block;
        background: #ffffff;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        margin-bottom: 15px;
        padding: 5px 15px;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    }
    
    .premium-data-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 0;
        border-bottom: 1px solid #f1f5f9;
        text-align: right;
    }
    
    .premium-data-table td:last-child {
        border-bottom: none;
    }
    
    .premium-data-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: #64748b;
        font-size: 13px;
        text-align: left;
        padding-right: 15px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
}
</style>

<div class="premium-floor-temp-module" id="app-container-floor-limits">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Zestawienie Standardów Komfortu Cieplnego Posadzek",
        "description": "Interaktywna tabela i wytyczne inżynierskie określające bezpieczne oraz fizjologicznie optymalne temperatury powierzchni podłogi dla różnych typów pomieszczeń (salony, łazienki, strefy brzegowe).",
        "applicationCategory": "ReferenceApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Określenie limitów termicznych zapobiegających syndromowi ciężkich nóg",
          "Zestawienie sugerowanych temperatur zasilania dla specyficznych stref budynku",
          "Optymalizacja mocy cieplnej w odniesieniu do stref brzegowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Normatywne limity temperatur powierzchni podłogi",
        "description": "Zbiór zmiennych projektowych dla ogrzewania płaszczyznowego uwzględniający przeznaczenie pomieszczenia, temperaturę powierzchni oraz maksymalną moc jednostkową.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref stałego przebywania (Pokoje/Sypialnie)",
            "value": "29°C",
            "description": "Maksymalna temperatura powierzchni chroniąca przed negatywnym wpływem na układ krążenia."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla łazienek",
            "value": "35°C",
            "description": "Dopuszczalna wyższa temperatura ze względu na krótkotrwały pobyt i potrzebę odczucia ciepła bosą stopą."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref brzegowych (przeszklenia)",
            "value": "33°C",
            "description": "Podwyższona temperatura kompensująca zwiększone straty cieplne przy oknach i drzwiach tarasowych."
          }
        ]
      }
    ]
    </script>
    
    <div class="module-content-section">
        <div class="module-badge">
            <span>👣</span> Komfort i Zdrowie
        </div>
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi?</h2>
        
        <p>Dopuszczalna temperatura powierzchni podłogi zależy od przeznaczenia pomieszczenia: maksymalna wartość wynosi <strong>29°C</strong> dla stref stałego przebywania ludzi (salony, sypialnie), <strong>33°C</strong> dla stref brzegowych oraz <strong>35°C</strong> dla łazienek. Wartości te są punktem wyjścia do obliczenia, jaka powinna być temperatura wody w rurach.</p>
        
        <h3>Fizjologia a projektowanie instalacji</h3>
        <p>Zjawisko to jest ściśle powiązane z fizjologią człowieka. Przekroczenie <strong>29°C</strong> w miejscach, gdzie przebywamy długo (np. pracując przy biurku), powoduje tzw. "zespół ciężkich nóg" i może negatywnie wpływać na układ krążenia. Aby uzyskać te parametry, inżynier musi uwzględnić <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> przy dużych przeszkleniach, gdzie dopuszcza się wyższą temperaturę, aby zniwelować straty ciepła przez okna. W łazienkach, gdzie bosa stopa ma kontakt z podłogą przez krótki czas, wyższa temperatura (<strong>35°C</strong>) jest wręcz pożądana dla odczucia komfortu.</p>
    </div>

    <div class="module-slider-section">
        <div class="comfort-slider-container">
            <div class="comfort-val-display" id="comfort-val-display">29°C</div>
            <input type="range" min="20" max="40" value="29" class="comfort-slider" id="comfort-temp-slider">
        </div>
        <div class="comfort-status" id="comfort-status-box">Przesuń suwak...</div>
    </div>

    <div class="module-table-section">
        <figure class="wp-block-table">
            <table class="has-fixed-layout premium-data-table">
                <thead>
                    <tr>
                        <td><strong>Rodzaj pomieszczenia</strong></td>
                        <td><strong>Max. temp. powierzchni (tf​)</strong></td>
                        <td><strong>Sugerowana temp. zasilania (tz​)</strong></td>
                        <td><strong>Max. moc cieplna (q)</strong></td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Pokoje dzienne / Sypialnie</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>29°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>32 - 38°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 100 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Łazienki / WC</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>35°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 150 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Strefy brzegowe (okna)</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>33°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 175 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Hale / Magazyny</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>24 - 26°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>30 - 35°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 80 W/m²</strong></td>
                    </tr>
                </tbody>
            </table>
        </figure>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-floor-limits');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Suwaka
    const comfortSlider = document.getElementById('comfort-temp-slider');
    const comfortDisplay = document.getElementById('comfort-val-display');
    const comfortStatus = document.getElementById('comfort-status-box');

    function updateComfort(temp) {
        comfortDisplay.textContent = temp + '°C';
        
        if (temp <= 26) {
            comfortStatus.innerHTML = '❄️ <strong>' + temp + '°C:</strong> Chłodno. Odpowiednia temperatura tylko dla hal i magazynów.';
            comfortStatus.style.borderColor = '#bae6fd';
            comfortStatus.style.color = '#0369a1';
            comfortStatus.style.background = '#f0f9ff';
        } else if (temp <= 29) {
            comfortStatus.innerHTML = '✅ <strong>' + temp + '°C:</strong> Optymalnie. Maksymalny komfort dla salonu i sypialni.';
            comfortStatus.style.borderColor = '#bbf7d0';
            comfortStatus.style.color = '#15803d';
            comfortStatus.style.background = '#f0fdf4';
        } else if (temp <= 33) {
            comfortStatus.innerHTML = '🪟 <strong>' + temp + '°C:</strong> Ciepło. Limit dopuszczalny w strefach brzegowych (przy oknach).';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else if (temp <= 35) {
            comfortStatus.innerHTML = '🛁 <strong>' + temp + '°C:</strong> Bardzo ciepło. Idealna temperatura wyłącznie dla łazienek.';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else {
            comfortStatus.innerHTML = '💥 <strong>' + temp + '°C:</strong> Przegrzanie! Ryzyko wystąpienia "zespołu ciężkich nóg".';
            comfortStatus.style.borderColor = '#fecaca';
            comfortStatus.style.color = '#b91c1c';
            comfortStatus.style.background = '#fef2f2';
        }

        const min = comfortSlider.min;
        const max = comfortSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        comfortDisplay.style.left = `calc(${percent}% + (${16 - percent * 0.32}px))`;
    }

    if (comfortSlider) {
        comfortSlider.addEventListener('input', function() {
            updateComfort(this.value);
        });
        updateComfort(comfortSlider.value);
    }
});
</script>



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

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

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.module-content-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.module-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

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

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

.module-content-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Boks o drewnie */
.wood-warning-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.wood-warning-box .icon {
    font-size: 28px;
}

.wood-warning-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

/* Kafelki z zagrożeniami/info */
.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card.neutral {
    background: #f8fafc;
    border: 1px solid var(--border-color);
}

.article-risk-card.neutral p {
    color: #475569;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

/* ===============================
   SEKCJA INTERAKTYWNA
   =============================== */
.module-interactive-section {
    padding: 20px 50px 40px 50px;
    background: var(--bg-light);
}

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

.material-btn {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.material-btn:hover {
    border-color: #bae6fd;
    transform: translateY(-2px);
}

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

.material-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 8px;
}

.material-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
    display: block;
}

.material-visualizer {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.temp-stat {
    text-align: center;
}

.temp-stat-label {
    font-size: 12px;
    color: #64748b;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

.temp-stat-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

.temp-stat-value.highlight {
    color: var(--accent);
}

.visualizer-warning {
    background: #fef2f2;
    border-left: 4px solid var(--danger);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.visualizer-warning.safe {
    background: #f0fdf4;
    border-left-color: var(--success);
    color: #14532d;
}

.visualizer-warning.caution {
    background: #fff7ed;
    border-left-color: var(--warning);
    color: #7c2d12;
}

.warning-icon {
    font-size: 20px;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .module-content-section { padding: 40px 25px 20px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .wood-warning-box { flex-direction: column; text-align: center; }
    .module-interactive-section { padding: 20px 25px 40px 25px; }
    .material-selector { grid-template-columns: 1fr; gap: 10px; }
    .visualizer-top { flex-direction: column; gap: 20px; text-align: center; }
    .temp-stat { width: 100%; border-bottom: 1px solid #f1f5f9; padding-bottom: 15px; }
    .temp-stat:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<div class="premium-material-module" id="app-container-materials">
    
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Limitów Termicznych Okładzin Podłogowych",
        "description": "Narzędzie interaktywne prezentujące maksymalne bezpieczne temperatury zasilania oraz powierzchni dla różnych rodzajów wykończenia podłogi (ceramika, laminat, drewno) w systemach ogrzewania płaszczyznowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Zestawienie limitów temperatury zasilania (tz) dla gresu, paneli i drewna",
          "Ostrzeżenia przed przekroczeniem 27°C dla parkietów warstwowych",
          "Identyfikacja zagrożeń związanych z oporem cieplnym R"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Opór cieplny i tolerancja temperaturowa materiałów wykończeniowych",
        "description": "Zbiór danych inżynierskich klasyfikujących okładziny podłogowe pod kątem współpracy z wodnym ogrzewaniem podłogowym.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Płytki ceramiczne",
            "value": "Max Zasilanie: 50-55°C",
            "description": "Materiał o bardzo niskim oporze cieplnym, idealnie przewodzący ciepło."
          },
          {
            "@type": "PropertyValue",
            "name": "Panele laminowane",
            "value": "Max Zasilanie: 38-40°C",
            "description": "Przegrzanie może prowadzić do uwalniania się lotnych związków organicznych z klejów."
          },
          {
            "@type": "PropertyValue",
            "name": "Drewno (deska warstwowa)",
            "value": "Max Powierzchnia: 27°C",
            "description": "Naturalny izolator (λ ≈ 0,13 - 0,21 W/mK). Przekroczenie limitu grozi rozeschnięciem i utratą gwarancji."
          }
        ]
      }
    ]
    </script>

    <div class="module-content-section">
        <div class="module-badge">
            <span>🧱</span> Właściwości Materiałów
        </div>
        <h2>Jak rodzaj podłogi ogranicza temperaturę zasilania?</h2> 
        
        <p class="text-lead">Każdy materiał wykończeniowy stawia inny opór cieplny, co determinuje górną granicę temperatury wody. O ile dla płytek ceramicznych maksymalna temperatura wody może wynosić nawet <strong>50-55°C</strong>, o tyle dla podłóg drewnianych i laminowanych najczęściej nie może przekroczyć <strong>38-40°C</strong>. Kluczowym parametrem jest tutaj <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R</a>.</p>
        
        <div class="wood-warning-box">
            <span class="icon">🌳</span>
            <p>Drewno jest naturalnym izolatorem (λ ≈ 0,13 - 0,21 W/mK). Jeśli w systemie z drewnem ustawimy zbyt wysoką temperaturę zasilania, dojdzie do gwałtownego przesuszenia materiału. Większość producentów desek warstwowych zastrzega, że temperatura samej powierzchni drewna nie może przekroczyć <strong>27°C</strong>. Przekroczenie tej wartości powoduje pękanie włókien, rozsychanie się spoin i utratę gwarancji.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card neutral">
                <span class="risk-icon">📚</span>
                <p>Dlatego tak ważne jest zrozumienie, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> i bezpieczeństwo całego systemu.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>W przypadku paneli laminowanych, wysoka temperatura może prowadzić do emisji substancji chemicznych zawartych w klejach i żywicach. Optymalnym rozwiązaniem przy "trudnych" okładzinach jest zagęszczenie rozstawu rur, co pozwala na obniżenie temperatury czynnika przy zachowaniu tej samej mocy grzewczej.</p>
            </div>
        </div>
    </div>

    <div class="module-interactive-section">
        
        <div class="material-selector">
            <div class="material-btn active" data-mat="tiles">
                <span class="material-icon">🧊</span>
                <span class="material-name">Płytki / Gres</span>
            </div>
            <div class="material-btn" data-mat="laminate">
                <span class="material-icon">🪵</span>
                <span class="material-name">Panele Laminowane</span>
            </div>
            <div class="material-btn" data-mat="wood">
                <span class="material-icon">🌳</span>
                <span class="material-name">Deska Drewniana</span>
            </div>
        </div>

        <div class="material-visualizer">
            <div class="visualizer-top">
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Zasilanie Wody</span>
                    <span class="temp-stat-value highlight" id="vis-supply-temp">55°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Powierzchnia</span>
                    <span class="temp-stat-value" id="vis-surface-temp">~ 33°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Opór Cieplny (R)</span>
                    <span class="temp-stat-value" id="vis-r-value" style="color: #64748b;">0.02</span>
                </div>
            </div>
            
            <div class="visualizer-warning safe" id="vis-warning-box">
                <span class="warning-icon" id="vis-warning-icon">✅</span>
                <div id="vis-warning-text">
                    <strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Bez problemu znoszą wyższe temperatury zasilania (do 55°C) i optymalnie przekazują energię do pomieszczenia.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-materials');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Baza danych dla materiałów
    const materialData = {
        'tiles': {
            supply: '50-55°C',
            surface: 'Do 35°C',
            rValue: '~ 0.02',
            statusClass: 'safe',
            icon: '✅',
            text: '<strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Znoszą wyższe temperatury zasilania i błyskawicznie przekazują energię do pomieszczenia.'
        },
        'laminate': {
            supply: 'Max 40°C',
            surface: 'Max 28°C',
            rValue: '~ 0.08',
            statusClass: 'caution',
            icon: '⚠️',
            text: '<strong>Zwróć uwagę na temperaturę.</strong> Przekroczenie 40°C na zasilaniu może prowadzić do deformacji paneli i emisji szkodliwych substancji chemicznych zawartych w rdzeniu HDF oraz klejach.'
        },
        'wood': {
            supply: 'Max 38°C',
            surface: 'Max 27°C',
            rValue: '0.13 - 0.20',
            statusClass: 'danger',
            icon: '🔥',
            text: '<strong>Ryzyko uszkodzenia materiału!</strong> Drewno jest naturalnym izolatorem. Wyższa temperatura drastycznie je przesuszy, powodując pękanie włókien, "łódkowanie" desek i bezpowrotną utratę gwarancji producenta.'
        }
    };

    // Logika przełączania
    const buttons = document.querySelectorAll('.material-btn');
    const valSupply = document.getElementById('vis-supply-temp');
    const valSurface = document.getElementById('vis-surface-temp');
    const valR = document.getElementById('vis-r-value');
    const warnBox = document.getElementById('vis-warning-box');
    const warnIcon = document.getElementById('vis-warning-icon');
    const warnText = document.getElementById('vis-warning-text');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana klas aktywnych
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie danych
            const matKey = this.getAttribute('data-mat');
            const data = materialData[matKey];

            // Aktualizacja UI
            valSupply.textContent = data.supply;
            valSurface.textContent = data.surface;
            valR.textContent = data.rValue;
            
            warnBox.className = 'visualizer-warning ' + data.statusClass;
            warnIcon.textContent = data.icon;
            warnText.innerHTML = data.text;
        });
    });
});
</script>



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

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

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.efficiency-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.module-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

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

.efficiency-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 25px 0;
}

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

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

/* Wyróżniony boks finansowy */
.cost-impact-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 20px 25px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.cost-impact-icon {
    font-size: 28px;
}

.cost-impact-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

.cost-impact-box strong {
    color: #7c2d12;
    background: rgba(234, 88, 12, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Kafelki urządzeń */
.devices-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.device-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.device-card p {
    margin: 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.7;
}

.device-card a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

.device-card strong {
    color: var(--primary);
}

/* ===============================
   SEKCJA SYMULATORA
   =============================== */
.efficiency-simulator-section {
    padding: 30px 50px 40px 50px;
    background: var(--bg-light);
}

.sim-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 5px 0;
}

.sim-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 40px 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 40px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #10b981 0%, #3b82f6 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

.temp-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.temp-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
}

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

/* Wyniki symulacji */
.sim-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

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

.sim-result-value {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 5px;
}

.sim-result-desc {
    font-size: 13px;
    color: #475569;
    margin: 0;
    font-weight: 600;
}

/* Kolory dynamiczne */
.val-good { color: var(--success); }
.val-warn { color: var(--warning); }
.val-danger { color: var(--danger); }

@media (max-width: 768px) {
    .efficiency-content-section { padding: 30px 25px 10px 25px; }
    .efficiency-simulator-section { padding: 30px 25px 40px 25px; }
    .devices-grid { grid-template-columns: 1fr; }
    .sim-results-grid { grid-template-columns: 1fr; }
    .cost-impact-box { flex-direction: column; text-align: center; }
}
</style>

<div class="premium-efficiency-module" id="app-container-efficiency">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Wpływu Temperatury na Sprawność (COP) i Koszty",
        "description": "Interaktywny symulator inżynierski obliczający spadek współczynnika efektywności (COP) pompy ciepła oraz szacunkowy wzrost kosztów ogrzewania w zależności od wybranej temperatury zasilania podłogówki.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wizualizacja spadku wydajności COP pompy ciepła",
          "Szacowanie rocznych strat finansowych dla domu 150m2",
          "Wskazania trybu kondensacji dla kotłów gazowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Dane kosztowe i efektywnościowe źródeł ciepła",
        "description": "Zestawienie twardych danych określających związek między podniesieniem temperatury zasilania o 5°C a wzrostem kosztów eksploatacji.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Spadek efektywności COP",
            "value": "10-15%",
            "description": "Spadek sprawności pompy ciepła na każde 5°C podniesienia temperatury zasilania."
          },
          {
            "@type": "PropertyValue",
            "name": "Szacunkowy wzrost kosztów (150 m2)",
            "value": "500-800 PLN",
            "description": "Średni roczny wzrost rachunków na każde 5°C przekroczenia optymalnej temperatury (35°C)."
          },
          {
            "@type": "PropertyValue",
            "name": "Granica kondensacji kotła gazowego",
            "value": "< 45°C",
            "description": "Maksymalna temperatura powrotu warunkująca ekonomiczną i sprawną pracę kotła kondensacyjnego."
          }
        ]
      }
    ]
    </script>
    
    <div class="efficiency-content-section">
        <div class="module-badge">
            <span>💰</span> Ekonomia Eksploatacji
        </div>
        <h2>Jak ustawienie temperatury wpływa na sprawność źródła ciepła?</h2>
        
        <p class="efficiency-lead-text">Wybór temperatury zasilania ma bezpośrednie przełożenie na rachunki za ogrzewanie, zwłaszcza gdy sercem układu jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>. Urządzenia te osiągają najwyższy współczynnik COP (efektywność), gdy różnica między temperaturą dolnego źródła a temperaturą zasilania jest jak najmniejsza.</p>
        
        <div class="cost-impact-box">
            <span class="cost-impact-icon">📉</span>
            <p>Podniesienie temperatury zasilania o każde <strong>5°C</strong> (np. z <strong>35°C</strong> na <strong>40°C</strong>) obniża sprawność pompy ciepła o około <strong>10-15%</strong>. W skali roku dla domu 150 m2 może to oznaczać wzrost kosztów eksploatacji o <strong>500-800 PLN</strong>.</p>
        </div>

        <div class="devices-grid">
            <div class="device-card">
                <p>Z kolei <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> pracuje najefektywniej w trybie kondensacji, który zachodzi najpełniej, gdy temperatura powrotu wody z podłogówki jest niska (poniżej <strong>45°C</strong>).</p>
            </div>
            <div class="device-card" style="background: #f8fafc;">
                <p>Aby bezpiecznie połączyć kocioł wysokotemperaturowy z podłogówką, niezbędny jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podlogowym</a>. Pełni on funkcję strażnika – w przypadku awarii automatyki kotła, zawór termostatyczny mechanicznie odcina dopływ zbyt gorącej wody, chroniąc instalację przed zniszczeniem.</p>
            </div>
        </div>
    </div>

    <div class="efficiency-simulator-section">
        <h3 class="sim-title">Symulator Kosztów i Sprawności</h3>
        <p class="sim-subtitle">Zobacz na żywo, ile kosztuje Cię podniesienie temperatury w sterowniku.</p>
        
        <div class="slider-container">
            <div class="slider-value-display" id="eff-val-display">35°C</div>
            <input type="range" min="30" max="55" value="35" step="1" class="temp-slider" id="eff-temp-slider">
        </div>

        <div class="sim-results-grid">
            <div class="sim-result-box" id="eff-box-cost">
                <span class="sim-result-label">Pompa Ciepła: Straty roczne</span>
                <span class="sim-result-value val-good" id="eff-cost-val">+0 PLN</span>
                <p class="sim-result-desc" id="eff-cost-desc">Optymalny COP. Maksymalna oszczędność.</p>
            </div>
            
            <div class="sim-result-box" id="eff-box-gas">
                <span class="sim-result-label">Kocioł Gazowy (Kondensacja)</span>
                <span class="sim-result-value val-good" id="eff-gas-val">100%</span>
                <p class="sim-result-desc" id="eff-gas-desc">Pełne odzyskiwanie ciepła ze spalin.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-efficiency');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const effSlider = document.getElementById('eff-temp-slider');
    const effDisplay = document.getElementById('eff-val-display');
    
    const costVal = document.getElementById('eff-cost-val');
    const costDesc = document.getElementById('eff-cost-desc');
    const boxCost = document.getElementById('eff-box-cost');
    
    const gasVal = document.getElementById('eff-gas-val');
    const gasDesc = document.getElementById('eff-gas-desc');
    const boxGas = document.getElementById('eff-box-gas');

    function updateEfficiencyCalc(temp) {
        effDisplay.textContent = temp + '°C';
        
        // Zmienne bazowe z tekstu: +5C to +650 PLN (średnia z 500-800 PLN), czyli ok. 130 PLN na 1C powyżej 35C.
        // Spadek COP: 12.5% (średnia z 10-15%) na 5C, czyli 2.5% na 1C.
        const baseTemp = 35;
        let excessTemp = Math.max(0, temp - baseTemp);
        
        let extraCost = excessTemp * 130;
        let copDrop = excessTemp * 2.5;

        // Aktualizacja Pompy Ciepła
        if (temp <= 35) {
            costVal.textContent = "+0 PLN";
            costVal.className = "sim-result-value val-good";
            boxCost.style.borderColor = "var(--success)";
            costDesc.innerHTML = "Optymalny COP. Praca najbardziej ekonomiczna.";
        } else if (temp <= 45) {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-warn";
            boxCost.style.borderColor = "var(--warning)";
            costDesc.innerHTML = "Spadek efektywności COP o ok. <strong>" + copDrop.toFixed(1) + "%</strong>.";
        } else {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-danger";
            boxCost.style.borderColor = "var(--danger)";
            costDesc.innerHTML = "Spadek COP o <strong>" + copDrop.toFixed(1) + "%</strong>. Sprężarka przeciążona!";
        }

        // Aktualizacja Kotła Gazowego (Zależność od temperatury zasilania; powrót jest ok 5-7C niższy)
        // Jeśli Zasilanie to 45C, powrót to ~38-40C (Idealnie kondensuje). 
        // Jeśli Zasilanie > 50C, powrót > 45C (Granica kondensacji).
        if (temp <= 45) {
            gasVal.textContent = "IDEALNA";
            gasVal.className = "sim-result-value val-good";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Powrót poniżej 45°C. Kocioł kondensuje z maksymalną sprawnością.";
        } else if (temp <= 50) {
            gasVal.textContent = "CZĘŚCIOWA";
            gasVal.className = "sim-result-value val-warn";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Woda powrotna blisko granicy 45°C. Kondensacja słabnie.";
        } else {
            gasVal.textContent = "BRAK";
            gasVal.className = "sim-result-value val-danger";
            boxGas.style.borderColor = "var(--danger)";
            gasDesc.innerHTML = "Powrót powyżej 45°C! Zwykłe spalanie, kocioł traci najwyższą sprawność.";
        }

        // Pozycjonowanie dymka nad suwakiem
        const min = effSlider.min;
        const max = effSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        effDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    if (effSlider) {
        effSlider.addEventListener('input', function() {
            updateEfficiencyCalc(this.value);
        });
        
        // Timeout dla poprawnego załadowania szerokości w DOM
        setTimeout(() => {
            updateEfficiencyCalc(effSlider.value);
        }, 50);
    }
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! Maksymalna temperatura zasilania podłogówki nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne inżynierskie: Bezpieczne granice temperatur w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie normatywnych i praktycznych limitów temperatury wody grzewczej dla ochrony jastrychu betonowego i okładzin wrażliwych (drewno, winyl).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Bezpiecznej Temperatury Zasilania",
    "description": "Narzędzie online symulujące optymalną temperaturę wody w pętli grzewczej na podstawie oporu cieplnego materiału wykończeniowego oraz obciążenia cieplnego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o fundamentach hydrauliki</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! <strong>Maksymalna temperatura zasilania podłogówki</strong> nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Błędem jest dążenie do ekstremalnie wysokich temperatur w instalacji płaszczyznowej. Maksymalna temperatura zasilania podłogówki nie może przekraczać wytycznych normy (55°C), a z punktu widzenia efektywności pomp ciepła powinna oscylować w rejonie 30-35°C.</p>
        </div>
    </noscript>
</div>

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



<style>
:root {
    --ozc-primary: #0f172a;
    --ozc-blueprint: #1e293b;
    --ozc-accent: #0ea5e9;
    --ozc-accent-glow: rgba(14, 165, 233, 0.4);
    --ozc-danger: #ef4444;
    --ozc-success: #10b981;
    --ozc-text-light: #f8fafc;
    --ozc-text-muted: #94a3b8;
}

.ozc-premium-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15);
    background: #ffffff;
    border: 1px solid #e2e8f0;
}

/* ===============================
   Część Tekstowa (Rozbita Ściana Tekstu)
   =============================== */
.ozc-text-section {
    padding: 45px 50px 35px 50px;
}

.ozc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f1f5f9;
    color: var(--ozc-primary);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #e2e8f0;
}

.ozc-text-section h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--ozc-primary);
    margin: 0 0 25px 0;
    line-height: 1.3;
}

.ozc-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #1e293b;
    background: #f0f9ff;
    padding: 20px 25px;
    border-radius: 16px;
    border-left: 4px solid var(--ozc-accent);
    margin: 0 0 30px 0;
}

.ozc-text-section a {
    color: var(--ozc-accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px solid rgba(14, 165, 233, 0.3);
    transition: all 0.3s ease;
}

.ozc-text-section a:hover {
    background: rgba(14, 165, 233, 0.1);
    border-bottom-color: var(--ozc-accent);
}

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

/* Interaktywne Zakładki (Tabs) */
.ozc-interactive-tabs {
    margin-bottom: 10px;
}

.ozc-tab-nav {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ozc-tab-btn {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ozc-tab-btn:hover {
    border-color: #bae6fd;
    color: var(--ozc-accent);
}

.ozc-tab-btn.active {
    background: var(--ozc-primary);
    border-color: var(--ozc-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.ozc-tab-panel {
    display: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 25px;
    border-radius: 16px;
    animation: ozc-fade-in 0.4s ease;
}

.ozc-tab-panel.active {
    display: block;
}

.ozc-tab-panel p {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

/* ===============================
   Część Inżynierska (Ciemny Blueprint)
   =============================== */
.ozc-engineering-section {
    background-color: var(--ozc-blueprint);
    background-image: 
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 20px 20px;
    padding: 40px 50px;
    color: var(--ozc-text-light);
    position: relative;
    border-top: 4px solid var(--ozc-accent);
}

.ozc-eng-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
}

.ozc-eng-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ozc-eng-subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: var(--ozc-text-muted);
}

.ozc-slider-wrap {
    margin-bottom: 35px;
    background: rgba(0,0,0,0.2);
    padding: 20px 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.05);
}

.ozc-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
}

.ozc-slider-val {
    color: var(--ozc-accent);
    font-size: 16px;
    font-family: monospace;
    font-weight: 900;
}

.ozc-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
    outline: none;
}

.ozc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--ozc-blueprint);
    border: 3px solid var(--ozc-accent);
    cursor: pointer;
    box-shadow: 0 0 15px var(--ozc-accent-glow);
    transition: transform 0.1s;
}

.ozc-slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}

/* Kafelki porównawcze */
.ozc-comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ozc-comp-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

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

.ozc-comp-card.amateur::before { background: var(--ozc-danger); }
.ozc-comp-card.pro::before { background: var(--ozc-success); }

.ozc-comp-header {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ozc-comp-value {
    font-family: 'Courier New', monospace;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
    display: block;
}

.ozc-comp-sub {
    font-size: 13px;
    color: var(--ozc-text-muted);
}

.ozc-roi-box {
    margin-top: 20px;
    background: rgba(16, 185, 129, 0.1);
    border: 1px dashed rgba(16, 185, 129, 0.3);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ozc-roi-text {
    font-size: 14px;
    color: #a7f3d0;
    font-weight: 600;
}

.ozc-roi-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--ozc-success);
}

@media (max-width: 768px) {
    .ozc-text-section { padding: 35px 25px; }
    .ozc-engineering-section { padding: 35px 25px; }
    .ozc-comparison-grid { grid-template-columns: 1fr; }
    .ozc-eng-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ozc-roi-box { flex-direction: column; text-align: center; gap: 10px; }
    .ozc-tab-nav { flex-direction: column; }
    .ozc-tab-btn { width: 100%; text-align: left; }
}
</style>

<div class="ozc-premium-module" id="app-ozc-roi">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Zwrotu z Inwestycji w Projekt OZC",
        "description": "Narzędzie inżynierskie udowadniające finansową zasadność wykonania profesjonalnego projektu OZC i doboru rozstawu rur podłogówki (10 cm vs 15 cm) względem montażu metodą 'na oko'.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Kalkulacja strat cieplnych wynikających z bezwładności i złego rozstawu rur",
          "Porównanie kosztów eksploatacji (Na oko vs Projekt Inżynierski)",
          "Obliczanie czasu zwrotu (ROI) za dokumentację projektową"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry projektowe OZC i bezwładność cieplna",
        "description": "Dane wejściowe do oceny skuteczności sterowania temperaturą zasilania w systemach płaszczyznowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt dokumentacji projektowej",
            "value": "500-1500 PLN",
            "description": "Jednorazowy koszt wykonania profesjonalnego projektu ogrzewania podłogowego."
          },
          {
            "@type": "PropertyValue",
            "name": "Ustawienie temperatury",
            "value": "Stałe vs Zmienne (krzywa grzewcza)",
            "description": "Różnica między ręcznym ustawianiem 45°C na kotle a sterowaniem na podstawie OZC."
          },
          {
            "@type": "PropertyValue",
            "name": "Rozstaw rur",
            "value": "10 cm lub 15 cm",
            "description": "Zagęszczenie ustalane na podstawie strat ciepła wyliczanych indywidualnie dla pomieszczenia."
          }
        ]
      }
    ]
    </script>

    <div class="ozc-text-section">
        <div class="ozc-badge">
            <span>📐</span> Inżynieria w Praktyce
        </div>
        <h2>Dlaczego profesjonalny projekt jest kluczem do optymalnej temperatury?</h2>
        
        <p class="ozc-lead-text">Ustawienie temperatury zasilania "na oko" (np. stałe <strong>45°C</strong> na kotle) jest najczęstszym błędem inwestorów. Poprawne parametry można wyznaczyć jedynie poprzez <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, które precyzyjnie określa straty energii dla każdego pomieszczenia.</p>
        
        <div class="ozc-interactive-tabs">
            <div class="ozc-tab-nav">
                <button class="ozc-tab-btn active" data-target="ozc-tab-1">📏 Rozstaw rur</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-2">🧱 Bezwładność cieplna</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-3">💰 Koszty i zwrot</button>
            </div>
            
            <div class="ozc-tab-content">
                <div class="ozc-tab-panel active" id="ozc-tab-1">
                    <p>Dzięki obliczeniom wiemy, czy w danym pokoju wystarczy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowego/">rozstaw rur co 15 cm</a>, czy może ze względu na duże straty i niską temperaturę zasilania (np. z pompy ciepła), musimy zagęścić rury do <strong>10 cm</strong>.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-2">
                    <p>Projektant bierze pod uwagę również <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> jastrychu. Zbyt wysoka temperatura zasilania w połączeniu z grubą wylewką sprawia, że systemem nie da się sterować – po osiągnięciu temperatury w pokoju, podłoga jeszcze przez wiele godzin oddaje nadmiar ciepła, prowadząc do przegrzania pomieszczeń.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-3">
                    <p>Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>, warto pamiętać, że koszt dokumentacji (ok. <strong>500-1500 PLN</strong>) zwraca się zazwyczaj już po pierwszym sezonie grzewczym dzięki optymalizacji temperatury zasilania.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="ozc-engineering-section">
        <div class="ozc-eng-header">
            <div>
                <h3 class="ozc-eng-title"><span>⚙️</span> Kalkulator Zwrotu z Projektu OZC</h3>
                <p class="ozc-eng-subtitle">Symulacja kosztów eksploatacji w pierwszym sezonie grzewczym.</p>
            </div>
        </div>

        <div class="ozc-slider-wrap">
            <div class="ozc-slider-label">
                <span>Powierzchnia do ogrzania:</span>
                <span class="ozc-slider-val" id="ozc-area-val">150 m²</span>
            </div>
            <input type="range" min="80" max="300" step="10" value="150" class="ozc-slider" id="ozc-area-slider">
        </div>

        <div class="ozc-comparison-grid">
            <div class="ozc-comp-card amateur">
                <div class="ozc-comp-header"><span style="font-size:16px">❌</span> Montaż "Na Oko"</div>
                <span class="ozc-comp-value" id="cost-amateur">4 800 PLN</span>
                <span class="ozc-comp-sub">Przewymiarowane rachunki, przegrzewanie i brak optymalizacji pracy pompy.</span>
            </div>
            
            <div class="ozc-comp-card pro">
                <div class="ozc-comp-header"><span style="font-size:16px">✅</span> Profesjonalny Projekt</div>
                <span class="ozc-comp-value" style="color:var(--ozc-success)" id="cost-pro">3 950 PLN</span>
                <span class="ozc-comp-sub">Właściwy rozstaw rur, bezwładność pod kontrolą i minimalna temp. zasilania.</span>
            </div>
        </div>

        <div class="ozc-roi-box">
            <div class="ozc-roi-text">Szacowane oszczędności po pierwszym sezonie:</div>
            <div class="ozc-roi-result" id="ozc-savings">850 PLN</div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-ozc-roi');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Kalkulator został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek (Tabs)
    const tabBtns = document.querySelectorAll('.ozc-tab-btn');
    const tabPanels = document.querySelectorAll('.ozc-tab-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich
            tabBtns.forEach(b => b.classList.remove('active'));
            tabPanels.forEach(p => p.classList.remove('active'));
            
            // Dodaj do klikniętego
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Logika Kalkulatora ROI
    const slider = document.getElementById('ozc-area-slider');
    const displayArea = document.getElementById('ozc-area-val');
    const displayAmateur = document.getElementById('cost-amateur');
    const displayPro = document.getElementById('cost-pro');
    const displaySavings = document.getElementById('ozc-savings');

    // Założenia ekonomiczne
    const costPerSqmPro = 26.50; // PLN / m2 / rok
    const inefficiencyPenalty = 1.21; // 21% wyższe rachunki na "oko"

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

    function calculateROI(area) {
        displayArea.textContent = area + ' m²';

        const proCost = area * costPerSqmPro;
        const amateurCost = proCost * inefficiencyPenalty;
        const savings = amateurCost - proCost;

        displayPro.textContent = formatCurrency(proCost);
        displayAmateur.textContent = formatCurrency(amateurCost);
        
        displaySavings.innerHTML = `+ ${formatCurrency(savings)} <span style="font-size:13px; font-weight:600; color:#6ee7b7">(Projekt zwraca się w 1 rok)</span>`;
    }

    if (slider) {
        slider.addEventListener('input', function() {
            calculateROI(this.value);
        });
        calculateROI(slider.value);
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-wood: #b45309; /* Kolor drewna */
    --cs-tiles: #0891b2; /* Kolor gresu/wody */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

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

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

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

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

.cs-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

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

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

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--cs-accent);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.cs-author-box a:hover {
    color: #1e3a8a;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--cs-border);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    background: #ffffff;
}

/* Stan nieaktywny lekko przygaszony */
.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

/* Kolorystyka i aktywacja */
.cs-split-card.wood.active {
    border-color: var(--cs-wood);
    background: #fffbeb;
    box-shadow: 0 10px 25px rgba(180, 83, 9, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.tiles.active {
    border-color: var(--cs-tiles);
    background: #ecfeff;
    box-shadow: 0 10px 25px rgba(8, 145, 178, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.cs-card-icon {
    font-size: 28px;
}

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

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 13px;
    font-weight: 700;
    display: none; /* Ukryte do momentu kliknięcia */
}

.cs-split-card.wood .cs-card-solution { color: #92400e; }
.cs-split-card.tiles .cs-card-solution { color: #155e75; }

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<div class="case-study-module" id="app-case-study">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Panel Studium Przypadku: Optymalizacja Podłogówki",
        "description": "Interaktywny moduł prezentujący proces decyzyjny i wyzwania inżynierskie przy projektowaniu ogrzewania dla różnych rodzajów posadzek w jednym budynku.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "url": "https://projekt-ogrzewania.pl/author/admin3399/",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Analiza parametrów zasilania dla parkietu dębowego",
          "Analiza parametrów zasilania dla gresu",
          "Wizualizacja dylematu projektowego (mieszane wykończenie)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry Projektowe OZC - Dom Zielonki 2026",
        "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji zasilania ogrzewania podłogowego.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Data projektu",
            "value": "Luty 2026"
          },
          {
            "@type": "PropertyValue",
            "name": "Powierzchnia budynku",
            "value": "144 m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (OZC)",
            "value": "40 W/m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Lokalizacja",
            "value": "Zielonki (k. Krakowa)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Projekt w praktyce</div>
        <h2>Optymalizacja dla mieszanego wykończenia</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Termin</span>
                <span class="cs-stat-value">Luty 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Zielonki</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Powierzchnia</span>
                <span class="cs-stat-value">144 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Standard (OZC)</span>
                <span class="cs-stat-value">40 W/m²</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Podczas finalizacji projektu instalacji dla nowo budowanego domu Pana Marka, zderzyliśmy się z klasycznym, ale zawsze wymagającym dylematem. Kluczowym wyzwaniem była optymalizacja parametrów pracy układu dla dwóch skrajnie różnych stref cieplnych w obrębie jednego źródła.</p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p>Założenia hydrauliczne opracował główny projektant <a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>. Wymagało to znalezienia precyzyjnego balansu pomiędzy dwiema okładzinami:</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card wood active" id="cs-btn-wood">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🌳</span>
                    <h3 class="cs-card-title">Salon: Parkiet Dębowy</h3>
                </div>
                <p class="cs-card-desc">Drewno to izolator. Ogranicza oddawanie ciepła do pomieszczenia. Zbyt wysoka temperatura zasilania (>38°C) spowoduje jednak przesuszenie i pękanie drogich desek.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zagęszczenie rozstawu rur do 10 cm, co pozwoliło utrzymać niską temperaturę zasilania przy jednoczesnym dostarczeniu 40 W/m² mocy.
                </div>
            </div>

            <div class="cs-split-card tiles" id="cs-btn-tiles">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🧊</span>
                    <h3 class="cs-card-title">Łazienka: Gres Szkliwiony</h3>
                </div>
                <p class="cs-card-desc">Gres idealnie przewodzi ciepło. Wymaga wyższej temperatury powierzchni (odczucie "ciepłej podłogi" boso), ale łazienka ma najczęściej największe straty cieplne.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zastosowanie osobnej pętli ze standardowym rozstawem, ale dodanie grzejnika drabinkowego, aby nie podnosić temperatury zasilania dla całego domu.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione</h3>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardWood = document.getElementById('cs-btn-wood');
    const cardTiles = document.getElementById('cs-btn-tiles');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardWood && cardTiles) {
        cardWood.addEventListener('click', () => toggleCards(cardWood, cardTiles));
        cardTiles.addEventListener('click', () => toggleCards(cardTiles, cardWood));
    }
});
</script>



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

.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

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

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

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

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

.config-side {
    padding: 40px;
    background: #ffffff;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<div class="calc-intro">
    <h2>Kalkulator wymaganej temperatury zasilania</h2>
    <p>Oto uproszczony schemat obliczeniowy algorytmu, który stosuję w moich projektach, aby wyznaczyć optymalne <strong>t_z</strong>. Wprowadź powierzchnię, realne zapotrzebowanie z OZC oraz rodzaj wykończenia, aby sprawdzić, czy Twój układ zmieści się w normach.</p>
</div>

<div class="screed-calc" id="tz2-calc-app">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Kalkulator wymaganej temperatury zasilania ogrzewania podłogowego",
        "description": "Narzędzie inżynierskie wyliczające niezbędną temperaturę wody (t_z) na podstawie OZC, powierzchni pomieszczenia oraz oporu cieplnego zastosowanej okładziny.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (Q)",
            "value": "Straty ciepła w Watach (OZC)"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc jednostkowa (q)",
            "value": "Q / Powierzchnia [W/m²]"
          },
          {
            "@type": "PropertyValue",
            "name": "Opór okładziny (R)",
            "value": "Gres (0.02), Panele (0.08), Drewno (0.15) [m²K/W]"
          },
          {
            "@type": "PropertyValue",
            "name": "Wyznaczenie zasilania (t_z)",
            "value": "t_powietrza + ΔT_średnie + (0,5 × σ)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Temperatury Zasilania (Algorytm Inżynierski)",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "license": "https://projekt-ogrzewania.pl/",
        "description": "Profesjonalny kalkulator weryfikujący czy przy danym OZC i wybranej okładzinie nie dojdzie do przegrzania jastrychu lub przekroczenia norm komfortu fizjologicznego.",
        "featureList": [
          "Wyliczenie temperatury zasilania (t_z)",
          "Estymacja temperatury powierzchni podłogi (t_f)",
          "Ostrzeżenia przed przekroczeniem normy PN-EN 1264"
        ]
      }
    ]
    </script>

    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Straty cieplne pomieszczenia (OZC)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="tz2-v-area">30</span> m²</span></div>
                <input type="range" id="tz2-area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Zapotrzebowanie na moc (Q)</label><span class="val-badge"><span id="tz2-v-power">1200</span> W</span></div>
                <input type="range" id="tz2-power" min="200" max="6000" step="50" value="1200">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Krok 1 (OZC): Ilość ciepła potrzebna do ogrzania pokoju.</div>
            </div>

            <div class="input-wrap">
                <div class="input-label-row"><label>Oczekiwana temp. w pokoju</label><span class="val-badge"><span id="tz2-v-room">20</span> °C</span></div>
                <input type="range" id="tz2-roomTemp" min="18" max="25" step="1" value="20">
            </div>

            <span class="section-title">2. Opór cieplny okładziny (R)</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="tz2-btn-gres">Płytki / Gres<span style="font-size:10px; font-weight:400">R ≈ 0.02 m²K/W</span></div>
                <div class="type-btn active" id="tz2-btn-panel">Panele laminowane<span style="font-size:10px; font-weight:400">R ≈ 0.08 m²K/W</span></div>
                <div class="type-btn" id="tz2-btn-wood">Deska warstwowa<span style="font-size:10px; font-weight:400">R ≈ 0.15 m²K/W</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="tz2-mainBox" class="main-score-box">
                <span class="score-label">Wymagana temperatura zasilania (t_z)</span>
                <span class="score-num" id="tz2-resTz">--</span>
                <span class="score-label">°C na wejściu do pętli</span>
                <div id="tz2-risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Moc jednostkowa (q):</span><strong id="tz2-resQ">--</strong></div>
                <div class="tech-item"><span>Różnica temp. (ΔT_średnie):</span><strong id="tz2-resDelta">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Estymowana temp. powierzchni podłogi:</span><strong id="tz2-resTf" style="color:#60a5fa">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Algorytm:</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ). Obliczenia zakładają standardowy spadek temperatury czynnika na pętli grzewczej (σ) wynoszący 5 Kelwinów.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Nie ryzykuj błędów obliczeniowych</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator to świetny wstęp do fizyki układu. Kompletny projekt instalacji musi jednak uwzględniać opory hydrauliczne, przepływy masowe i rozstaw rur, by instalacja grzała bez awarii.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                ZAAWANSOWANY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT OZC + PODŁOGÓWKA
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Kalkulator wymaganej temperatury zasilania – Algorytm</h3>
            <p style="font-size: 14px; color: #475569; line-height: 1.6;">
                Oto uproszczony schemat obliczeniowy, który stosuję w moich projektach, aby wyznaczyć optymalne t_z:<br>
                <strong>Krok 1 (OZC):</strong> Wyznaczamy zapotrzebowanie na moc (Q) w Watach. Przykład: Salon 30 m², Q = 1200 W.<br>
                <strong>Krok 2 (Moc jednostkowa q):</strong> Dzielimy moc przez powierzchnię. 1200 W / 30 m² = 40 W/m².<br>
                <strong>Krok 3 (Opór okładziny R):</strong> Przyjmujemy opór dla wybranego materiału (np. gres R = 0,02, panel R = 0,08).<br>
                <strong>Krok 4 (Obliczenie różnicy temperatur ΔT):</strong> Korzystamy z logarytmicznej różnicy temperatur między wodą a powietrzem.<br>
                <strong>Krok 5 (Wyznaczenie zasilania):</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ), gdzie σ to spadek temperatury na pętli (zazwyczaj 5K).<br><br>
                <em>Przykład praktyczny:</em> Dla nowoczesnego domu pasywnego (q = 20 W/m²) przy gresie, temperatura zasilania rzadko przekracza 28-30°C, co czyni system niemal "samoregulującym się".
            </p>
        </div>
    </noscript>
</div>

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

    var floorResistance = 0.08; 
    
    function updateCalc() {
        var areaEl = document.getElementById('tz2-area');
        var powerEl = document.getElementById('tz2-power');
        var roomTempEl = document.getElementById('tz2-roomTemp');
        
        if (!areaEl) return;
        if (!powerEl) return;
        if (!roomTempEl) return;

        var area = parseFloat(areaEl.value);
        var power = parseFloat(powerEl.value);
        var t_i = parseFloat(roomTempEl.value);
        
        document.getElementById('tz2-v-area').innerText = area;
        document.getElementById('tz2-v-power').innerText = power;
        document.getElementById('tz2-v-room').innerText = t_i;

        var q = power / area;
        
        var R_total = 0.093 + 0.03 + floorResistance;
        var delta_T_avg = q * R_total;
        
        var t_m = t_i + delta_T_avg;
        var sigma = 5; 
        var t_z = t_m + (0.5 * sigma);

        var t_f = t_i + (q * 0.093);

        document.getElementById('tz2-resQ').innerText = q.toFixed(1) + ' W/m²';
        document.getElementById('tz2-resDelta').innerText = delta_T_avg.toFixed(1) + ' K';
        document.getElementById('tz2-resTz').innerText = t_z.toFixed(1);
        document.getElementById('tz2-resTf').innerText = t_f.toFixed(1) + ' °C';

        var mBox = document.getElementById('tz2-mainBox');
        var rMsg = document.getElementById('tz2-risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (t_z > 55) { 
            warnings.push('❌ <strong>Krytyczny błąd:</strong> Temperatura zasilania przekracza 55°C. System niezgodny z normą PN-EN 1264. Grozi pęknięciem wylewki!'); 
            boxColor = 'var(--danger)'; 
        } else if (floorResistance === 0.15) {
            if (t_z > 38) {
                warnings.push('⚠️ <strong>Zagrożenie dla drewna:</strong> Temperatura rzędu ' + t_z.toFixed(1) + '°C doprowadzi do rozschnięcia się parkietu. Producent odrzuci gwarancję.'); 
                boxColor = 'var(--warning)';
            }
        }

        if (t_f > 29) {
            if (t_i < 24) {
                warnings.push('🔥 <strong>Przegrzana podłoga:</strong> Temperatura powierzchni przekroczy fizjologiczną granicę 29°C. Dyskomfort gwarantowany.');
                if(boxColor !== 'var(--danger)') {
                    boxColor = 'var(--warning)';
                }
            }
        }

        if (q <= 30) {
            if (t_z <= 32) {
                warnings.push('🌿 <strong>System optymalny:</strong> Parametry typowe dla domu energooszczędnego/pasywnego. Pompa ciepła osiągnie tu maksymalne COP.');
            }
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
            
            if(boxColor === 'var(--success)') {
                rMsg.style.background = '#f0fdf4';
                rMsg.style.color = '#15803d';
                rMsg.style.borderColor = '#bbf7d0';
            } else if(boxColor === 'var(--warning)') {
                rMsg.style.background = '#fff7ed';
                rMsg.style.color = '#c2410c';
                rMsg.style.borderColor = '#fed7aa';
            } else {
                rMsg.style.background = '#fee2e2';
                rMsg.style.color = '#b91c1c';
                rMsg.style.borderColor = '#fecaca';
            }
        } else {
            rMsg.style.display = 'none';
        }
        
        mBox.style.borderColor = boxColor;
    }

    var floorOptions = {
        'tz2-btn-gres': 0.02,
        'tz2-btn-panel': 0.08,
        'tz2-btn-wood': 0.15
    };

    var btnKeys = Object.keys(floorOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    floorResistance = floorOptions[btnId];
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    var sliders = ['tz2-area', 'tz2-power', 'tz2-roomTemp'];
    sliders.forEach(function(id) {
        var el = document.getElementById(id);
        if(el) el.addEventListener('input', updateCalc);
    });

    updateCalc();
});
</script>



<style>
:root {
    --st-primary: #0f172a;
    --st-accent: #0284c7;
    --st-danger: #dc2626;
    --st-warning: #ea580c;
    --st-success: #16a34a;
    --st-concrete: #cbd5e1;
    --st-bg-light: #f8fafc;
}

.screed-thickness-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    overflow: hidden;
    color: var(--st-primary);
}

/* 1. SEKCJA HEADER & LEAD */
.st-header-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(135deg, #ffffff 0%, var(--st-bg-light) 100%);
}

.st-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f1f5f9;
    color: var(--st-primary);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #e2e8f0;
}

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

.st-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

.st-lead a:hover {
    color: #0369a1;
}

/* 2. SEKCJA SYMULATORA (Suwak Mierniczy) */
.st-interactive-section {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.st-ruler-container {
    position: relative;
    padding: 40px 20px 20px 20px;
    background: var(--st-bg-light);
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    margin-top: 10px;
}

.st-ruler-title {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.st-slider-val {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 20px;
    font-weight: 900;
    color: var(--st-accent);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

.st-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #fecaca 0%, #fecaca 25%, #bbf7d0 25%, #bbf7d0 60%, #fed7aa 60%, #fed7aa 100%);
    outline: none;
    margin-top: 25px;
}

.st-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #ffffff;
    border: 4px solid var(--st-primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: transform 0.1s;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 2px, #cbd5e1 2px, #cbd5e1 4px);
    background-size: 8px 100%;
    background-position: center;
}

/* 3. KARTY STANU WYLEWKI */
.st-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

.st-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid #e2e8f0;
    background: #ffffff;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0.6; 
    transform: scale(0.98);
}

.st-card.active {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.1);
}

.st-card[data-type="thin"].active { border-color: var(--st-danger); }
.st-card[data-type="standard"].active { border-color: var(--st-success); }
.st-card[data-type="thick"].active { border-color: var(--st-warning); }

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

.st-cross-section {
    height: 40px;
    background: #f1f5f9;
    border-radius: 8px;
    margin-bottom: 15px;
    position: relative;
    border: 1px solid #cbd5e1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}

.st-pipe {
    width: 16px;
    height: 16px;
    background: #ef4444;
    border-radius: 50%;
    border: 2px solid #ffffff;
    margin-bottom: 4px;
    z-index: 2;
}

.st-concrete-fill {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 5px, #cbd5e1 5px, #cbd5e1 10px);
    z-index: 1;
}

.st-card[data-type="thin"] .st-concrete-fill { height: 50%; }
.st-card[data-type="standard"] .st-concrete-fill { height: 75%; }
.st-card[data-type="thick"] .st-concrete-fill { height: 100%; }

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

.st-card strong {
    color: var(--st-primary);
}

.st-card[data-type="thin"].active p { color: #7f1d1d; }
.st-card[data-type="thin"].active strong { color: #991b1b; }
.st-card[data-type="standard"].active p { color: #14532d; }
.st-card[data-type="standard"].active strong { color: #166534; }
.st-card[data-type="thick"].active p { color: #7c2d12; }
.st-card[data-type="thick"].active strong { color: #9a3412; }

/* 4. SEKCJA OUTRO */
.st-outro-section {
    padding: 0 50px 40px 50px;
}

.st-pro-tip {
    background: #f0f9ff;
    border-left: 4px solid var(--st-accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
}

.st-pro-tip-icon {
    font-size: 28px;
}

.st-pro-tip p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .st-header-section { padding: 30px 25px 15px 25px; }
    .st-interactive-section { padding: 15px 25px; }
    .st-cards-grid { grid-template-columns: 1fr; padding: 25px; gap: 15px; }
    .st-outro-section { padding: 0 25px 30px 25px; }
    .st-pro-tip { flex-direction: column; text-align: center; }
}
</style>

<div class="screed-thickness-module" id="app-screed-thickness">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Wpływu Grubości Jastrychu na Temperaturę Zasilania",
        "description": "Interaktywne narzędzie inżynierskie wizualizujące zależność między grubością wylewki betonowej a oporem cieplnym i wymaganą temperaturą zasilania w systemach ogrzewania podłogowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Obrazowanie ryzyka pęknięć dla wylewek poniżej 3,5 cm",
          "Wyznaczanie optymalnej grubości betonu nad rurą (4,5 - 5 cm)",
          "Estymacja konieczności podniesienia temperatury zasilania o 2-3°C dla grubych wylewek (8 cm)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Właściwości termiczne i mechaniczne wylewki betonowej",
        "description": "Zestawienie twardych danych inżynierskich określających zachowanie jastrychu w zależności od jego grubości oraz temperatury zasilania do 55°C.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Grubość standardowa",
            "value": "4,5 - 5 cm",
            "description": "Optymalna masa termiczna i bezpieczny rozkład naprężeń dla instalacji."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość ryzykowna (zbyt cienka)",
            "value": "< 3,5 cm",
            "description": "Wysokie ryzyko pękania pod wpływem naprężeń termicznych, nawet przy normatywnych 55°C."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość podwyższona",
            "value": "8 cm",
            "description": "Zwiększony opór cieplny wymuszający podniesienie temperatury zasilania o 2-3°C w celu zachowania tej samej temperatury powierzchni."
          }
        ]
      }
    ]
    </script>

    <div class="st-header-section">
        <div class="st-badge"><span>🏗️</span> Konstrukcja a Termodynamika</div>
        <h2>Czy wysokość wylewki wpływa na temperaturę zasilania?</h2>
        <p class="st-lead">Tak, masa termiczna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej na ogrzewanie podłogowe</a> ma kluczowe znaczenie. Im grubsza warstwa betonu nad rurą, tym wyższy opór cieplny samej płyty grzejnej.</p>
    </div>

    <div class="st-interactive-section">
        <div class="st-ruler-container">
            <span class="st-ruler-title">Grubość jastrychu nad rurą</span>
            <span class="st-slider-val" id="st-val-display">5.0 cm</span>
            <input type="range" min="2.0" max="10.0" step="0.5" value="5.0" class="st-slider" id="st-slider">
        </div>
    </div>

    <div class="st-cards-grid">
        <div class="st-card" data-type="thin" id="st-card-thin">
            <span class="st-card-icon">💥</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> (poniżej <strong>3,5 cm</strong>) grozi pękaniem pod wpływem naprężeń termicznych, nawet jeśli nie przekroczymy maksymalnych <strong>55°C</strong> na zasilaniu.</p>
        </div>

        <div class="st-card active" data-type="standard" id="st-card-standard">
            <span class="st-card-icon">✅</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Standardowo przyjmuje się <strong>4,5 - 5 cm</strong> betonu ponad rurą.</p>
        </div>

        <div class="st-card" data-type="thick" id="st-card-thick">
            <span class="st-card-icon">🌡️</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Zwiększenie tej grubości do <strong>8 cm</strong> wymusza podniesienie temperatury zasilania o około <strong>2-3°C</strong>, aby uzyskać tę samą temperaturę na powierzchni w tym samym czasie.</p>
        </div>
    </div>

    <div class="st-outro-section">
        <div class="st-pro-tip">
            <span class="st-pro-tip-icon">💡</span>
            <p>W systemach renowacyjnych, gdzie brakuje miejsca na gruby beton, stosuje się specjalne jastrychy anhydrytowe o wysokim współczynniku przewodzenia ciepła.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-screed-thickness');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('st-slider');
    const displayVal = document.getElementById('st-val-display');
    
    const cardThin = document.getElementById('st-card-thin');
    const cardStandard = document.getElementById('st-card-standard');
    const cardThick = document.getElementById('st-card-thick');

    function updateScreedSimulator(thickness) {
        displayVal.textContent = parseFloat(thickness).toFixed(1) + ' cm';

        cardThin.classList.remove('active');
        cardStandard.classList.remove('active');
        cardThick.classList.remove('active');

        if (thickness < 4.0) {
            cardThin.classList.add('active');
        } else if (thickness >= 4.0 && thickness <= 6.5) {
            cardStandard.classList.add('active');
        } else {
            cardThick.classList.add('active');
        }
    }

    if (slider) {
        slider.addEventListener('input', function() {
            updateScreedSimulator(this.value);
        });
        
        updateScreedSimulator(slider.value);
    }
});
</script>



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



<style>
:root {
    --hazard-primary: #0f172a;
    --hazard-accent: #dc2626; /* Intensywna czerwień ostrzegawcza */
    --hazard-bg: #fff1f2;
    --hazard-border: #fecaca;
    --hazard-text: #475569;
}

.hazard-report-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    border: 2px solid var(--hazard-border);
    overflow: hidden;
    box-shadow: 0 20px 25px -5px rgba(220, 38, 38, 0.05);
}

/* 1. SEKACJA HEADER */
.hazard-header {
    background: var(--hazard-accent);
    padding: 30px 50px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hazard-header h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
}

.hazard-status-label {
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hazard-pulse {
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
    animation: hazard-blink 1s infinite;
}

@keyframes hazard-blink {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

/* 2. SEKACJA TEKSTU PROWADZĄCEGO */
.hazard-intro {
    padding: 35px 50px 20px 50px;
    background: #ffffff;
}

.hazard-intro p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

.hazard-intro a {
    color: var(--hazard-accent);
    text-decoration: underline;
    font-weight: 700;
}

/* 3. INTERAKTYWNA LISTA ZAGROŻEŃ */
.hazard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 20px 50px 40px 50px;
}

.hazard-item {
    background: var(--hazard-bg);
    border: 1px solid var(--hazard-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hazard-item:hover {
    transform: translateY(-5px);
    background: #ffffff;
    box-shadow: 0 10px 20px rgba(220, 38, 38, 0.1);
    border-color: var(--hazard-accent);
}

.hazard-icon {
    font-size: 32px;
    margin-bottom: 15px;
}

.hazard-item h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--hazard-primary);
    text-transform: uppercase;
}

.hazard-details {
    font-size: 13px;
    line-height: 1.6;
    color: var(--hazard-text);
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    opacity: 0;
}

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

.hazard-item.active .hazard-details {
    height: auto;
    opacity: 1;
    margin-top: 10px;
}

.hazard-temp-badge {
    background: var(--hazard-accent);
    color: #ffffff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .hazard-header { padding: 25px; flex-direction: column; gap: 15px; text-align: center; }
    .hazard-intro { padding: 30px 25px 15px 25px; }
    .hazard-grid { grid-template-columns: 1fr; padding: 15px 25px 30px 25px; }
    .hazard-item { padding: 20px; }
}
</style>

<div class="hazard-report-module" id="app-hazard-report">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Analizator Skutków Przegrzania Podłogówki",
        "description": "Narzędzie eksperckie identyfikujące fizyczne i techniczne zagrożenia wynikające z przekroczenia temperatury 55°C w instalacjach ogrzewania płaszczyznowego.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Weryfikacja wytrzymałości termicznej klejów ceramicznych",
          "Analiza prądów konwekcyjnych i emisji pyłów",
          "Ocena degradacji polimerów rur PERT/PEX"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Krytyczne progi degradacji instalacji podłogowej",
        "description": "Zbiór danych technicznych dotyczących niszczącego wpływu wysokich temperatur na materiały budowlane i instalacyjne.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Wytrzymałość klejów do ceramiki",
            "value": "Max 60-70°C",
            "description": "Powyżej tego progu następuje kruszenie spoiwa i odparzenie płytek."
          },
          {
            "@type": "PropertyValue",
            "name": "Próg emisji pyłów (konwekcja)",
            "value": "> 35°C powierzchni",
            "description": "Gwałtowny ruch powietrza unoszący alergeny."
          },
          {
            "@type": "PropertyValue",
            "name": "Degradacja sieciowania PEX",
            "value": "Stała praca > 60°C",
            "description": "Przyspieszone starzenie materiału i kruszenie rur."
          }
        ]
      }
    ]
    </script>

    <div class="hazard-header">
        <h2>Zagrożenia i błędy: Co się dzieje po przekroczeniu 55°C?</h2>
        <div class="hazard-status-label">
            <div class="hazard-pulse"></div>
            Analiza Krytyczna
        </div>
    </div>

    <div class="hazard-intro">
        <p>W mojej karierze widziałem dziesiątki instalacji zniszczonych przez brak kontroli nad temperaturą zasilania. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego</a> często kumulują się właśnie w tym punkcie. <strong>Kliknij w wybrane zagrożenie, aby poznać szczegóły:</strong></p>
    </div>

    <div class="hazard-grid">
        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🧱</span>
            <h4>Odparzenie płytek</h4>
            <div class="hazard-temp-badge">60-70°C</div>
            <div class="hazard-details">
                Kleje do ceramiki mają swoją wytrzymałość termiczną. Praca w temperaturze <strong>60-70°C</strong> powoduje ich kruszenie i utratę przyczepności do jastrychu.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">💨</span>
            <h4>Emisja pyłów</h4>
            <div class="hazard-temp-badge">Konwekcja</div>
            <div class="hazard-details">
                Przegrzana podłoga generuje silne prądy konwekcyjne. Zjawisko to unosi kurz, co jest szczególnie dotkliwe dla alergików. Poprawna podłogówka powinna oddawać ciepło głównie przez promieniowanie.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🚨</span>
            <h4>Niszczenie rur</h4>
            <div class="hazard-temp-badge">Degradacja PEX</div>
            <div class="hazard-details">
                Rury PERT/PEX przy stałym przegrzewaniu stają się kruche (proces sieciowania ulega degradacji), co po kilku latach może prowadzić do awarii i konieczności kucia posadzek.
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-hazard-report');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Treść raportu zagrożeń została skopiowana nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }
});
</script>



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



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii trwa wiele godzin. Skokowe podniesienie temperatury zasilania wywoła szok termiczny, co grozi pęknięciem wylewki, odspojeniem płytek i uszkodzeniem rur PEX. System powinien pracować stabilnie na niskich parametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Problem najprawdopodobniej leży w hydraulice lub wysokim oporze cieplnym okładziny (np. gruby dywan). Jeśli rury są ciepłe przy rozdzielaczu, a podłoga nie grzeje, należy sprawdzić przepływy na rotametrach (brak przepływu oznacza zapowietrzenie lub zablokowane siłowniki)."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna temperatura dla paneli winylowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele winylowe (LVT) świetnie przewodzą ciepło, ale temperatura na ich powierzchni nie może przekraczać 27°C. Aby zachować bezpieczeństwo materiału i nie doprowadzić do jego odkształceń, temperatura zasilania podłogówki nie powinna przekraczać 35°C."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Asystent Diagnostyczny Instalacji Podłogowych",
    "description": "Moduł typu Helpdesk ułatwiający inwestorom diagnozowanie problemów z instalacją grzewczą (np. zimne posadzki) oraz weryfikację bezpieczeństwa parametrów eksploatacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Rozwiązywanie problemów z przepływem i zapowietrzeniem układu",
      "Weryfikacja maksymalnych parametrów dla winylu (LVT)",
      "Analiza skutków przewymiarowania temperatury zasilania"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy i parametry diagnostyczne ogrzewania płaszczyznowego",
    "description": "Zbiór danych określających krytyczne błędy użytkowe i parametry eksploatacyjne systemów HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Prawidłowy przepływ w rotametrze",
        "value": "1.0 - 2.5 l/min",
        "description": "Wartość niezbędna do pokonania oporów hydraulicznych i równomiernego oddawania ciepła."
      },
      {
        "@type": "PropertyValue",
        "name": "Max temp. zasilania dla winylu LVT",
        "value": "35°C",
        "description": "Graniczna temperatura na zasilaniu zapobiegająca uszkodzeniu zamków i odkształcaniu paneli winylowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
    }
  }
]
</script>

<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0284c7;
    --faq-accent-light: #e0f2fe;
    --faq-bg: #f8fafc;
    --faq-border: #e2e8f0;
    --faq-text: #334155;
    --faq-danger: #dc2626;
}

.premium-faq-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--faq-border);
    overflow: hidden;
}

.faq-header-section {
    padding: 40px 50px 30px 50px;
    background: linear-gradient(180deg, #ffffff 0%, var(--faq-bg) 100%);
    border-bottom: 1px solid var(--faq-border);
    text-align: center;
}

.faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--faq-accent-light);
    color: var(--faq-accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #bae6fd;
}

.faq-header-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--faq-primary);
    margin: 0 0 15px 0;
}

.faq-header-section p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.faq-accordion-container {
    padding: 30px 50px 40px 50px;
    background: #ffffff;
}

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

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

.faq-item:hover {
    border-color: #bae6fd;
}

.faq-item.active {
    border-color: var(--faq-accent);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.faq-question {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 20px;
    user-select: none;
    background: #ffffff;
}

.faq-q-text {
    display: flex;
    align-items: center;
    gap: 15px;
}

.faq-q-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.faq-q-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

.faq-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--faq-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--faq-primary);
    font-weight: bold;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.faq-item.active .faq-toggle-btn {
    background: var(--faq-accent);
    color: #ffffff;
    transform: rotate(45deg);
}

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

.faq-answer-inner {
    padding: 0 25px 25px 65px; /* Offset for icon alignment */
}

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

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer strong {
    color: var(--faq-primary);
}

/* Wyróżnienie "Wskazówka Inżyniera" */
.expert-highlight {
    background: #f0fdf4;
    border-left: 4px solid var(--success);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 15px;
}

.expert-highlight strong {
    display: block;
    color: #14532d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.expert-highlight p {
    color: #166534;
    font-size: 14px;
    margin: 0;
}

@media (max-width: 768px) {
    .faq-header-section { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 25px; }
    .faq-question { padding: 15px 20px; gap: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; } /* Usunięty offset dla mobile */
    .faq-q-icon { font-size: 20px; }
    .faq-q-title { font-size: 15px; }
}
</style>

<div class="premium-faq-module" id="app-faq-module">
    
    <div class="faq-header-section">
        <div class="faq-badge">
            <span>💡</span> Baza Wiedzy Inwestora
        </div>
        <h2>Najczęściej zadawane pytania (FAQ)</h2>
        <p>Zebraliśmy najczęstsze wątpliwości inwestorów dotyczące temperatur zasilania. Rozwiń poniższe zagadnienia, aby uniknąć kosztownych błędów eksploatacyjnych.</p>
    </div>

    <div class="faq-accordion-container">
        
        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🔥</span>
                    <h3 class="faq-q-title">Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p><strong>Absolutnie nie.</strong> Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii i tak potrwa od kilku do kilkunastu godzin. Skokowe podniesienie temperatury zasilania nie przyspieszy odczuwalnie nagrzewania pomieszczenia, ale wywoła potężny szok termiczny dla instalacji.</p>
                    <p>Ryzykujesz rażące przekroczenie normy PN-EN 1264 (limit 55°C), co prowadzi do nieodwracalnego pękania jastrychu, odspojenia płytek oraz drastycznego skrócenia żywotności rur PEX. System podłogowy to układ niskotemperaturowy – powinien pracować stabilnie, ciągle i na niskich parametrach.</p>
                    <div class="expert-highlight">
                        <strong>Wskazówka Inżyniera</strong>
                        <p>Jeśli posiadasz pompę ciepła, takie wymuszenie temperatury włączy grzałki elektryczne, co w ciągu kilku dni potrafi wygenerować rachunki równe miesięcznym kosztom standardowej eksploatacji.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">❄️</span>
                    <h3 class="faq-q-title">Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Wysoka temperatura na kotle nie gwarantuje ciepłej podłogi, jeśli energia nie jest w stanie dotrzeć do posadzki i przebić się do pomieszczenia. Najprawdopodobniej problem leży w <strong>błędach hydraulicznych lub złym wykończeniu podłogi</strong>.</p>
                    <p>W pierwszej kolejności sprawdź przepływy na rotametrach na rozdzielaczu – poprawne wartości to zazwyczaj od 1.0 do 2.5 l/min. Zablokowany przepływ może oznaczać zapowietrzenie pętli lub usterkę siłownika termoelektrycznego. Jeśli przepływy są prawidłowe, winny jest zbyt wysoki opór cieplny (R) – np. gruby dywan, zły podkład lub pustka powietrzna pod deską, która blokuje oddawanie ciepła.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🪵</span>
                    <h3 class="faq-q-title">Jaka jest optymalna temperatura dla paneli winylowych (LVT)?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Panele winylowe (LVT/SPC) są bardzo cienkie i rewelacyjnie przewodzą ciepło, co czyni je doskonałym wyborem na ogrzewanie podłogowe. Mają jednak jedną wadę: <strong>bardzo niską odporność na wysoką temperaturę</strong>.</p>
                    <p>Zgodnie z rygorystycznymi wytycznymi większości producentów, temperatura styku paneli z wylewką absolutnie nie może przekroczyć <strong>27°C - 28°C</strong>. Zazwyczaj oznacza to, że temperatura wody na zasilaniu podłogówki powinna być zablokowana na poziomie maksymalnie <strong>30-35°C</strong>.</p>
                    <div class="expert-highlight" style="border-left-color: var(--faq-danger); background: #fef2f2;">
                        <strong style="color: #991b1b;">Zagrożenie</strong>
                        <p style="color: #7f1d1d;">Przegrzanie winylu natychmiast prowadzi do rozmiękczenia materiału, odkształcenia (wyłamania) zamków, efektu "łódkowania" oraz utraty gwarancji na podłogę.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-faq-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Baza wiedzy FAQ została skopiowana z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Zwijanie / Rozwijanie)
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        
        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Opcjonalnie: Zwijanie wszystkich innych zakładek po kliknięciu nowej
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                const otherAnswer = otherItem.querySelector('.faq-answer');
                otherAnswer.style.maxHeight = null;
            });

            // Logika otwierania klikniętego elementu
            if (!isActive) {
                item.classList.add('active');
                const answer = item.querySelector('.faq-answer');
                // Dynamiczne ustawienie max-height pozwala na gładką animację dla zawartości o różnej długości
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz domyślnie pierwsze pytanie, aby użytkownik widział, jak działa element
    if (faqItems.length > 0) {
        faqItems[0].classList.add('active');
        const firstAnswer = faqItems[0].querySelector('.faq-answer');
        firstAnswer.style.maxHeight = firstAnswer.scrollHeight + "px";
    }
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-secondary: #1e293b;
    --dl-accent: #0284c7;
    --dl-pdf: #ef4444; 
    --dl-img: #10b981; 
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
}

.premium-download-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--dl-border);
    overflow: hidden;
    display: flex;
    flex-direction: row;
}

/* LEWA STRONA: Wizualizacja materiału (Podgląd) */
.dl-visual-side {
    flex: 0 0 38%;
    background: linear-gradient(135deg, var(--dl-primary) 0%, var(--dl-secondary) 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    border-right: 1px solid rgba(255,255,255,0.1);
    overflow: hidden;
}

/* Dekoracyjne tło */
.dl-visual-side::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: radial-gradient(circle at top right, rgba(2, 132, 199, 0.4) 0%, transparent 60%);
    pointer-events: none;
}

/* Nowy kontener z podglądem grafiki */
.dl-preview-wrapper {
    width: 170px;
    max-width: 80%;
    margin-bottom: 25px;
    border-radius: 8px;
    box-shadow: -10px 15px 25px rgba(0,0,0,0.4);
    border: 3px solid rgba(255,255,255,0.15);
    transform: rotate(-4deg) translateY(0);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    z-index: 1;
    overflow: hidden;
    background: #fff;
}

.dl-preview-wrapper:hover {
    transform: rotate(0deg) translateY(-5px) scale(1.05);
    box-shadow: 0 20px 35px rgba(0,0,0,0.5);
    border-color: rgba(255,255,255,0.3);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.dl-visual-side p {
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    z-index: 1;
    padding: 0 10px;
}

/* PRAWA STRONA: Treść i przyciski */
.dl-content-side {
    flex: 1;
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-badge {
    align-self: flex-start;
    background: #f0f9ff;
    color: var(--dl-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #bae6fd;
}

.dl-content-side h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--dl-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #475569;
    line-height: 1.5;
}

.dl-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--dl-img);
    font-weight: bold;
}

.dl-features li strong {
    color: var(--dl-primary);
}

/* Przyciski pobierania */
.dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    flex: 1;
    justify-content: center;
    min-width: 180px;
}

.dl-btn-pdf {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.dl-btn-pdf:hover {
    background: var(--dl-pdf);
    color: #ffffff;
    border-color: var(--dl-pdf);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(239, 68, 68, 0.2);
}

.dl-btn-img {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.dl-btn-img:hover {
    background: var(--dl-img);
    color: #ffffff;
    border-color: var(--dl-img);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(16, 185, 129, 0.2);
}

.dl-btn-icon {
    font-size: 18px;
}

@media (max-width: 768px) {
    .premium-download-module {
        flex-direction: column;
    }
    .dl-visual-side {
        padding: 40px 30px;
    }
    .dl-content-side {
        padding: 30px 25px;
    }
    .dl-actions {
        flex-direction: column;
    }
    .dl-btn {
        width: 100%;
    }
}
</style>

<div class="premium-download-module" id="app-download-center">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Centrum Pobierania - Infografiki HVAC",
        "description": "Interaktywny moduł umożliwiający pobranie kompendium wiedzy na temat maksymalnych temperatur zasilania dla ogrzewania podłogowego w formatach PDF i WebP.",
        "applicationCategory": "MultimediaApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Szybkie pobieranie infografiki w bezstratnym formacie PDF do druku",
          "Dostęp do lekkiej wersji graficznej WebP dla urządzeń mobilnych",
          "Zestawienie norm PN-EN 1264 z praktyką inżynierską"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Infografika: Maksymalna temperatura zasilania podłogówki",
        "description": "Wizualne zestawienie parametrów eksploatacyjnych, optymalnych temperatur dla poszczególnych rodzajów posadzek oraz najczęstszych błędów montażowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "distribution": [
          {
            "@type": "DataDownload",
            "encodingFormat": "application/pdf",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf"
          },
          {
            "@type": "DataDownload",
            "encodingFormat": "image/webp",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="dl-visual-side">
        <div class="dl-preview-wrapper">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" alt="Podgląd infografiki - parametry ogrzewania podłogowego" class="dl-preview-img" loading="lazy">
        </div>
        <p>Materiały oparte na twardych danych inżynierskich i normie PN-EN 1264.</p>
    </div>

    <div class="dl-content-side">
        <div class="dl-badge">Darmowe Materiały</div>
        <h2>Pobierz infografikę z parametrami instalacji</h2>
        
        <ul class="dl-features">
            <li><strong>Graficzne podsumowanie wiedzy:</strong> Czytelny schemat pracy układu grzewczego.</li>
            <li><strong>Szybka ściągawka z norm:</strong> Optymalne i graniczne wartości temperatur (25°C - 55°C) zawsze pod ręką.</li>
            <li><strong>Analiza błędów:</strong> Zestawienie 3 najdroższych pomyłek montażowych.</li>
        </ul>

        <div class="dl-actions">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-pdf">
                <span class="dl-btn-icon">📄</span> Pobierz plik PDF
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-img">
                <span class="dl-btn-icon">🖼️</span> Otwórz Obrazek
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-download-center');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; width: 100%;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Moduł pobierania plików został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

.premium-summary-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.summary-header {
    background: var(--primary);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło w nagłówku */
.summary-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.4) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.summary-text {
    padding: 35px 40px 10px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.summary-text strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł interaktywny - Weryfikator */
.interactive-checklist-module {
    margin: 20px 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.checklist-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 200px;
}

.progress-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
    font-size: 12px;
    font-weight: 900;
    color: var(--primary);
    min-width: 40px;
    text-align: right;
}

.checklist-items {
    padding: 20px 25px;
    display: grid;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #ffffff;
}

.check-item:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.check-item.completed {
    border-color: var(--success);
    background: #f0fdf4;
}

.check-box {
    width: 24px;
    height: 24px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: #fff;
    margin-top: 2px;
}

.check-item.completed .check-box {
    background: var(--success);
    border-color: var(--success);
}

.check-icon {
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transform: scale(0);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.check-item.completed .check-icon {
    opacity: 1;
    transform: scale(1);
}

.check-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

.check-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
}

/* CTA Sukcesu - ROZWIĄZANIE HYBRYDOWE */
.success-cta-box {
    padding: 30px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.4s ease;
}

.success-cta-box.is-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-top-color: #bbf7d0;
}

.success-messages {
    display: none;
    animation: fadeIn 0.5s ease;
}

.success-cta-box.is-success .success-messages {
    display: block;
}

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

.success-messages h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #166534;
    font-weight: 900;
}

.success-messages p {
    font-size: 15px;
    color: #15803d;
    margin: 0 0 20px 0;
}

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534;
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wytyczne zasilania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących maksymalnych limitów temperatury zasilania oraz powierzchni podłogi z uwzględnieniem specyfiki źródła ciepła i okładziny.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura zasilania wg normy",
        "value": "55°C",
        "description": "Graniczna wartość według PN-EN 1264, której przekroczenie grozi uszkodzeniem jastrychu."
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna temperatura zasilania (Pompa ciepła)",
        "value": "30-38°C",
        "description": "Zakres gwarantujący najwyższy współczynnik SCOP i energooszczędność."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura powierzchni podłogi",
        "value": "29°C",
        "description": "Limit dla stref stałego przebywania ludzi (np. salon, sypialnia) ze względów fizjologicznych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Audyt Parametrów Zasilania",
    "description": "Interaktywna aplikacja sprawdzająca, czy założenia projektowe dotyczące temperatur zasilania podłogówki są bezpieczne i zgodne z normami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Weryfikacja parametrów OZC i układu hydraulicznego",
      "Kontrola zabezpieczeń przed przegrzewem dla źródeł wysokotemperaturowych",
      "Ocena spójności między rozstawem rur a planowaną okładziną"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie i rekomendacje eksperta</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Maksymalna temperatura zasilania podłogówki to parametr, którego nie wolno lekceważyć.</p>
    </div>
    
    <div class="summary-text">
        <p>Choć norma dopuszcza graniczną wartość <strong>55°C</strong>, współczesne budownictwo oparte na efektywnych źródłach niskotemperaturowych bezwzględnie dąży do parametrów na poziomie <strong>30-38°C</strong>. Taki zakres to jedyna droga, która gwarantuje najwyższą sprawność pomp ciepła, bezpieczeństwo termiczne dla wszystkich rodzajów okładzin wierzchnich oraz idealny, bezwładnościowy komfort cieplny dla domowników.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🌡️ Audyt Bezpieczeństwa: Weryfikacja parametrów zasilania</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Projekt OZC jako absolutna podstawa</h4>
                    <p>Zawsze wymagam obliczenia projektowego zapotrzebowania na ciepło przed rozpoczęciem instalacji, aby nie dobierać temperatury zasilania "w ciemno".</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Zastosowanie zaworu mieszającego</h4>
                    <p>W przypadku współpracy z kotłem stałopalnym lub gazowym, układ jest zabezpieczony zaworem obniżającym zbyt wysoką temperaturę powrotu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Dopasowanie rozstawu pętli do okładziny</h4>
                    <p>Dobrałem gęstość rur pod rodzaj wykończenia. Zastosuję węższy rozstaw (np. co 10 cm), jeśli nad rurami znajdzie się stawiające opór termiczny drewno.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Monitorowanie temperatury powierzchni</h4>
                    <p>Układ jest tak wyregulowany, by temperatura powierzchni podłogi (np. w salonie i sypialniach) bezwzględnie nie przekraczała normatywnych 29°C.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój układ grzewczy to majstersztyk inżynierski.</h3>
            <p>Inwestycja w poprawnie zaprojektowany i wyregulowany system to nie tylko niższe rachunki za energię, ale przede wszystkim spokój na dziesięciolecia i dom wolny od kosztownych awarii wylewki i posadzek.</p>
        </div>

        <p class="success-cta-promo">Chcesz poznać inne parametry wpływające na efektywność ogrzewania? Sprawdź naszą bazę wiedzy pełną branżowych kalkulatorów i darmowych poradników!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</p>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalacja ogrzewania podłogowego w układzie meandrowym.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 11 May 2025 15:30:59 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje budowlane]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[normy ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[strefy brzegowe]]></category>
		<category><![CDATA[układ meandrowy]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2575</guid>

					<description><![CDATA[<p>Chcesz cieszyć się ciepłem w domu przez cały rok? Poznaj zalety instalacji ogrzewania podłogowego w układzie meandrowym – prostego i efektywnego systemu grzewczego. Dowiedz się, jak zaplanować montaż, dobrać rury i okładziny oraz uniknąć błędów. Sprawdź praktyczne porady, koszty i przykłady zastosowań, aby stworzyć komfortowy i energooszczędny dom. Zainspiruj się i zacznij działać już dziś!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Instalacja ogrzewania podłogowego w układzie meandrowym</strong> to jedno z rozwiązań zapewniających komfort cieplny w domach i mieszkaniach. Dzięki prostocie montażu i możliwości dostosowania do specyficznych potrzeb pomieszczeń, ten system jest idealny dla salonów z dużymi oknami, łazienek czy kuchni. W tym artykule wyjaśnimy, jak prawidłowo zaplanować i zrealizować <strong>montaż ogrzewania podłogowego w układzie meandrowym</strong>, jakie są jego zalety, koszty i jak wybrać odpowiednie materiały. Dowiedz się, dlaczego warto postawić na ten system i jak uniknąć typowych błędów.</p>



<h2 class="wp-block-heading">Dlaczego warto wybrać ogrzewanie podłogowe w układzie meandrowym?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe w układzie meandrowym to sposób na równomierne rozprowadzenie ciepła od podłogi, co zapewnia wyjątkowy komfort, szczególnie w chłodne dni. W porównaniu do tradycyjnych grzejników, ten system jest bardziej energooszczędny i estetyczny, ponieważ eliminuje widoczne elementy grzewcze. Układ meandrowy wyróżnia się prostotą, co czyni go atrakcyjnym wyborem dla osób szukających efektywnego rozwiązania w przystępnej cenie.</p>



<h3 class="wp-block-heading">Zalety układu meandrowego.</h3>



<ul class="wp-block-list">
<li><strong>Łatwość montażu</strong>: Rury układane są równolegle w kształt węża, co przyspiesza instalację i obniża koszty robocizny.</li>



<li><strong>Skuteczność w strefach brzegowych</strong>: Idealny do pomieszczeń z dużymi stratami ciepła, np. przy oknach czy ścianach zewnętrznych.</li>



<li><strong>Elastyczność</strong>: Możliwość zagęszczenia rur w kluczowych miejscach, np. wzdłuż drzwi balkonowych.</li>



<li><strong>Zdrowie i komfort</strong>: Ciepło rozprowadzane od podłogi zmniejsza cyrkulację kurzu, co jest korzystne dla alergików. Więcej o tym w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Czy ogrzewanie podłogowe jest zdrowe?</a>.</li>
</ul>



<h3 class="wp-block-heading">Ograniczenia układu meandrowego.</h3>



<p class="wp-block-paragraph">Główną wadą układu meandrowego jest nierównomierny rozkład temperatury – woda traci ciepło w miarę przepływu, co może sprawić, że podłoga będzie cieplejsza na początku pętli. W większych pomieszczeniach lepszym wyborem może być układ ślimakowy, który zapewnia bardziej jednolite ogrzewanie. Jednak odpowiednie planowanie pętli może zminimalizować ten problem.</p>



<h2 class="wp-block-heading"><strong>Rodzaje układu meandrowego: pojedynczy i podwójny</strong>.</h2>



<p class="wp-block-paragraph">Układ meandrowy w ogrzewaniu podłogowym występuje w dwóch wariantach: <strong>meander pojedynczy</strong> i <strong>meander podwójny</strong>. Oba bazują na tym samym schemacie układania rur w równoległe pasy z zakrętami o 180°, ale różnią się sposobem prowadzenia rur zasilających i powrotnych, co ma istotny wpływ na równomierność ogrzewania.</p>



<h3 class="wp-block-heading"><strong>Meander pojedynczy</strong>.</h3>



<p class="wp-block-paragraph"><strong>Meander pojedynczy</strong> to klasyczny układ, w którym rura biegnie od rozdzielacza wzdłuż jednej strony pomieszczenia i wraca drugą stroną. To proste rozwiązanie, tanie i szybkie w montażu. Jednak jego wadą może być <strong>nierównomierny rozkład temperatury</strong> – początek pętli jest cieplejszy, a koniec – chłodniejszy. Dlatego najlepiej sprawdza się w mniejszych pomieszczeniach lub tam, gdzie różnice temperatur nie mają kluczowego znaczenia.</p>



<h3 class="wp-block-heading"><strong>Meander podwójny</strong>.</h3>



<p class="wp-block-paragraph"><strong>Meander podwójny</strong> to bardziej zaawansowana wersja, w której rury zasilająca i powrotna biegną parami – obok siebie – przez całą długość pętli. Dzięki temu ciepło rozprowadzane jest <strong>bardziej równomiernie</strong>, co znacznie poprawia komfort cieplny w pomieszczeniach o większej powierzchni lub dużych stratach ciepła, np. z dużymi przeszkleniami. Choć ten układ jest nieco trudniejszy w wykonaniu i może wymagać więcej materiału, zapewnia <strong>lepszy balans termiczny</strong> w całej strefie grzewczej.</p>



<p class="wp-block-paragraph"><em>Wybór między meandrem pojedynczym a podwójnym zależy przede wszystkim od <strong>układu pomieszczenia, rodzaju źródła ciepła oraz wymaganej równomierności temperatury</strong>.</em></p>



<h2 class="wp-block-heading"><strong>Gdzie warto zastosować układ meandrowy w ogrzewaniu podłogowym?</strong></h2>



<p class="wp-block-paragraph">Układ meandrowy najlepiej sprawdza się w <strong>pomieszczeniach o mniejszej powierzchni</strong>, gdzie różnice temperatury między początkiem a końcem pętli nie są aż tak odczuwalne. To idealne rozwiązanie do <strong>łazienek, korytarzy, kuchni</strong>, a także <strong>pomieszczeń o regularnym kształcie</strong>, bez dużej liczby wnęk czy przeszkód architektonicznych.</p>



<p class="wp-block-paragraph">Dzięki możliwości lokalnego zagęszczenia rur, meander dobrze radzi sobie także w <strong>strefach brzegowych</strong>, czyli wzdłuż ścian zewnętrznych, przy oknach i drzwiach balkonowych – tam, gdzie występują największe straty ciepła. W tych miejscach można z powodzeniem zmniejszyć rozstaw rur do 10 cm, uzyskując silniejszy strumień cieplny.</p>



<p class="wp-block-paragraph">Układ meandrowy jest również często stosowany w <strong>pomieszczeniach pomocniczych</strong> (spiżarnie, garderoby, pralnie), gdzie nie zależy nam na idealnej równomierności ciepła, ale ważna jest prostota montażu i niskie koszty. W przypadku większych przestrzeni – salonów, pokoi dziennych – <strong>lepszym wyborem może być układ ślimakowy lub podwójny meander</strong>, które zapewniają bardziej jednorodny rozkład temperatury.</p>



<h2 class="wp-block-heading">Jak wygląda ogrzewanie podłogowe ułożone w meander bądź podwójny meander.</h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img data-dominant-color="f3f2f2" data-has-transparency="false" style="--dominant-color: #f3f2f2;" loading="lazy" decoding="async" width="945" height="945" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander.webp" alt="Pojedynczy meander" class="wp-image-2583 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander.webp 945w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Pojedynczy-meander-100x100.webp 100w" sizes="auto, (max-width: 945px) 100vw, 945px" /><figcaption class="wp-element-caption">Pojedynczy meander</figcaption></figure>



<figure class="wp-block-image size-full"><img data-dominant-color="f3f3f3" data-has-transparency="false" style="--dominant-color: #f3f3f3;" loading="lazy" decoding="async" width="945" height="945" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander.webp" alt="Podwójny meander" class="wp-image-2585 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander.webp 945w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Podwojny-meander-100x100.webp 100w" sizes="auto, (max-width: 945px) 100vw, 945px" /><figcaption class="wp-element-caption">Podwójny meander</figcaption></figure>
</div>



<h2 class="wp-block-heading">Jak działa instalacja ogrzewania podłogowego w układzie meandrowym?</h2>



<p class="wp-block-paragraph">W układzie meandrowym rury grzewcze są układane równolegle, tworząc pętle przypominające węża z zakrętami o 180 stopni. Gorąca woda przepływa przez rury, oddając ciepło do podłogi, a następnie wraca do rozdzielacza. System działa zgodnie z normą <strong>EN 1264</strong>, która określa wymagania dla wodnego ogrzewania podłogowego, zapewniając bezpieczeństwo i efektywność.</p>



<h3 class="wp-block-heading">Kluczowe komponenty systemu.</h3>



<p class="wp-block-paragraph">Aby <strong>zainstalować ogrzewanie podłogowe w układzie meandrowym</strong>, potrzebne są następujące elementy:</p>



<ol class="wp-block-list">
<li><strong>Rury grzewcze</strong>: Najczęściej stosuje się rury PEX lub PE-RT o średnicy 16 mm, zgodne z normą <strong>EN ISO 15875</strong>. Przykładem jest rura wielowarstwowa KAN-therm BluePERT, która zapewnia trwałość i elastyczność.</li>



<li><strong>Rozdzielacz</strong>: Umożliwia regulację przepływu wody. Polecamy <a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-ze-stali-nierdzewnej-inox-do-ogrzewania-podlogowego-z-rotametrami/">rozdzielacz ze stali nierdzewnej INOX</a> dla precyzyjnej kontroli.</li>



<li><strong>Grupa pompowo-mieszająca</strong>: Kluczowa w systemach z grzejnikami, dostępna jako <a href="https://projekt-ogrzewania.pl/produkt/grupa-pompowo-mieszajaca-trinnity/">grupa pompowo-mieszająca Trinnity</a>.</li>



<li><strong>Izolacja termiczna</strong>: Styropian EPS 100 lub <a href="https://projekt-ogrzewania.pl/produkt/mata-mocujaca-do-ogrzewania-podlogowego/">mata mocująca do ogrzewania podłogowego</a> zapobiega stratom ciepła.</li>



<li><strong>Wylewka</strong>: Betonowa lub anhydrytowa warstwa otaczająca rury, zgodna z normą <strong>DIN 4726</strong> dla rur PEX.</li>
</ol>



<h3 class="wp-block-heading">Planowanie rozmieszczenia pętli.</h3>



<p class="wp-block-paragraph">Kluczowe jest odpowiednie zaprojektowanie trasy rur, aby zapewnić efektywność systemu:</p>



<ul class="wp-block-list">
<li><strong>Strefy brzegowe</strong>: Rozpocznij układanie rur wzdłuż ścian zewnętrznych lub okien, z odstępem 10 cm, aby zwiększyć strumień ciepła.</li>



<li><strong>Unikanie zabudowy</strong>: Nie umieszczaj rur pod szafkami, wannami czy wyspami kuchennymi.</li>



<li><strong>Odstępy</strong>: Standardowy rozstaw to 10-20 cm, ale w newralgicznych miejscach można go zmniejszyć.</li>



<li><strong>Długość pętli</strong>: Maksymalnie 80-100 m, aby uniknąć spadku ciśnienia.</li>
</ul>



<p class="wp-block-paragraph">Sprawdź, jak to zrobić, w poradniku <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym</a>.</p>



<h2 class="wp-block-heading">Profesjonalny projekt ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph">Sukces instalacji zależy od precyzyjnego projektu, który uwzględnia straty ciepła, rodzaj podłogi i potrzeby mieszkańców. Oferujemy kompleksowe projekty, np. <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/">projekt ogrzewania podłogowego do 200 m²</a>, dostosowane do większych domów. Ich projekty <strong>EN 1264</strong>, zapewniając optymalny rozkład pętli i dobór materiałów. Przy zakupie komponentów w <a href="https://projekt-ogrzewania.pl/sklep/">sklepie projekt-ogrzewania.pl</a>, projekt można otrzymać gratis, co obniża koszty inwestycji.</p>



<h2 class="wp-block-heading">Etapy montażu ogrzewania podłogowego w układzie meandrowym.</h2>



<h3 class="wp-block-heading">1. Przygotowanie podłoża.</h3>



<p class="wp-block-paragraph">Podłoże musi być równe, czyste i suche. Wszelkie nierówności mogą wpłynąć na jakość wylewki. Następnie układana jest izolacja, np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-200-z-wypustkami/">płyta styropianowa EPS 200 z wypustkami</a>.</p>



<h3 class="wp-block-heading">2. Układanie rur.</h3>



<p class="wp-block-paragraph">Rury mocuje się za pomocą spinek lub mat. W układzie meandrowym kluczowe jest rozpoczęcie od stref brzegowych i zachowanie odpowiedniego rozstawu.</p>



<h3 class="wp-block-heading">3. Montaż rozdzielacza.</h3>



<p class="wp-block-paragraph">Rozdzielacz jest podłączany do rur i montowany w <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafce podtynkowej</a>.</p>



<h3 class="wp-block-heading">4. Próba szczelności.</h3>



<p class="wp-block-paragraph">System wypełnia się wodą pod ciśnieniem i sprawdza przez 24-48 godzin, zgodnie z normą <strong>EN 1264</strong>. Zobacz szczegóły w <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">Próba szczelności ogrzewania podłogowego</a>.</p>



<h3 class="wp-block-heading">5. Wylewka i wykończenie.</h3>



<p class="wp-block-paragraph">Wylewka (21-28 dni schnięcia) otacza rury, a następnie układana jest okładzina podłogowa.</p>



<h2 class="wp-block-heading">Porównanie układu meandrowego z innymi systemami</h2>



<h3 class="wp-block-heading">Układ meandrowy vs ślimakowy.</h3>



<p class="wp-block-paragraph">Układ meandrowy jest tańszy i prostszy w montażu, ale mniej równomiernie rozprowadza ciepło. Ślimakowy, z rurami w spiralnym wzorze, lepiej sprawdza się w dużych pomieszczeniach. Przeczytaj więcej w <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Instalacja ogrzewania podłogowego w układzie ślimakowym</a>.</p>



<h3 class="wp-block-heading">Układ meandrowy vs ogrzewanie elektryczne.</h3>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe w układzie meandrowym jest bardziej ekonomiczne w eksploatacji niż elektryczne, szczególnie z pompą ciepła. Elektryczne systemy są łatwiejsze w instalacji, ale droższe w użytkowaniu.</p>



<h2 class="wp-block-heading">Koszty instalacji ogrzewania podłogowego w układzie meandrowym.</h2>



<p class="wp-block-paragraph">Koszty zależą od materiałów, robocizny i wielkości powierzchni. Oto szacunkowy rozkład:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Element</strong></th><th><strong>Koszt (zł/m²)</strong></th></tr></thead><tbody><tr><td>Materiały (styropian, rury, folia)</td><td>15-25</td></tr><tr><td>Robocizna</td><td>25-35</td></tr><tr><td>Rozdzielacz i automatyka</td><td>10-20</td></tr><tr><td><strong>Całkowity koszt</strong></td><td>80-180 (średnio 110-120)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla domu 100 m² koszt wynosi 8000-18 000 zł. Sprawdź szczegóły w <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">Ile kosztuje 100 m² ogrzewania podłogowego?</a>.</p>



<h2 class="wp-block-heading">Przykłady zastosowania.</h2>



<ol class="wp-block-list">
<li><strong>Salon 30 m²</strong>: Pętle zaczynają się przy oknach (odstęp 10 cm), a w centrum odstęp wynosi 15 cm.</li>



<li><strong>Łazienka 6 m²</strong>: Rury omijają wannę, koncentrując się na otwartych przestrzeniach.</li>



<li><strong>Kuchnia 15 m²</strong>: Pętle omijają wyspę kuchenną, zapewniając ciepło w strefach użytkowych.</li>
</ol>



<h2 class="wp-block-heading">Jak wybrać okładzinę podłogową?</h2>



<ul class="wp-block-list">
<li><strong>Płytki ceramiczne</strong>: Niski opór termiczny, idealne do łazienek.</li>



<li><strong>Kamień naturalny</strong>: Droższy, ale efektywny.</li>



<li><strong>Panele laminowane</strong>: Odpowiednie, jeśli oznaczone do podłogówki.</li>



<li><strong>Drewno</strong>: Cienkie deski (do 10 mm) z odpowiednim klejem.</li>
</ul>



<p class="wp-block-paragraph">Przeczytaj więcej w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego</a>.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1746973842792"><strong class="schema-faq-question">Czym różni się układ meandrowy od ślimakowego?</strong> <p class="schema-faq-answer">Układ meandrowy układa rury w kształt węża, jest prostszy i tańszy, ale mniej równomiernie rozprowadza ciepło. Ślimakowy, z rurami w spirali, lepiej sprawdza się w dużych pomieszczeniach.</p> </div> <div class="schema-faq-section" id="faq-question-1746973851571"><strong class="schema-faq-question">Jakie odstępy między rurami są najlepsze w układzie meandrowym?</strong> <p class="schema-faq-answer">Standardowy rozstaw to 10-20 cm, ale w strefach brzegowych (np. przy oknach) zaleca się nawet 5 cm, aby zwiększyć efektywność ogrzewania.</p> </div> <div class="schema-faq-section" id="faq-question-1746973884709"><strong class="schema-faq-question">Czy mogę samodzielnie zamontować ogrzewanie podłogowe w układzie meander?</strong> <p class="schema-faq-answer">Samodzielny montaż jest możliwy, ale wymaga wiedzy o rozmieszczeniu rur, próbie szczelności i normach (np. EN 1264). Profesjonalny projekt i ekipa minimalizują ryzyko błędów.</p> </div> <div class="schema-faq-section" id="faq-question-1746973925299"><strong class="schema-faq-question">Czy ogrzewanie podłogowe w układzie meandrowym jest energooszczędne?</strong> <p class="schema-faq-answer">Tak, szczególnie w połączeniu z pompą ciepła. Układ meandrowy działa w niskich temperaturach (35-45°C), co obniża zużycie energii w porównaniu do grzejników.</p> </div> <div class="schema-faq-section" id="faq-question-1746973943964"><strong class="schema-faq-question">Jak uniknąć błędów przy montażu podłogówki w układzie meandrowym?</strong> <p class="schema-faq-answer">Kluczowe jest profesjonalne projektowanie, unikanie rur pod zabudową, prawidłowa próba szczelności i zgodność z normami, np. EN 1264. Sprawdź najczęstsze błędy przy montażu ogrzewania podłogowego.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Instalacja ogrzewania podłogowego w układzie meandrowym</strong> to efektywne rozwiązanie, które łączy prostotę, komfort i oszczędności. Kluczowe jest staranne planowanie pętli, wybór materiałów i profesjonalny projekt. Dzięki temu system zapewni ciepło i obniży rachunki za ogrzewanie.</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="5pGDJnlkuc"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" 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=NaCy7BiX3w#?secret=5pGDJnlkuc" data-secret="5pGDJnlkuc" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</title>
		<link>https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 11 Mar 2025 08:50:26 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Harmonogram budowy]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projektowanie domu]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dom pasywny]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[faza projektowa]]></category>
		<category><![CDATA[harmonogram budowy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[koordynacja prac]]></category>
		<category><![CDATA[materiały grzewcze]]></category>
		<category><![CDATA[nowy dom]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2395</guid>

					<description><![CDATA[<p>Budowa nowego domu to idealny moment, by zadbać o komfort cieplny na lata. W tym artykule znajdziesz praktyczne porady, jak zaplanować instalację ogrzewania podłogowego, aby uniknąć opóźnień i dodatkowych kosztów. Dowiesz się, dlaczego faza projektowa jest kluczowa, jak zsynchronizować prace z harmonogramem budowy i kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu. Poznaj kroki, przykłady i błędy do uniknięcia, by Twój system działał efektywnie!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-int-dark: #0f172a;
    --rk-int-blue: #0284c7;
    --rk-int-blue-light: #f0f9ff;
    --rk-int-border: #e2e8f0;
    --rk-int-text: #334155;
    --rk-int-muted: #64748b;
    --rk-int-warn-bg: #fffbeb;
    --rk-int-warn-border: #fef3c7;
    --rk-int-warn-text: #b45309;
}

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

/* Blok Szybkiej Odpowiedzi (Featured Snippet Box) */
.rk-int-snippet-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-int-border);
    display: block;
}

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

.rk-int-direct-answer-card {
    background: var(--rk-int-blue-light);
    border-left: 6px solid var(--rk-int-blue);
    padding: 25px;
    border-radius: 4px 16px 16px 4px;
    margin-bottom: 25px;
    display: block;
}

.rk-int-direct-answer-card p {
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--rk-int-dark);
    margin: 0;
    font-weight: 600;
}

.rk-int-direct-answer-card p strong {
    color: var(--rk-int-blue);
    font-weight: 800;
}

/* Informacja o Kalkulatorach / Narzędziach */
.rk-int-tools-alert {
    background: var(--rk-int-warn-bg);
    border: 1px solid var(--rk-int-warn-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: block;
}

.rk-int-alert-text {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--rk-int-warn-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Sekcja Interaktywnego Przeglądu Zawartości */
.rk-int-interactive-workspace {
    padding: 40px 50px;
    background: #f8fafc;
    display: block;
}

.rk-int-h3 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-int-dark);
    margin: 0 0 20px 0;
    display: block;
}

/* Selektor Etapów Wiedzy (Desktop) */
.rk-int-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 25px;
}

.rk-int-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-int-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji pod rygor E-E-A-T */
}

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

/* Liniowy Panel Informacyjny dla wybranego filaru */
.rk-int-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 16px;
    padding: 30px;
    display: block;
}

.rk-int-panel-h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-int-dark);
    display: block;
}

.rk-int-panel-p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-int-text);
    margin: 0;
    display: block;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-int-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-int-snippet-zone, .rk-int-interactive-workspace {
        padding: 30px 20px;
    }
    
    .rk-int-h2 { font-size: 20px; }
    .rk-int-direct-answer-card { padding: 20px; }
    
    .rk-int-tabs-row, .rk-int-display-panel {
        display: none;
    }
    
    .rk-int-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-int-acc-item {
        border: 1px solid var(--rk-int-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-int-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-int-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-int-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-int-blue);
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger {
        background: var(--rk-int-dark);
        color: #ffffff;
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-int-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-int-text);
    }
    
    .rk-int-acc-item.active .rk-int-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu? Kompendium Inżynierskie",
    "description": "Definicja i ramy czasowe montażu ogrzewania podłogowego. Dowiedz się, dlaczego faza adaptacji projektu architektonicznego decyduje o sprawności hydraulicznej systemu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-wstep",
    "name": "Ewidencja Kotwic Edukacyjnych i Procesowych Instalacji Podłogowych",
    "description": "Kluczowe węzły decyzyjne i parametry strukturalne definiujące poprawność realizacji ogrzewania płaszczyznowego na osi czasu budowy domu jednorodzinnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "sprawnosc hydrauliczna podlogowki",
      "adaptacja projektu ogrzewania",
      "bledy wykonawcze posadzki",
      "konflikt poziomow jastrychu"
    ],
    "measurementTechnique": "Identyfikacja i klasyfikacja pojęciowa klastra tematycznego instalacji płaszczyznowych pod kątem optymalizacji wyszukiwania semantycznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Węzeł 01: Grubość warstw posadzki i rezerwa wysokościowa styropianu EPS na gruncie.",
        "Węzeł 02: Chronologia i harmonogram prac branżowych tynkarzy oraz instalatorów sanitarnych.",
        "Węzeł 03: Fizyka budowli i czas schnięcia mieszanek jastrychowych w zróżnicowanych temperaturach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-wstep",
    "name": "Interaktywny Przewodnik Zakresu Tematycznego HVAC",
    "description": "Aplikacja internetowa służąca do preselekcji i zapoznania inwestora z krytycznymi filarami inżynieryjnymi montażu ogrzewania płaszczyznowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-main-container" id="rkIntroAppRoot">
    <div class="rk-int-snippet-zone">
        <h2 class="rk-int-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</h2>
        
        <div class="rk-int-direct-answer-card">
            <p>Planowanie montażu ogrzewania podłogowego w nowym domu to strategiczny proces inżynieryjny, który bezpośrednio decyduje o sprawności hydraulicznej systemu, kosztach eksploatacji oraz komforcie cieplnym mieszkańców przez dekady. Pytanie o to, <strong>kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</strong>, ma tylko jedną poprawną odpowiedź: <strong>na etapie adaptacji projektu budowlanego (faza architektoniczno-budowlana)</strong>, przed uzyskaniem pozwolenia na budowę i przed wykonaniem pierwszych prac ziemnych. Wczesna integracja instalacji płaszczyznowej zapobiega błędom wykonawczym, takim jak zbyt niska strefa cokołowa drzwi czy niedostateczna grubość izolacji termicznej styropianu.</p>
        </div>

        <div class="rk-int-tools-alert">
            <p class="rk-int-alert-text">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
                Wskazówka inżynierska: W dalszej części tego kompendium znajdziesz interaktywne symulatory warstw posadzki, kalkulatory klimatyczne oraz aplikacje osi czasu prac budowlanych.
            </p>
        </div>
    </div>

    <div class="rk-int-interactive-workspace">
        <h3 class="rk-int-h3">Czego dowiesz się z tego przewodnika? Kliknij wybrany obszar:</h3>
        
        <div class="rk-int-tabs-row" id="rkIntroTabs">
            <button class="rk-int-tab-btn active" data-intro="1">Grubość warstw</button>
            <button class="rk-int-tab-btn" data-intro="2">Harmonogram branż</button>
            <button class="rk-int-tab-btn" data-intro="3">Warunki pogodowe</button>
        </div>

        <div class="rk-int-display-panel" id="rkIntroDisplay">
            <h4 class="rk-int-panel-h4" id="rkIntroTitle">Wymiary i rezerwa wysokościowa posadzki</h4>
            <p class="rk-int-panel-p" id="rkIntroBody">Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>.</p>
        </div>

        <div class="rk-int-mobile-accordion" id="rkIntroMobileAccordion">
            <div class="rk-int-acc-item active" data-intro="1">
                <div class="rk-int-acc-trigger">1. Wymiary i rezerwa wysokościowa posadzki</div>
                <div class="rk-int-acc-content" id="rkMIntro1"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="2">
                <div class="rk-int-acc-trigger">2. Chronologia i synchronizacja ekip na budowie</div>
                <div class="rk-int-acc-content" id="rkMIntro2"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="3">
                <div class="rk-int-acc-trigger">3. Wpływ pór roku na schnięcie i wygrzewanie betonu</div>
                <div class="rk-int-acc-content" id="rkMIntro3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych wstępu (Czyste fakty, brak lania wody, pełna stabilność kodu)
    var introDatabase = {
        1: {
            title: "Wymiary i rezerwa wysokościowa posadzki",
            body: "Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>."
        },
        2: {
            title: "Chronologia i synchronizacja ekip na budowie",
            body: "Przeanalizujemy poprawny ciąg zdarzeń: od pionów kanalizacyjnych i rekuperacji, przez tynki wewnętrzne, aż po montaż pętli. Poznasz mechaniczne ryzyka grożące przebiciem rur PEX/PE-RT. W dalszej części znajdziesz <strong>interaktywny nawigator chronologii branżowej</strong>."
        },
        3: {
            title: "Wpływ pór roku na schnięcie i wygrzewanie betonu",
            body: "Zrozumiesz, jak temperatura otoczenia modyfikuje czas schnięcia posadzki z normowych 28 dni do nawet 60 dni zimą. Przeliczymy litry wody technologicznej i zbadamy protokół wygrzewania płyty wg norm ITB. Niżej przygotowałem dla Ciebie <strong>symulator warunków klimatycznych jastrychu</strong>."
        }
    };

    var dTitle = document.getElementById('rkIntroTitle');
    var dBody = document.getElementById('rkIntroBody');
    var tabButtons = document.querySelectorAll('#rkIntroTabs .rk-int-tab-btn');

    // Funkcja aktualizacji panelu desktopowego (Brak jakichkolwiek animacji fade/slide)
    function aktualizujPanelIntro(id) {
        if (dTitle) { dTitle.innerText = introDatabase[id].title; }
        if (dBody) { dBody.innerHTML = introDatabase[id].body; }
    }

    // Inicjalizacja pierwszej karty na starcie
    aktualizujPanelIntro(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja natychmiastowego indeksowania przez boty)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMIntro' + i);
        if (mBox) {
            mBox.innerHTML = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + introDatabase[i].body + '</p>';
        }
    }

    // Obsługa zakładek na Desktopie
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-intro');
            aktualizujPanelIntro(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak operatorów podwójnego ampersandu)
    var accItems = document.querySelectorAll('#rkIntroMobileAccordion .rk-int-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-int-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-lay-dark: #0f172a;
    --rk-lay-blue: #0284c7;
    --rk-lay-border: #e2e8f0;
    --rk-lay-text: #334155;
    --rk-lay-muted: #64748b;
    --rk-lay-success: #10b981;
    --rk-lay-danger: #ef4444;
    --rk-lay-danger-light: #fca5a5;
    --rk-lay-bg-main: #f8fafc;
}

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

/* Wstęp */
.rk-lay-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-lay-border);
}

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

.rk-lay-h3 {
    font-size: 15.5px;
    color: var(--rk-lay-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Obszar Interaktywny */
.rk-lay-workspace {
    padding: 40px 50px;
    background: var(--rk-lay-bg-main);
}

/* Karta Suwaka */
.rk-lay-slider-card {
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 20px;
    padding: 35px 25px;
    margin-bottom: 40px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

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

.rk-lay-range {
    width: 100%;
    max-width: 600px;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    cursor: pointer;
}

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

.rk-lay-height-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    margin-top: 15px;
}

/* DYNAMICZNY STOS WARSTW (Zastępuje SVG) */
.rk-lay-dom-stack {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 500px;
    margin: 0 auto 40px auto;
    border: 2px solid var(--rk-lay-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.08);
}

.rk-stack-layer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 800;
    font-size: 14px;
    color: #ffffff;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    padding: 0 15px;
    box-sizing: border-box;
}

.rk-stack-layer span {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.9;
    margin-top: 2px;
}

/* POPRAWIONA WYSOKOŚĆ WARSTWY GÓRNEJ - brak ucinania liter */
.rk-stack-finish { background: #64748b; min-height: 48px; }
.rk-stack-screed { background: var(--rk-lay-blue); height: 90px; }
.rk-stack-styro { background: var(--rk-lay-success); height: 130px; }
.rk-stack-base { background: #cbd5e1; color: var(--rk-lay-dark); text-shadow: none; min-height: 48px; border-top: 1px solid #94a3b8; }

/* Lista Parametrów - Liniowy Układ Pionowy */
.rk-lay-metrics-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-metric-row {
    display: flex;
    flex-direction: column;
    padding: 20px 25px;
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 14px;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-lay-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    line-height: 1.4;
}

/* Treść Techniczna */
.rk-lay-article {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-lay-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-lay-text);
}

.rk-lay-article p { margin: 0 0 20px 0; }
.rk-lay-article p:last-child { margin: 0; }
.rk-lay-article strong { color: var(--rk-lay-dark); font-weight: 700; }

@media (max-width: 768px) {
    .rk-lay-header, .rk-lay-workspace, .rk-lay-article { padding: 30px 20px; }
    .rk-lay-h2 { font-size: 22px; }
    .rk-lay-dom-stack { border-radius: 8px; }
    .rk-metric-row { padding: 16px 20px; }
    .rk-metric-val { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-grubosc-warstw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?",
    "description": "Zrozumienie zjawiska konfliktu poziomów posadzki. Narzędzie obliczeniowe rezerwy wysokościowej od surowego betonu do wykończenia (16-22 cm) na bazie normy PN-EN 1264-4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-grubosc-warstw",
    "name": "Baza Danych Normatywnych Przekrojów Posadzkowych z Ogrzewaniem Płaszczyznowym",
    "description": "Zestawienie korelacji grubości termoizolacji EPS, oporu cieplnego oraz warstwy dociskowej jastrychu w odniesieniu do dostępnej wysokości architektonicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wysokość posadzki z ogrzewaniem podłogowym",
      "konflikt poziomów drzwi i okien",
      "minimalna grubość styropianu na gruncie",
      "pękanie wylewki cementowej naprężenia",
      "współczynnik przewodzenia ciepła lambda podłogówka"
    ],
    "measurementTechnique": "Obliczenia strukturalne i fizykalne wymogów normy PN-EN 1264-4 dotyczące izolacyjności R powyżej 1,25 m2 K/W.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rezerwa Optymalna: 16-22 cm pozwala na 100-150 mm izolacji EPS (R >= 3,50) oraz bezpieczny jastrych 50-60 mm.",
        "Rezerwa Krytyczna: 10-12 cm wymusza stosowanie mat slim 20-40 mm (R = 0,55-1,10) oraz cienkowarstwowych mas, drastycznie pogarszając COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-grubosc-warstw",
    "name": "Dynamiczny Symulator Warstw Posadzkowych i Rezerwy Architektonicznej",
    "description": "Narzędzie internetowe pozwalające na interaktywną wizualizację zmian grubości wylewki i izolacji w stosunku do dostępnej rezerwy wysokościowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-layers-container" id="rkLayAppRoot">
    <div class="rk-lay-header">
        <h2 class="rk-lay-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?</h2>
        <h3 class="rk-lay-h3">Spóźniona decyzja o podłogówce to najczęstsza przyczyna tzw. konfliktu poziomów. Przesuń suwak, aby na żywo zobaczyć, jak zmiany w całkowitej rezerwie wysokościowej wpływają na parametry betonu i styropianu ukrytych pod Twoją posadzką.</h3>
    </div>

    <div class="rk-lay-workspace">
        <div class="rk-lay-slider-card">
            <h4 class="rk-lay-h4">Ustal dostępną wysokość od surowego betonu do gotowej podłogi:</h4>
            <input type="range" min="10" max="22" value="20" class="rk-lay-range" id="rkLayRangeControl">
            <div class="rk-lay-height-val" id="rkLayValueText">20 cm</div>
        </div>

        <div class="rk-lay-dom-stack" id="rkLayStack">
            <div class="rk-stack-layer rk-stack-finish">
                Wykończenie (Płytki/Panele) <span>10-15 mm</span>
            </div>
            <div class="rk-stack-layer rk-stack-screed" id="stkScreed">
                Jastrych grzewczy 60 mm <span>(Rura ø16 wewnątrz)</span>
            </div>
            <div class="rk-stack-layer rk-stack-styro" id="stkStyro">
                Izolacja cieplna EPS 125 mm <span>(Opór zoptymalizowany)</span>
            </div>
            <div class="rk-stack-layer rk-stack-base">
                Płyta konstrukcyjna (Chudy beton)
            </div>
        </div>

        <div class="rk-lay-metrics-list">
            <div class="rk-metric-row">
                <div class="rk-metric-label">Grubość izolacji termicznej (EPS na gruncie)</div>
                <div class="rk-metric-val" id="valIzolacja">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Opór cieplny izolacji (R-lambda)</div>
                <div class="rk-metric-val" id="valOpor">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Średnica rury i rozstaw pętli</div>
                <div class="rk-metric-val" id="valRura">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wymagany jastrych nad rurą</div>
                <div class="rk-metric-val" id="valWylewka">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wydajność pompy ciepła (COP)</div>
                <div class="rk-metric-val" id="valCop">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Szacunkowy koszt modyfikacji i poprawek</div>
                <div class="rk-metric-val" id="valKoszty">Wczytywanie danych&#8230;</div>
            </div>
        </div>
    </div>

    <div class="rk-lay-article">
        <p>Najlepszy moment na planowanie grubości warstw podłogi przypada na etap projektowania architektonicznego, przed wylaniem płyty fundamentowej lub stropów, ponieważ system wymaga rezerwy wysokościowej wynoszącej minimum <strong>16 cm do 22 cm</strong> od surowego betonu do gotowej posadzki. Zgodnie z normą <strong>PN-EN 1264-4</strong>, minimalna grubość izolacji cieplnej na gruncie dla współczynnika przewodzenia ciepła lambda = 0,035 W/(m·K) musi wynosić <strong>100 mm</strong>, aby opór cieplny izolacji R-lambda wynosił co najmniej <strong>1,25 m²·K/W</strong>. Spóźnienie się z tą decyzją skutkuje koniecznością odchudzenia izolacji, co drastycznie zwiększa straty ciepła do gruntu.</p>
        
        <p>Konsekwencją zignorowania tego parametru na etapie projektu architektonicznego jest tzw. <strong>„konflikt poziomów”</strong>. Jeśli inwestor podejmie decyzję o podłogówce po wylaniu otworów drzwiowych i okiennych przy założeniu tradycyjnych grzejników (gdzie wylewka ma często tylko 10-12 cm wraz ze styropianem), brakuje przestrzeni na poprawną strukturę grzewczą. Skrócenie wysokości jastrychu poniżej <strong>35 mm</strong> nad górną krawędzią rury (dla jastrychów cementowych według PN-EN 1264) grozi pękaniem posadzki pod wpływem naprężeń termicznych i powstawaniem liniowych pęknięć wzdłuż tras rur.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('rkLayRangeControl');
    var valueText = document.getElementById('rkLayValueText');
    
    // Warstwy wizualne w stosie
    var stkScreed = document.getElementById('stkScreed');
    var stkStyro = document.getElementById('stkStyro');

    // Metryki tabelaryczne
    var valIzolacja = document.getElementById('valIzolacja');
    var valOpor = document.getElementById('valOpor');
    var valRura = document.getElementById('valRura');
    var valWylewka = document.getElementById('valWylewka');
    var valCop = document.getElementById('valCop');
    var valKoszty = document.getElementById('valKoszty');

    function przeliczParametry(wysokosc) {
        if (wysokosc >= 16) {
            // STAN OPTYMALNY (Faza projektowa)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-success)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "90px";
            stkScreed.style.backgroundColor = "var(--rk-lay-blue)";
            stkScreed.innerHTML = "Jastrych grzewczy 50-60 mm <br><span>(Rura ø16 wewnątrz)</span>";
            
            stkStyro.style.height = "130px";
            stkStyro.style.backgroundColor = "var(--rk-lay-success)";
            stkStyro.innerHTML = "Izolacja cieplna EPS 100-150 mm <br><span>(Opór zoptymalizowany)</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "100 - 150 mm (Zgodnie z normą WT2021)";
            valIzolacja.style.color = "var(--rk-lay-success)";
            
            valOpor.innerText = "Większy lub równy 3,50 m²·K/W";
            valRura.innerText = "ø16 mm, rozstaw 100 / 150 mm";
            valWylewka.innerText = "50 mm (Anhydryt) lub 60 mm (Beton)";
            valCop.innerText = "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30°C)";
            valKoszty.innerText = "0,00 PLN (Brak konfliktu poziomów)";
            valKoszty.style.color = "var(--rk-lay-dark)";
        } else {
            // STAN KRYTYCZNY (Decyzja przed wylewkami)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-danger)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkScreed.style.backgroundColor = "var(--rk-lay-danger)";
            stkScreed.innerHTML = "Jastrych cienkowarstwowy < 35 mm <br><span>(RYZYKO SPĘKAŃ)</span>";
            
            stkStyro.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkStyro.style.backgroundColor = "var(--rk-lay-danger-light)";
            stkStyro.innerHTML = "Izolacja typu SLIM 20-40 mm <br><span style='color:var(--rk-lay-danger);'>STRATY DO GRUNTU!</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "20 - 40 mm (Mata systemowa slim)";
            valIzolacja.style.color = "var(--rk-lay-danger)";
            
            valOpor.innerText = "0,55 - 1,10 m²·K/W (Skrajne straty ciepła)";
            valRura.innerText = "ø10 / ø12 mm (Systemy renowacyjne)";
            valWylewka.innerText = "15 - 20 mm (Specjalne, drogie masy samopoziomujące)";
            valCop.innerText = "Niskie COP (3,0 - 3,4 przy zasilaniu ≥ 45°C)";
            valKoszty.innerText = "15 000 - 35 000 PLN (Frezowanie, drogie masy, kucie otworów)";
            valKoszty.style.color = "var(--rk-lay-danger)";
        }
    }

    // Pierwsze załadowanie
    przeliczParametry(20);

    // Nasłuch ruchu suwaka
    rangeInput.addEventListener('input', function() {
        przeliczParametry(parseInt(this.value, 10));
    });
});
</script>



<style>
:root {
    --rk-hrm-dark: #0f172a;
    --rk-hrm-blue: #0284c7;
    --rk-hrm-blue-light: #f0f9ff;
    --rk-hrm-border: #e2e8f0;
    --rk-hrm-text: #334155;
    --rk-hrm-muted: #64748b;
    --rk-hrm-success: #10b981;
    --rk-hrm-danger: #ef4444;
}

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

/* Sekcja Wstępna */
.rk-hrm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-hrm-border);
}

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

.rk-hrm-h3 {
    font-size: 15.5px;
    color: var(--rk-hrm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-hrm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Poziomy Selektor Kroków - Pełna szerokość na Desktopie */
.rk-hrm-desktop-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-hrm-tab-btn {
    padding: 16px 10px;
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-hrm-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

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

.rk-hrm-tab-btn.active {
    background: var(--rk-hrm-blue);
    border-color: var(--rk-hrm-blue);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(2, 132, 199, 0.4);
}

.rk-hrm-tab-btn .rk-hrm-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-hrm-blue);
    font-weight: 700;
}

.rk-hrm-tab-btn.active .rk-hrm-badge {
    color: #ffffff;
    opacity: 0.8;
}

/* Liniowy Panel Informacyjny (Desktop) - Zmodyfikowany pod pełną szerokość */
.rk-hrm-full-display {
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 20px;
    padding: 35px 45px;
    display: block;
}

/* Zawartość opisu etapu */
.rk-hrm-display-content {
    display: flex;
    flex-direction: column;
}

.rk-hrm-h4 {
    margin: 0 0 6px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hrm-dark);
}

.rk-hrm-status-tag {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.rk-hrm-status-tag.safe { color: var(--rk-hrm-success); }
.rk-hrm-status-tag.danger { color: var(--rk-hrm-danger); }

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

/* Akordeon Mobilny (Ukryty na Desktopie) */
.rk-hrm-mobile-accordion {
    display: none;
}

/* Głęboki Akapit Tekstowy Liniowy pod Aplikacją */
.rk-hrm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-hrm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-hrm-text);
}

.rk-hrm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-hrm-deep-content p:last-child {
    margin: 0;
}

.rk-hrm-deep-content strong {
    font-weight: 700;
    color: var(--rk-hrm-dark);
}

@media (max-width: 768px) {
    .rk-hrm-intro-zone, .rk-hrm-app-body, .rk-hrm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-hrm-h2 { font-size: 20px; }
    
    .rk-hrm-desktop-nav, .rk-hrm-full-display {
        display: none;
    }
    
    .rk-hrm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-hrm-acc-card {
        border: 1px solid var(--rk-hrm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-hrm-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-hrm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-hrm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-hrm-blue);
        font-weight: 500;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger {
        border-bottom: 1px solid var(--rk-hrm-border);
        color: var(--rk-hrm-blue);
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger::after {
        content: '−';
    }
    
    .rk-hrm-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-harmonogram",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?",
    "description": "Chronologia montażu ogrzewania płaszczyznowego. Analiza ryzyk mechanicznych: kolizje z tynkami, instalacją wodną i brakiem stolarki otworowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-harmonogram",
    "name": "Matryca Sekwencji Instalacyjnych i Tolerancji Podłoża HVAC",
    "description": "Zbiór danych inżynieryjnych określający dopuszczalne tolerancje nierówności chudego betonu (max 5 mm na 2 m) oraz krytyczne punkty styku branż budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja podłogówki a tynki",
      "kolejność prac instalacyjnych podłogówka",
      "tolerancja nierówności podłoża norma",
      "degradacja rur pex promieniowanie uv",
      "piony kanalizacyjne pod chudziakiem"
    ],
    "measurementTechnique": "Weryfikacja sekwencyjna i rygorystyczna kontrola chronologii procesów wykonawczych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sekwencja Poprawna: Piony sanitarne i rekuperacja na chudziaku -> Tynki i stolarka -> Styropian i rury grzewcze -> Próba wodna -> Jastrych.",
        "Zagrożenie Mechaniczne: Układanie pętli przed tynkami lub instalacją sanitarną generuje ryzyko przebicia ścianek przewodów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-harmonogram",
    "name": "Chronologiczny Nawigator Branż Budowlanych",
    "description": "Narzędzie interaktywne dedykowane do analizy punktów kolizyjnych oraz zarządzania harmonogramem prac instalacyjnych w budynkach jednorodzinnych.",
    "applicationCategory": "ProjectManagementApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hrm-main-container" id="rkHarmonogramAppRoot">
    <div class="rk-hrm-intro-zone">
        <h2 class="rk-hrm-h2">Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?</h2>
        <h3 class="rk-hrm-h3">Montaż rur ogrzewania podłogowego wymaga idealnej synchronizacji z pozostałymi branżami. Przełam liniowy chaos na budowie – klikaj poszczególne etapy w poniższym asystencie chronologii, aby sprawdzić poprawne sekwencje inżynierskie oraz konsekwencje błędów.</h3>
    </div>

    <div class="rk-hrm-app-body">
        <div class="rk-hrm-desktop-nav" id="rkHrmTabs">
            <button class="rk-hrm-tab-btn active" data-hrm="1">
                <span class="rk-hrm-badge">Faza 01</span>
                <span>Instalacje Sanitarne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="2">
                <span class="rk-hrm-badge">Faza 02</span>
                <span>Tynki Wewnętrzne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="3">
                <span class="rk-hrm-badge">Faza 03</span>
                <span>Stolarka Otworowa</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="4">
                <span class="rk-hrm-badge">Faza 04</span>
                <span>Rozłożenie Pętli</span>
            </button>
        </div>

        <div class="rk-hrm-full-display" id="rkHrmDisplayPanel">
            <div class="rk-hrm-display-content">
                <h4 class="rk-hrm-h4" id="rkHrmTitle">Piony kanalizacyjne i instalacje wodne</h4>
                <div class="rk-hrm-status-tag safe" id="rkHrmStatus">Kolejność: Bezwzględnie Przed Podłogówką</div>
                <p class="rk-hrm-p-text" id="rkHrmBody">Wszystkie rury sanitarne (ciepła i zimna woda, cyrkulacja, kanalizacja) oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu.</p>
            </div>
        </div>

        <div class="rk-hrm-mobile-accordion" id="rkHrmMobileAccordion">
            <div class="rk-hrm-acc-card active" data-hrm="1">
                <div class="rk-hrm-acc-trigger">1. Piony kanalizacyjne i instalacje wodne</div>
                <div class="rk-hrm-acc-content" id="rkMHrm1"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="2">
                <div class="rk-hrm-acc-trigger">2. Tynkowanie ścian wewnętrznych</div>
                <div class="rk-hrm-acc-content" id="rkMHrm2"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="3">
                <div class="rk-hrm-acc-trigger">3. Zamknięcie stolarki (Okna i Drzwi)</div>
                <div class="rk-hrm-acc-content" id="rkMHrm3"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="4">
                <div class="rk-hrm-acc-trigger">4. Układanie rur grzewczych i test szczelności</div>
                <div class="rk-hrm-acc-content" id="rkMHrm4"></div>
            </div>
        </div>
    </div>

    <div class="rk-hrm-deep-content">
        <p>Montaż rur ogrzewania podłogowego należy przeprowadzić w stanie surowym zamkniętym, bezwzględnie po wykonaniu pionów kanalizacyjnych, instalacji wodnej (ZWK, CWU, cyrkulacja) oraz przewodów rekuperacji prowadzonych w podłodze, ale przed wykonaniem tynków wewnętrznych lub bezpośrednio po ich całkowitym wyschnięciu. Norma <strong>PN-EN 1264-4</strong> jednoznacznie wskazuje, że przed rozłożeniem izolacji podłoże musi być uprzątnięte, równe i suche, a dopuszczalna tolerancja nierówności podłoża wynosi maksymalnie <strong>5 mm</strong> na długości łaty <strong>2 m</strong>. Montaż pętli grzewczych przed instalacjami sanitarnymi grozi mechanicznym uszkodzeniem przewodów przez pozostałe ekipy wykonawcze.</p>
        
        <p>Oto krytyczne konsekwencje zaburzenia tego harmonogramu technologicznego:</p>
        
        <p><strong>Prowadzenie instalacji wodnych nad rurami podłogówki:</strong> Taki błąd generuje niekontrolowane zyski lub straty ciepła pomiędzy układami i drastycznie zaburza stabilność hydrauliczną pętli. Wszystkie rury sanitarne muszą iść bezpośrednio na chudym betonie, skryte w pierwszej, wyrównawczej warstwie styropianu.</p>
        
        <p><strong>Tynkowanie po ułożeniu pętli bez wylanej posadzki:</strong> Spadające z wysokości ciężkie grudy zaprawy tynkarskiej, zanieczyszczenia chemiczne oraz rusztowania rozstawiane bezpośrednio na odsłoniętych rurach mogą łatwo przebić ściankę przewodu grzewczego. Tego typu uszkodzenia ujawniają się często dopiero podczas końcowej próby ciśnieniowej lub – co generuje gigantyczne koszty – dopiero po zalaniu i związaniu jastrychu betonowego.</p>
        
        <p><strong>Brak szczelności budynku (Stan otwarty):</strong> Układanie instalacji płaszczyznowej w budynku pozbawionym okien i drzwi zewnętrznych naraża rury na bezpośrednie, długotrwałe promieniowanie UV, co prowadzi do przyspieszonej degradacji struktury polimeru PE-RT/PEX. Dodatkowo generuje to skrajne ryzyko zamarznięcia wody wewnątrz przewodów po przeprowadzeniu obowiązkowej, normowej próby ciśnieniowej w okresie jesienno-zimowym.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych chronologii (bez obrazków SVG)
    var hrmDatabase = {
        1: {
            title: "Piony kanalizacyjne i instalacje wodne",
            status: "Kolejność: Bezwzględnie Przed Podłogówką",
            body: "Wszystkie rury sanitarne oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu."
        },
        2: {
            title: "Tynkowanie ścian wewnętrznych",
            status: "Kolejność: Rekomendowane Przed Rozłożeniem Rur",
            body: "Wykonanie tynków przed układaniem pętli eliminuje ryzyko mechanicznego uszkodzenia tworzywa przez spadające zaprawy lub rusztowania. Jeśli tynkujesz po ułożeniu rur, posadzka musi być już bezwzględnie wylana i związana, aby stanowiła monolit ochronny."
        },
        3: {
            title: "Zamknięcie stolarki (Okna i Drzwi)",
            status: "Kolejność: Stan Surowy Zamknięty (Wymagany)",
            body: "Montaż okien i drzwi chroni instalację przed wiatrem, mrozem oraz promieniowaniem UV, które degraduje polimery PEX/PE-RT. Budynek musi być szczelny, aby po próbie wodnej instalacja nie zamarzła podczas nagłych przymrozków."
        },
        4: {
            title: "Układanie rur grzewczych i test szczelności",
            status: "Kolejność: Ostatni Etap Przed Wylewaniem Jastrychu",
            body: "Po sprzątnięciu podłoża i ułożeniu izolacji, rury montuje się w oparciu o projekt hydrauliczny. Etap ten wieńczy obowiązkowa próba ciśnieniowa wodą (6 bar przez 24h). Zalewanie jastrychem odbywa się zawsze, gdy rury są pod pełnym ciśnieniem."
        }
    };

    var dTitle = document.getElementById('rkHrmTitle');
    var dStatus = document.getElementById('rkHrmStatus');
    var dBody = document.getElementById('rkHrmBody');
    var tabButtons = document.querySelectorAll('#rkHrmTabs .rk-hrm-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelHrm(id) {
        if (dTitle) { dTitle.innerText = hrmDatabase[id].title; }
        if (dStatus) { 
            dStatus.innerText = hrmDatabase[id].status;
            dStatus.className = "rk-hrm-status-tag safe";
        }
        if (dBody) { dBody.innerHTML = hrmDatabase[id].body; }
    }

    // Inicjalizacja startowa dla pierwszej zakładki
    aktualizujPanelHrm(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja indeksowania tekstu)
    for (var i = 1; i <= 4; i++) {
        var mContentBox = document.getElementById('rkMHrm' + i);
        if (mContentBox) {
            var html = '<div style="font-size:12px; font-weight:700; text-transform:uppercase; margin-bottom:8px; color:#0284c7;">' + hrmDatabase[i].status + '</div>';
            html += '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + hrmDatabase[i].body + '</p>';
            mContentBox.innerHTML = html;
        }
    }

    // Obsługa zakładek desktopowych
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-hrm');
            aktualizujPanelHrm(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkHrmMobileAccordion .rk-hrm-acc-card');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-hrm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-clm-dark: #0f172a;
    --rk-clm-blue: #0284c7;
    --rk-clm-blue-light: #f0f9ff;
    --rk-clm-border: #e2e8f0;
    --rk-clm-text: #334155;
    --rk-clm-muted: #64748b;
    --rk-clm-safe: #10b981;
    --rk-clm-safe-bg: #f0fdf4;
    --rk-clm-danger: #ef4444;
    --rk-clm-danger-bg: #fef2f2;
}

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

/* Nagłówek i Opis */
.rk-clm-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-clm-border);
}

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

.rk-clm-h3 {
    font-size: 15.5px;
    color: var(--rk-clm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-clm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Kontroler Suwaka - Pełna szerokość */
.rk-clm-interactive-panel {
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 20px;
    padding: 35px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-clm-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-clm-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-clm-slider-container {
    max-width: 600px;
    margin: 0 auto 20px auto;
    text-align: center;
}

.rk-clm-range {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    cursor: pointer;
}

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

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

.rk-clm-current-temp {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-clm-dark);
    margin-top: 15px;
}

/* Liniowa Prezentacja Wyników Termicznych */
.rk-clm-results-layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 16px;
    padding: 30px;
    align-items: center;
}

/* SVG Stanu Klimatycznego */
.rk-clm-svg-box {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-clm-blue-light);
    border-radius: 12px;
    padding: 20px;
    height: 140px;
}

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

/* Wyniki analityczne */
.rk-clm-indicators {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-clm-row {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed var(--rk-clm-border);
    padding-bottom: 10px;
    font-size: 14.5px;
}

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

.rk-clm-lbl {
    color: var(--rk-clm-muted);
    font-weight: 500;
}

.rk-clm-val {
    font-weight: 800;
    color: var(--rk-clm-dark);
}

.rk-clm-val.alert-text {
    color: var(--rk-clm-danger);
}

.rk-clm-val.safe-text {
    color: var(--rk-clm-safe);
}

/* Akapit z pełną treścią inżynieryjną */
.rk-clm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-clm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-clm-text);
}

.rk-clm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-clm-deep-content p:last-child {
    margin: 0;
}

.rk-clm-deep-content strong {
    color: var(--rk-clm-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-clm-header-zone, .rk-clm-app-body, .rk-clm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-clm-h2 { font-size: 20px; }
    .rk-clm-results-layout { grid-template-columns: 1fr; gap: 25px; padding: 20px; }
    .rk-clm-svg-box { height: 100px; }
    .rk-clm-row { flex-direction: column; gap: 4px; }
    .rk-clm-val { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-klimat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?",
    "description": "Analiza wpływu warunków klimatycznych na montaż ogrzewania podłogowego. Normy ITB oraz protokoły pierwszego wygrzewania jastrychów cementowych i anhydrytowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-klimat",
    "name": "Tabela zależności hydratacji i wysychania jastrychów od temperatury otoczenia",
    "description": "Zbiór danych inżynieryjnych określający czas naturalnego wiązania posadzek monolitycznych, poziomy emisji wilgoci technologicznej oraz ryzyko porażenia biologicznego ścian.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalne okno pogodowe podłogówka",
      "czas wysychania jastrychu cementowego",
      "instrukcja ITB nr 422 2006",
      "emisja wilgoci technologicznej z posadzki",
      "protokół wygrzewania PN-EN 1264-4"
    ],
    "measurementTechnique": "Empiryczna i normatywna ocena procesów odparowania wody z mas jastrychowych w zróżnicowanych warunkach termiczno-wilgotnościowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Warunki letnie (powyżej 20 stopni): Czas schnięcia 28 dni, wilgotność względna poniżej 65 procent, ryzyko biologiczne krytycznie niskie.",
        "Warunki zimowe (poniżej 5 stopni): Czas schnięcia wydłużony do 60 dni, odparowanie zablokowane, ryzyko kondensacji i pleśni skrajnie wysokie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-klimat",
    "name": "Symulator Wilgoci Technologicznej i Wiązania Posadzek",
    "description": "Narzędzie interaktywne dedykowane do symulacji czasu schnięcia jastrychów oraz określania poziomu ryzyka kondensacji wilgoci w budynkach w zależności od temperatury otoczenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-climate-main-container" id="rkClimateAppRoot">
    <div class="rk-clm-header-zone">
        <h2 class="rk-clm-h2">Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?</h2>
        <h3 class="rk-clm-h3">Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak wybór konkretnego miesiąca niesie za sobą potężne konsekwencje fizykalne dla budynku. Użyj poniższego suwaka temperatury zewnętrznej, aby sprawdzić, jak klimat modyfikuje czas schnięcia posadzki i stabilność biologiczną konstrukcji.</h3>
    </div>

    <div class="rk-clm-app-body">
        <div class="rk-clm-interactive-panel">
            <div class="rk-clm-h4">Ustaw średnią temperaturę dobową wewnątrz budynku podczas wylewania posadzki:</div>
            <div class="rk-clm-slider-container">
                <input type="range" min="3" max="25" value="20" class="rk-clm-range" id="rkTempSlider">
                <div class="rk-clm-current-temp" id="rkTempDisplay">20°C</div>
            </div>
        </div>

        <div class="rk-clm-results-layout" id="rkClmResultsBlock">
            <div class="rk-clm-svg-box" id="rkClmSvgFrame">
                </div>
            
            <div class="rk-clm-indicators">
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Rekomendowane okno pogodowe:</span>
                    <span class="rk-clm-val" id="clmStatus">Optymalne (Maj &#8211; Wrzesień)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Wymagany czas schnięcia (Jastrych cementowy 60mm):</span>
                    <span class="rk-clm-val" id="clmTime">28 dni (Norma ITB)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Zagrożenie kondensacją i porażeniem biologicznym:</span>
                    <span class="rk-clm-val" id="clmRisk">Brak ryzyka</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Ekonomia pierwszego uruchomienia ogrzewania:</span>
                    <span class="rk-clm-val" id="clmEcon">Wysoka sprawność źródła</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-clm-deep-content">
        <p>Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak optymalne okno pogodowe przypada na okres od maja do września, kiedy temperatura otoczenia i podłoża stabilnie utrzymuje się powyżej <strong>+5°C</strong> dla jastrychów cementowych oraz <strong>+10°C</strong> dla anhydrytowych. Zgodnie z normą <strong>Instrukcji ITB nr 422/2006</strong>, proces naturalnego wiązania i wysychania jastrychu cementowego o grubości 60 mm wymaga minimum <strong>28 dni</strong> w warunkach wilgotności względnej powietrza poniżej 65%.</p>
        
        <p>Technologiczny ciąg zdarzeń musi przebiegać w niezmiennej sekwencji: <strong>Montaż instalacji -> Próba ciśnieniowa (wodna) -> Wylanie jastrychu -> Wiązanie: 28 dni w temperaturze pow. +5°C -> Wygrzewanie płyty</strong>. Próba skrócenia tego procesu lub ignorowanie warunków klimatycznych bezpośrednio uderza w strukturę budynku.</p>
        
        <p>Wykonanie wylewek w listopadzie lub grudniu przy braku uruchomionego źródła ciepła drastycznie wydłuża proces wysychania z 28 dni do nawet <strong>50-60 dni</strong>. Wilgoć technologiczna z posadzki (która dla domu o powierzchni 150 m² wynosi około <strong>1500-2000 litrów wody</strong> wprowadzonej w strukturę budynku) zamiast swobodnie odparować, zaczyna kondensować na chłodnych ścianach i stropach, prowadząc do nieodwracalnego porażenia biologicznego budynku (rozwój grzybów i pleśni w warstwie tynków).</p>
        
        <p>Ponadto, uruchomienie procedury pierwszego wygrzewania jastrychu (zgodnie z protokołem wygrzewania według normy <strong>PN-EN 1264-4</strong>) wymaga zasilenia instalacji wodą o temperaturze <strong>+20°C</strong> przez pierwsze 3 dni, a następnie sukcesywnego podnoszenia temperatury o 5°C na dobę aż do wartości projektowej. Realizacja tego procesu zimą, w nieocieplonym i wychłodzonym budynku, generuje gigantyczne straty energii i jest technicznie skrajnie utrudniona, drastycznie obniżając sprawność startową całego systemu.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkTempSlider');
    var display = document.getElementById('rkTempDisplay');
    var svgFrame = document.getElementById('rkClmSvgFrame');
    
    var clmStatus = document.getElementById('clmStatus');
    var clmTime = document.getElementById('clmTime');
    var clmRisk = document.getElementById('clmRisk');
    var clmEcon = document.getElementById('clmEcon');
    var resultsBlock = document.getElementById('rkClmResultsBlock');

    // Ikony SVG jako czyste łańcuchy tekstowe
    var svgSun = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>';
    var svgCloud = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>';
    var svgSnow = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><line x1="12" y1="2" x2="12" y2="22"/><line x1="2" y1="12" x2="22" y2="12"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/><line x1="4.93" y1="19.07" x2="19.07" y2="4.93"/></svg>';

    function przeliczKlimat(temp) {
        // Bezpieczna struktura instrukcji warunkowych bez operatorów podwójnego ampersandu
        if (temp >= 15) {
            // WARUNKI LETNIE / OPTYMALNE
            display.innerText = temp + "°C";
            display.style.color = "#10b981";
            if (svgFrame) { svgFrame.innerHTML = svgSun; svgFrame.style.background = "#f0fdf4"; }
            
            clmStatus.innerText = "Optymalne (Maj - Wrzesień)";
            clmStatus.className = "rk-clm-val safe-text";
            clmTime.innerText = "28 dni (Zgodnie z instrukcją ITB)";
            clmRisk.innerText = "Krytycznie niskie. Swobodna ewaporacja.";
            clmRisk.className = "rk-clm-val safe-text";
            clmEcon.innerText = "Maksymalna (Naturalne wygrzewanie)";
            clmEcon.className = "rk-clm-val safe-text";
        } else {
            if (temp >= 8) {
                // WARUNKI PRZEJŚCIOWE
                display.innerText = temp + "°C";
                display.style.color = "#f59e0b";
                if (svgFrame) { svgFrame.innerHTML = svgCloud; svgFrame.style.background = "#fffbeb"; }
                
                clmStatus.innerText = "Wymagana ostrożność (Październik)";
                clmStatus.className = "rk-clm-val";
                clmTime.innerText = "35 - 42 dni (Wydłużone schnięcie)";
                clmRisk.innerText = "Umiarkowane. Wymagana intensywna wentylacja.";
                clmRisk.className = "rk-clm-val";
                clmEcon.innerText = "Średnia (Wymuszone dogrzewanie budynku)";
                clmEcon.className = "rk-clm-val";
            } else {
                // WARUNKI ZIMOWE / KRYTYCZNE
                display.innerText = temp + "°C";
                display.style.color = "#ef4444";
                if (svgFrame) { svgFrame.innerHTML = svgSnow; svgFrame.style.background = "#fef2f2"; }
                
                clmStatus.innerText = "Ryzykowne (Listopad - Grudzień)";
                clmStatus.className = "rk-clm-val alert-text";
                clmTime.innerText = "50 - 60 dni (Zablokowana hydratacja)";
                clmRisk.innerText = "Skrajnie wysokie! Ryzyko pleśni i grzybów (1500L wody).";
                clmRisk.className = "rk-clm-val alert-text";
                clmEcon.innerText = "Skrajnie niska (Kosztowne ogrzewanie technologiczne)";
                clmEcon.className = "rk-clm-val alert-text";
            }
        }
    }

    // Inicjalizacja startowa dla 20 stopni
    przeliczKlimat(20);

    // Słuchacz suwaka
    slider.addEventListener('input', function() {
        var t = parseInt(this.value, 10);
        przeliczKlimat(t);
    });
});
</script>



<style>
:root {
    --rk-prm-dark: #0f172a;
    --rk-prm-blue: #0284c7;
    --rk-prm-blue-light: #f0f9ff;
    --rk-prm-border: #e2e8f0;
    --rk-prm-text: #334155;
    --rk-prm-muted: #64748b;
    --rk-prm-optimum: #10b981;
    --rk-prm-compromise: #f59e0b;
    --rk-prm-critical: #ef4444;
}

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

/* Sekcja Wstępna */
.rk-prm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prm-border);
}

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

.rk-prm-h3 {
    font-size: 15.5px;
    color: var(--rk-prm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji Symulatora */
.rk-prm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowe Menu Wyboru - Poziome Zakładki */
.rk-prm-desktop-navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 35px;
}

.rk-prm-nav-tab {
    padding: 18px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-prm-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.25s ease;
}

.rk-prm-nav-tab:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.rk-prm-nav-tab[data-stage="optimum"].active {
    border-color: var(--rk-prm-optimum);
    background: #f0fdf4;
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.15);
}

.rk-prm-nav-tab[data-stage="compromise"].active {
    border-color: var(--rk-prm-compromise);
    background: #fffbeb;
    box-shadow: 0 10px 15px -3px rgba(245, 158, 11, 0.15);
}

.rk-prm-nav-tab[data-stage="critical"].active {
    border-color: var(--rk-prm-critical);
    background: #fef2f2;
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.15);
}

.rk-prm-nav-title {
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-prm-dark);
    margin-bottom: 4px;
}

.rk-prm-nav-status {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.rk-prm-nav-tab[data-stage="optimum"] .rk-prm-nav-status { color: var(--rk-prm-optimum); }
.rk-prm-nav-tab[data-stage="compromise"] .rk-prm-nav-status { color: var(--rk-prm-compromise); }
.rk-prm-nav-tab[data-stage="critical"] .rk-prm-nav-status { color: var(--rk-prm-critical); }

/* Główny Panel Prezentacji Danych (Desktop) */
.rk-prm-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 20px;
    padding: 35px;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja Warstw Posadzki SVG */
.rk-prm-visual-box {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-prm-svg {
    width: 100%;
    max-width: 200px;
    height: auto;
}

/* Siatka Parametrów Technicznych */
.rk-prm-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-prm-metric-card {
    border-bottom: 1px solid var(--rk-prm-border);
    padding-bottom: 12px;
}

.rk-prm-metric-card:nth-last-child(-n+2) {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-prm-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-prm-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.rk-prm-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-prm-dark);
    line-height: 1.4;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-prm-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-prm-intro-zone, .rk-prm-app-body {
        padding: 30px 20px;
    }
    
    .rk-prm-h2 { font-size: 20px; }
    
    .rk-prm-desktop-navigation, .rk-prm-display-panel {
        display: none;
    }
    
    .rk-prm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-prm-acc-card {
        border: 1px solid var(--rk-prm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-prm-acc-trigger {
        padding: 18px 20px;
        font-weight: 900;
        font-size: 14px;
        color: var(--rk-prm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-prm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-prm-blue);
        font-weight: 500;
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active { border-color: var(--rk-prm-optimum); }
    .rk-prm-acc-card[data-stage="compromise"].active { border-color: var(--rk-prm-compromise); }
    .rk-prm-acc-card[data-stage="critical"].active { border-color: var(--rk-prm-critical); }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger {
        border-bottom: 1px solid var(--rk-prm-border);
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active .rk-prm-acc-trigger { color: var(--rk-prm-optimum); background: #f0fdf4; }
    .rk-prm-acc-card[data-stage="compromise"].active .rk-prm-acc-trigger { color: var(--rk-prm-compromise); background: #fffbeb; }
    .rk-prm-acc-card[data-stage="critical"].active .rk-prm-acc-trigger { color: var(--rk-prm-critical); background: #fef2f2; }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger::after {
        content: '−';
    }
    
    .rk-prm-acc-content {
        display: none;
        padding: 20px;
        background: #ffffff;
    }
    
    .rk-prm-acc-card.active .rk-prm-acc-content {
        display: block;
    }
    
    .rk-prm-metric-card {
        border-bottom: 1px dashed var(--rk-prm-border) !important;
        padding-bottom: 12px !important;
        margin-bottom: 12px;
    }
    
    .rk-prm-metric-card:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
        margin-bottom: 0;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania",
    "description": "Porównanie technicznych i finansowych skutków decyzji inwestora o montażu ogrzewania płaszczyznowego na różnych etapach budowy domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-parametry",
    "name": "Zestawienie fizycznych i wydajnościowych parametrów jastrychów i pomp ciepła",
    "description": "Zbiór danych technicznych i kosztowych mapujący grubość EPS, opór cieplny izolacji, średnice przewodów oraz współczynniki COP w relacji do czasu podjęcia decyzji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubosc izolacji eps WT2021",
      "opor cieplny izolacji podlogi",
      "srednica rury ogrzewania podlogowego",
      "grubosc jastrychu anhydrytowego",
      "wspolczynnik COP pompy ciepla"
    ],
    "measurementTechnique": "Modelowanie symulacyjne sprawności termicznej i hydraulicznej na bazie wytycznych norm PN-EN 1264 oraz WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza projektowa: Izolacja 100-150 mm, opór cieplny powyżej lub równy 3,50, średnica rur fi 16, jastrych 50-60 mm, COP powyżej lub równy 4,5.",
        "Decyzja przed wylewkami: Izolacja 20-40 mm, opór cieplny 0,55-1,10, rury cienkie fi 10-12, jastrych renowacyjny 15-20 mm, COP niski 3,0-3,4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-parametry",
    "name": "Kalkulator Konsekwencji Budowlanych HVAC",
    "description": "Narzędzie interaktywne analizujące zmiany grubości warstw podłogowych oraz parametry efektywności energetycznej źródeł ciepła na osi czasu budowy.",
    "applicationCategory": "InfrastructuralApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-prm-main-container" id="rkParamAppRoot">
    <div class="rk-prm-intro-zone">
        <h2 class="rk-prm-h2">Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania</h2>
        <h3 class="rk-prm-h3">Poniższa aplikacja inżynierska przedstawia szczegółowe, techniczne i finansowe skutki decyzji inwestora w zależności od momentu, w którym zdecydował się na wdrożenie ogrzewania podłogowego. Wybierz odpowiedni etap na desktopie lub rozwiń karty na mobile, aby przeanalizować kluczowe wskaźniki.</h3>
    </div>

    <div class="rk-prm-app-body">
        <div class="rk-prm-desktop-navigation" id="rkPrmTabs">
            <button class="rk-prm-nav-tab active" data-stage="optimum">
                <div class="rk-prm-nav-title">Faza Projektowa</div>
                <div class="rk-prm-nav-status">Optimum</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="compromise">
                <div class="rk-prm-nav-title">Po Stanie Surowym</div>
                <div class="rk-prm-nav-status">Kompromis</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="critical">
                <div class="rk-prm-nav-title">Przed Wylewkami</div>
                <div class="rk-prm-nav-status">Krytyczny</div>
            </button>
        </div>

        <div class="rk-prm-display-panel" id="rkPrmDisplay">
            <div class="rk-prm-visual-box">
                <svg class="rk-prm-svg" viewBox="0 0 120 160" fill="none" xmlns="http://www.w3.org/2000/svg" id="rkPrmSvgObject">
                    </svg>
            </div>
            
            <div class="rk-prm-metrics-grid" id="rkPrmMetricsContainer">
                </div>
        </div>

        <div class="rk-prm-mobile-accordion" id="rkPrmMobileAccordion">
            <div class="rk-prm-acc-card active" data-stage="optimum">
                <div class="rk-prm-acc-trigger">Faza projektowa (Optimum)</div>
                <div class="rk-prm-acc-content" id="rkMContentOptimum"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="compromise">
                <div class="rk-prm-acc-trigger">Planowanie po stanie surowym (Kompromis)</div>
                <div class="rk-prm-acc-content" id="rkMContentCompromise"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="critical">
                <div class="rk-prm-acc-trigger">Decyzja przed samymi wylewkami (Krytyczny)</div>
                <div class="rk-prm-acc-content" id="rkMContentCritical"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inżynierska baza danych parametrów technicznych
    var paramDatabase = {
        'optimum': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="40" fill="#0284c7"/><rect x="10" y="71" width="100" height="80" fill="#cbd5e1"/><circle cx="30" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="60" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="90" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="120" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 150mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "100 - 150 mm (Zgodnie z normą WT2021)" },
                { label: "Opór cieplny izolacji", val: "Większy lub równy 3,50 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 100 / 150 mm" },
                { label: "Wymagany jastrych", val: "50 mm (Anhydryt) lub 60 mm (Beton)" },
                { label: "Wydajność pompy ciepła", val: "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "0,00 PLN" }
            ]
        },
        'compromise': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="30" fill="#0284c7"/><rect x="10" y="61" width="100" height="45" fill="#cbd5e1"/><circle cx="25" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="50" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="75" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="100" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="88" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 70mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "60 - 80 mm (Wymuszone brakiem wysokości)" },
                { label: "Opór cieplny izolacji", val: "1,70 - 2,20 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 150 / 200 mm" },
                { label: "Wymagany jastrych", val: "35 mm (Anhydryt cienkowarstwowy)" },
                { label: "Wydajność pompy ciepła", val: "Średnie COP (3,8 - 4,0 przy zasilaniu 38 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "3 500 - 7 000 PLN (Skuwanie, podcinanie drzwi)" }
            ]
        },
        'critical': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="18" fill="#0284c7"/><rect x="10" y="49" width="100" height="15" fill="#cbd5e1"/><circle cx="20" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="40" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="60" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="80" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="100" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><text x="60" y="61" fill="#ef4444" font-size="9" font-weight="800" text-anchor="middle">Mata Slim 20mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "20 - 40 mm (Mata systemowa slim)" },
                { label: "Opór cieplny izolacji", val: "0,55 - 1,10 m2 K/W (Skrajne straty do gruntu)" },
                { label: "Średnica rury i rozstaw", val: "fi 10 / fi 12 mm (Systemy renowacyjne)" },
                { label: "Wymagany jastrych", val: "15 - 20 mm (Masy samopoziomujące specjalne)" },
                { label: "Wydajność pompy ciepła", val: "Niskie COP (3,0 - 3,4 przy zasilaniu większym lub równym 45 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "15 000 - 35 000 PLN (Frezowanie jastrychu, drogie masy)" }
            ]
        }
    };

    var dMetricsContainer = document.getElementById('rkPrmMetricsContainer');
    var dSvgObject = document.getElementById('rkPrmSvgObject');
    var desktopTabs = document.querySelectorAll('#rkPrmTabs .rk-prm-nav-tab');

    // Funkcja generująca kod HTML dla zestawu parametrów
    function wygenerujKartyParametrow(stageKey) {
        var items = paramDatabase[stageKey].metrics;
        var html = '';
        for (var i = 0; i < items.length; i++) {
            html += '<div class="rk-prm-metric-card">';
            html += '<div class="rk-prm-label">' + items[i].label + '</div>';
            html += '<div class="rk-prm-value">' + items[i].val + '</div>';
            html += '</div>';
        }
        return html;
    }

    // Inicjalizacja pierwszej karty na desktopie (Faza projektowa)
    if (dMetricsContainer) { dMetricsContainer.innerHTML = wygenerujKartyParametrow('optimum'); }
    if (dSvgObject) { dSvgObject.innerHTML = paramDatabase['optimum'].svg; }

    // Wstrzyknięcie pełnych danych strukturalnych do akordeonu mobilnego (SEO + brak pustego drzewa DOM)
    var mobileStages = ['optimum', 'compromise', 'critical'];
    for (var j = 0; j < mobileStages.length; j++) {
        var mBox = document.getElementById('rkMContent' + mobileStages[j].charAt(0).toUpperCase() + mobileStages[j].slice(1));
        if (mBox) {
            mBox.innerHTML = '<div class="rk-prm-metrics-grid">' + wygenerujKartyParametrow(mobileStages[j]) + '</div>';
        }
    }

    // Obsługa przełączania zakładek na Desktopie
    desktopTabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            desktopTabs.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var chosenStage = this.getAttribute('data-stage');
            dMetricsContainer.innerHTML = wygenerujKartyParametrow(chosenStage);
            dSvgObject.innerHTML = paramDatabase[chosenStage].svg;
        });
    });

    // Całkowicie bezpieczna obsługa akordeonów mobilnych bez używania operatorów podwójnego ampersandu
    var accCards = document.querySelectorAll('#rkPrmMobileAccordion .rk-prm-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-prm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-prj-dark: #0f172a;
    --rk-prj-blue: #0284c7;
    --rk-prj-blue-light: #f0f9ff;
    --rk-prj-border: #e2e8f0;
    --rk-prj-text: #334155;
    --rk-prj-text-light: #64748b;
    --rk-prj-accent: #f59e0b;
    --rk-prj-success: #10b981;
}

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

/* Nagłówek i Wstęp */
.rk-prj-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prj-border);
}

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

.rk-prj-h3 {
    font-size: 15.5px;
    color: var(--rk-prj-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Aplikacji / Symulatora */
.rk-prj-workspace {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Krok 1: Wybór posadzki (Pełna szerokość) */
.rk-prj-control-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

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

.rk-posadzka-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.rk-posadzka-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-prj-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

.rk-posadzka-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

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

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

.rk-btn-desc {
    font-size: 12.5px;
    color: var(--rk-prj-text-light);
    line-height: 1.4;
}

/* Krok 2: Wizualizacja SVG (Przepływ procesu inżynieryjnego) */
.rk-prj-flow-visual {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-flow-svg {
    width: 100%;
    max-width: 750px;
    height: auto;
}

/* Krok 3: Wyniki obliczeń i Analiza techniczna */
.rk-prj-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.rk-result-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 14px;
    padding: 20px;
    text-align: center;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-prj-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-number {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-prj-blue);
    margin-bottom: 8px;
}

.rk-metric-explanation {
    font-size: 13px;
    color: var(--rk-prj-text);
    line-height: 1.5;
    text-align: left;
}

@media (max-width: 768px) {
    .rk-prj-header, .rk-prj-workspace {
        padding: 30px 20px;
    }
    .rk-prj-h2 { font-size: 20px; }
    .rk-posadzka-options { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-results-grid { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-flow-visual { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-projektowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak wczesne planowanie wpływa na projekt ogrzewania podłogowego",
    "description": "Analiza wpływu oporów cieplnych okładzin podłogowych (płytki vs panele) na rozstaw rur, długość pętli, równoważenie instalacji oraz współczynnik SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-projektowanie",
    "name": "Zależności hydrauliczne i termiczne w projektowaniu instalacji płaszczyznowych",
    "description": "Zbiór danych technicznych i inżynieryjnych opisujący relacje pomiędzy oporami cieplnymi posadzek, rozstawami przewodów a sprawnością pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wplyw posadzki na rozstaw rur",
      "maksymalna dlugosc petli podlogowki",
      "hydrauliczne rownowazenie rotametrow",
      "parametry zasilania pompy ciepla",
      "obliczenia ozc pn-en 12831"
    ],
    "measurementTechnique": "Matematyczna symulacja przepływów hydraulicznych i strat ciśnienia na podstawie wytycznych normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: Opór cieplny 0,02 m2 K/W, projektowa temperatura zasilania 30-32 stopnie Celsjusza.",
        "Panele laminowane: Opór cieplny od 0,07 do 0,12 m2 K/W, rozstaw rur zagęszczony do 100 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-projektowanie",
    "name": "Symulator Zależności Hydrauliczno-Termicznych Podłogówki",
    "description": "Narzędzie inżynieryjne demonstrujące w czasie rzeczywistym zmianę rozstawu rur, parametrów zasilania pętli oraz sprawności źródła ciepła w zależności od wybranej okładziny posadzkowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rkProjectAppBlock">
    <div class="rk-prj-header">
        <h2 class="rk-prj-h2">Wpływ wczesnego planowania na projekt ogrzewania podłogowego</h2>
        <h3 class="rk-prj-h3">Planowanie instalacji na etapie koncepcyjnym bezpośrednio determinuje strukturę techniczną, jaką przyjmie profesjonalny projekt ogrzewania podłogowego. Prawidłowo sporządzony dokument inżynierski nie opiera się na uniwersalnych wskaźnikach typu „100 W/m²” czy „rozstaw co 15 cm w całym domu”. Projekt musi być ściśle zsynchronizowany z Obliczeniowym Zapotrzebowaniem na Ciepło (OZC) budynku, wyznaczonym wg normy PN-EN 12831.</h3>
    </div>

    <div class="rk-prj-workspace">
        <div class="rk-prj-control-card">
            <div class="rk-prj-h4">1. Wybierz planowaną okładzinę podłogową w sypialniach i salonie:</div>
            <div class="rk-posadzka-options">
                <button class="rk-posadzka-btn active" data-type="tiles">
                    <div class="rk-btn-title">Płytki ceramiczne / Gres</div>
                    <div class="rk-btn-desc">Niski opór cieplny (ok. 0,02 m2 K/W). Najwyższa transmisja energii, idealne pod pompę ciepła.</div>
                </button>
                <button class="rk-posadzka-btn" data-type="panels">
                    <div class="rk-btn-title">Panele laminowane / Deska barlinecka</div>
                    <div class="rk-btn-desc">Wysoki opór cieplny (od 0,07 do 0,12 m2 K/W). Wymaga zagęszczenia pętli i korekty hydrauliki.</div>
                </button>
            </div>
        </div>

        <div class="rk-prj-flow-visual">
            <svg class="rk-flow-svg" viewBox="0 0 700 80" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="5" y="15" width="100" height="50" rx="8" fill="#0f172a"/>
                <text x="55" y="45" fill="#ffffff" font-size="12" font-weight="800" text-anchor="middle">Wynik OZC</text>
                
                <path d="M115 40 H135" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="135,40 128,35 128,45" fill="#0284c7"/>
                
                <rect x="145" y="15" width="130" height="50" rx="8" fill="#0284c7" id="svgStepPosadzka"/>
                <text x="210" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle" id="svgTextPosadzka">Rozstaw: 150 mm</text>
                
                <path d="M285 40 H305" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="305,40 298,35 298,45" fill="#0284c7"/>
                
                <rect x="315" y="15" width="120" height="50" rx="8" fill="#0284c7"/>
                <text x="375" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Długość pętli max 100m</text>
                
                <path d="M445 40 H465" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="465,40 458,35 458,45" fill="#0284c7"/>
                
                <rect x="475" y="15" width="100" height="50" rx="8" fill="#0284c7"/>
                <text x="525" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Obliczenie V i dP</text>
                
                <path d="M585 40 H605" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="605,40 598,35 598,45" fill="#0284c7"/>
                
                <rect x="615" y="15" width="80" height="50" rx="8" fill="#10b981" id="svgStepPump"/>
                <text x="655" y="45" fill="#ffffff" font-size="11" font-weight="800" text-anchor="middle" id="svgTextPump">COP max</text>
            </svg>
        </div>

        <div class="rk-prj-results-grid" id="rkPrjResultsGrid">
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Projektowany rozstaw rur</div>
                <div class="rk-metric-number" id="valRozstaw">150 mm</div>
                <div class="rk-metric-explanation" id="descRozstaw">Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w salonie jest w pełni wystarczający do pokrycia strat ciepła z OZC budynków.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Zrównoważenie hydrauliczne</div>
                <div class="rk-metric-number" id="valHydr">Stabilne</div>
                <div class="rk-metric-explanation" id="descHydr">Precyzyjne wyznaczenie długości pętli (maksymalnie 100 m dla średnicy fi 16) eliminuje strefy niedogrzane. Przepływy są równomierne na rotometrach.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Wpływ na pompę ciepła</div>
                <div class="rk-metric-number" id="valPompa">Zasilanie 30-35°C</div>
                <div class="rk-metric-explanation" id="descPompa">Niska temperatura zasilania pozwala pompie ciepła pracować w najwyższym punkcie sprawności (SCOP), minimalizując roczne koszty energii.</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var optionButtons = document.querySelectorAll('.rk-posadzka-btn');
    
    var valRozstaw = document.getElementById('valRozstaw');
    var descRozstaw = document.getElementById('descRozstaw');
    var valHydr = document.getElementById('valHydr');
    var descHydr = document.getElementById('descHydr');
    var valPompa = document.getElementById('valPompa');
    var descPompa = document.getElementById('descPompa');
    
    var svgTextPosadzka = document.getElementById('svgTextPosadzka');
    var svgStepPosadzka = document.getElementById('svgStepPosadzka');
    var svgStepPump = document.getElementById('svgStepPump');
    var svgTextPump = document.getElementById('svgTextPump');

    optionButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            optionButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var currentType = this.getAttribute('data-type');
            
            if (currentType === 'tiles') {
                // Konfiguracja dla Płytek Ceramicznych
                valRozstaw.innerText = "150 mm";
                valRozstaw.style.color = "#0284c7";
                descRozstaw.innerHTML = "Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w zupełności wystarczy do pokrycia strat ciepła. Pozwala to na zachowanie standardowych długości pętli bez dławienia przepływów.";
                
                valHydr.innerText = "Stabilne";
                valHydr.style.color = "#0284c7";
                descHydr.innerHTML = "Projekt określa precyzyjne nastawy na rotometrach rozdzielacza w litrach na minutę. Bez projektu ułożenie pętli grozi przegrzaniem salonu i niedogrzaniem łazienki.";
                
                valPompa.innerText = "Zasilanie 30-35°C";
                valPompa.style.color = "#10b981";
                descPompa.innerHTML = "Zoptymalizowana podłogówka projektowana pod niskie parametry pozwala pompie ciepła pracować w najwyższym punkcie sprawności SCOP. Brak strat energii.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Rozstaw: 150 mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#0284c7'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#10b981'); }
                if (svgTextPump) { svgTextPump.innerText = "COP max"; }
                
            } else {
                // Konfiguracja dla Paneli Laminowanych
                valRozstaw.innerText = "100 mm";
                valRozstaw.style.color = "#f59e0b";
                descRozstaw.innerHTML = "Opór cieplny paneli z podkładem wynosi od 0,07 do 0,12 m2 K/W. Aby skompensować ten opór, projektant zagęszcza rozstaw rur w sypialniach do 100 mm, zachowując niską temperaturę wody.";
                
                valHydr.innerText = "Korekta oporów";
                valHydr.style.color = "#f59e0b";
                descHydr.innerHTML = "Zagęszczenie rur zwiększa długość pętli. Jeśli obwód przekroczy 100 m, opór hydrauliczny zablokuje przepływ. Projektant dzieli pokój na dwie pętle, aby pompa dała radę tłoczyć czynnik.";
                
                valPompa.innerText = "Spadek COP o 3%";
                valPompa.style.color = "#ef4444";
                descPompa.innerHTML = "Każde podniesienie temperatury zasilania o 1 stopień z powodu błędów w rozstawie i braku obliczeń OZC skutkuje wzrostem zużycia prądu przez pompę o około 2-3 procent w skali roku.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Zagęszczenie: 100mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#f59e0b'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#ef4444'); }
                if (svgTextPump) { svgTextPump.innerText = "COP spada"; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-blue-light: #f0f9ff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-text-muted: #64748b;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-red-text: #991b1b;
}

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

/* Sekcja Wstępna */
.rk-err-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

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

.rk-err-h3 {
    font-size: 15.5px;
    color: var(--rk-err-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji */
.rk-err-body-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowy Selektor - Układ poziomy na pełną szerokość */
.rk-err-desktop-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-err-tab-btn {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

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

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

.rk-err-tab-btn .rk-tab-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-err-blue);
    font-weight: 700;
}

.rk-err-tab-btn.active .rk-tab-badge {
    color: #38bdf8;
}

/* Liniowy Panel Informacyjny (Desktop) */
.rk-err-fullwidth-display {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-err-display-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-graphic-frame {
    width: 70px;
    height: 70px;
    background: var(--rk-err-red-bg);
    border: 1px solid var(--rk-err-red-border);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-red-text);
    flex-shrink: 0;
}

.rk-err-graphic-frame svg {
    width: 36px;
    height: 36px;
}

.rk-err-display-titles {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

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

.rk-err-p-consequence {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #ef4444;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

.rk-err-display-content-text strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-err-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-err-intro-bar, .rk-err-body-wrapper {
        padding: 30px 20px;
    }
    
    .rk-err-h2 { font-size: 20px; }
    
    .rk-err-desktop-tabs, .rk-err-fullwidth-display { 
        display: none; 
    }
    
    .rk-err-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-err-acc-card {
        border: 1px solid var(--rk-err-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-err-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-err-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-err-acc-trigger::after {
        content: '+';
        font-size: 20px;
        color: #ef4444;
        font-weight: 400;
    }
    
    .rk-err-acc-card.active {
        border-color: #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger {
        background: var(--rk-err-red-bg);
        color: var(--rk-err-red-text);
        border-bottom: 1px solid #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger::after {
        content: '−';
        color: var(--rk-err-red-text);
    }
    
    .rk-err-acc-content {
        display: none;
        padding: 22px 20px;
        background: #ffffff;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-err-text);
    }
    
    .rk-err-acc-card.active .rk-err-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego",
    "description": "Analiza krytycznych błędów montażowych podłogówki: brak dylatacji, za długie pętle rur, klawiszowanie styropianu oraz pozorne próby ciśnieniowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-bledy",
    "name": "Katalog Wad Wykonawczych i Awarii Hydraulicznych Płaszczyzn",
    "description": "Zbiór danych technicznych i normatywnych definiujących mechaniczne skutki nieprawidłowego montażu rur grzewczych i jastrychów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak dylatacji strefowych podłogówki",
      "maksymalna długość pętli rury fi 16",
      "klawiszowanie styropianu przyczyny",
      "norma PN-EN 1264-4 dylatacje",
      "próba ciśnieniowa podłogówki wodą"
    ],
    "measurementTechnique": "Analiza diagnostyczna i techniczno-budowlana procesów destrukcji monolitycznych płyt grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wada 1: Pominięcie szczelin dylatacyjnych przy polach powyżej 40 m2 - pękanie kafli.",
        "Wada 2: Przekroczenie długości obwodu rury powyżej 100 metrów - wysokie opory i zimna posadzka.",
        "Wada 3: Układanie płyt izolacyjnych na nierównym podłożu - pionowa praca wylewki.",
        "Wada 4: Test powietrzem 2 bary zamiast wody 6 bar - ukryte mikropęknięcia rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-bledy",
    "name": "Inspektor Wad i Patologii Wykonawczych HVAC",
    "description": "Aplikacja internetowa wizualizująca i opisująca fizyczne konsekwencje ignorowania procedur montażowych instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-main-container" id="rkErrorsAppRoot">
    <div class="rk-err-intro-bar">
        <h2 class="rk-err-h2">Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego</h2>
        <h3 class="rk-err-h3">Opóźnienie procesu projektowego i decyzyjnego generuje lawinę błędów, które są niemożliwe do skorygowania po zalaniu betonem. Poniższa interaktywna lista przedstawia najczęstsze patologie wykonawcze spotykane na budowach, gdzie podłogówkę planowano „w locie”.</h3>
    </div>

    <div class="rk-err-body-wrapper">
        <div class="rk-err-desktop-tabs" id="rkErrTabsContainer">
            <button class="rk-err-tab-btn active" data-error="1">
                <span class="rk-tab-badge">Patologia 01</span>
                <span>Brak dylatacji</span>
            </button>
            <button class="rk-err-tab-btn" data-error="2">
                <span class="rk-tab-badge">Patologia 02</span>
                <span>Za długie pętle</span>
            </button>
            <button class="rk-err-tab-btn" data-error="3">
                <span class="rk-tab-badge">Patologia 03</span>
                <span>Złe podłoże</span>
            </button>
            <button class="rk-err-tab-btn" data-error="4">
                <span class="rk-tab-badge">Patologia 04</span>
                <span>Pozorny test</span>
            </button>
        </div>

        <div class="rk-err-fullwidth-display" id="rkErrMainDisplay">
            <div class="rk-err-display-header">
                <div class="rk-err-graphic-frame" id="rkErrDisplayIcon">
                    </div>
                <div class="rk-err-display-titles">
                    <h4 class="rk-err-h4" id="rkErrDisplayTitle">Brak dylatacji strefowych i brzegowych</h4>
                    <p class="rk-err-p-consequence">Skutek: Pękanie płyty i zrywanie płytek</p>
                </div>
            </div>
            <p class="rk-err-display-content-text" id="rkErrDisplayBody">
                </p>
        </div>

        <div class="rk-err-mobile-accordion" id="rkErrMobileAccordion">
            <div class="rk-err-acc-card active" data-error="1">
                <div class="rk-err-acc-trigger">1. Brak dylatacji strefowych i brzegowych</div>
                <div class="rk-err-acc-content" id="rkMError1"></div>
            </div>
            <div class="rk-err-acc-card" data-error="2">
                <div class="rk-err-acc-trigger">2. Przekraczanie maksymalnych długości pętli</div>
                <div class="rk-err-acc-content" id="rkMError2"></div>
            </div>
            <div class="rk-err-acc-card" data-error="3">
                <div class="rk-err-acc-trigger">3. Mocowanie rur do nieprzygotowanego podłoża</div>
                <div class="rk-err-acc-content" id="rkMError3"></div>
            </div>
            <div class="rk-err-acc-card" data-error="4">
                <div class="rk-err-acc-trigger">4. Niezrobienie lub pozorna próba ciśnieniowa</div>
                <div class="rk-err-acc-content" id="rkMError4"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych o błędach montażowych
    var errorsDatabase = {
        1: {
            title: "Brak dylatacji strefowych i brzegowych",
            consequence: "Skutek: Pękanie płyty i zrywanie płytek",
            body: "Zgodnie z restrykcyjną normą <strong>PN-EN 1264-4</strong>, każda płyta grzewcza jastrychu o powierzchni powyżej <strong>40 metrów kwadratowych</strong> lub o długości boku przekraczającej <strong>8 metrów</strong> musi zostać bezwzględnie oddzielona szczeliną dylatacyjną. Podobnie dylatacja konstrukcyjna musi pojawić się w każdym progu drzwiowym. Całkowity brak dylatacji lub jej nieprawidłowe wykonanie skutkuje niekontrolowanym pękaniem jastrychu oraz zrywaniem okładzin ceramicznych i gresów pod wpływem ciągłej rozszerzalności cieplnej materiału.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M12 11l-2 2 4 2-2 2v5M3 12h18"/></svg>'
        },
        2: {
            title: "Przekraczanie maksymalnych długości pętli",
            consequence: "Skutek: Ogromny opór hydrauliczny i zimna posadzka",
            body: "Układanie pętli grzewczych o długości rzędu <strong>130-150 metrów</strong> z rury o średnicy szesnastu milimetrów (fi 16) w celu pozornego zaoszczędzenia na sekcjach rozdzielacza to kardynalny błąd. Skutkuje to wygenerowaniem gigantycznego oporu hydraulicznego w instalacji. Pompa obiegowa wchodzi wówczas w zakres maksymalnej, nieekonomicznej pracy, drastycznie rośnie zużycie energii elektrycznej, a końcowe metry obwodu grzewczego w pomieszczeniu pozostają całkowicie zimne.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4v16h16V4H4zm4 4h8v8H8V8z"/></svg>'
        },
        3: {
            title: "Mocowanie rur do nieprzygotowanego podłoża",
            consequence: "Skutek: Klawiszowanie styropianu i pękanie wylewki",
            body: "Układanie płyt styropianowych na nierównym, nieuprzątniętym chudym betonie (np. z zaschniętymi grudami zaprawy po murowaniu ścian) powoduje tak zwane <strong>klawiszowanie styropianu</strong>. Izolacja termiczna ugina się i pracuje pionowo pod naciskiem. Po wylaniu betonu i uruchomieniu ogrzewania podłogowego, cała płyta grzewcza zaczyna drgać w pionie, co bezpośrednio prowadzi do jej pękania w miejscach, gdzie pod izolacją znajdowały się puste przestrzenie i bąble powietrza.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18M3 16h6M9 13h6M15 10h6"/></svg>'
        },
        4: {
            title: "Niezrobienie lub pozorna próba ciśnieniowa",
            consequence: "Skutek: Ukryte wycieki pod betonem i zalanie budynku",
            body: "Wykonanie testu szczelności zwykłym powietrzem z kompresora o niskim ciśnieniu (np. 2 bary) zamiast wymaganej normowo <strong>próby wodnej pod ciśnieniem 0,6 MPa (6 bar) przez minimum 24 godziny</strong> przed i w trakcie prac betoniarskich to ogromne ryzyko. Jastrych anhydrytowy lub cementowy musi być wylewany w momencie, gdy rury są pod pełnym ciśnieniem roboczym, dzięki czemu ich średnica jest naturalnie napięta i odporna na ściskanie podczas wiązania mieszanki.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="12" x2="16" y2="8"/><path d="M12 16v.01"/></svg>'
        }
    };

    var dTitle = document.getElementById('rkErrDisplayTitle');
    var dConsequence = document.querySelector('.rk-err-p-consequence');
    var dBody = document.getElementById('rkErrDisplayBody');
    var dIcon = document.getElementById('rkErrDisplayIcon');
    var tabButtons = document.querySelectorAll('#rkErrTabsContainer .rk-err-tab-btn');

    // Funkcja aktualizacji liniowego panelu na desktopie
    function aktualizujPanelDesktop(id) {
        if (dTitle) { dTitle.innerText = errorsDatabase[id].title; }
        if (dConsequence) { dConsequence.innerText = errorsDatabase[id].consequence; }
        if (dBody) { dBody.innerHTML = errorsDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = errorsDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji dla desktopu
    aktualizujPanelDesktop(1);

    // Dynamiczne wstrzyknięcie tekstów do wersji mobilnej (gwarancja indeksacji SEO)
    for (var i = 1; i <= 4; i++) {
        var mContentContainer = document.getElementById('rkMError' + i);
        if (mContentContainer) {
            var contentHtml = '<p style="margin: 0 0 8px 0; font-weight:700; color:#ef4444; font-size:12px; text-transform:uppercase;">' + errorsDatabase[i].consequence + '</p>';
            contentHtml += '<p style="margin:0; line-height:1.6;">' + errorsDatabase[i].body + '</p>';
            mContentContainer.innerHTML = contentHtml;
        }
    }

    // Obsługa kliknięć zakładek na Desktopie
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-error');
            aktualizujPanelDesktop(id);
        });
    });

    // Bezpieczna obsługa akordeonu na Mobilu (całkowity brak operatorów typu ampersand)
    var accCards = document.querySelectorAll('#rkErrMobileAccordion .rk-err-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-err-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-cas-dark: #0f172a;
    --rk-cas-blue: #0284c7;
    --rk-cas-light: #f8fafc;
    --rk-cas-border: #e2e8f0;
    --rk-cas-text: #334155;
    --rk-cas-muted: #64748b;
    --rk-cas-success: #10b981;
    --rk-cas-success-bg: #f0fdf4;
}

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

/* Sekcja Wstępna */
.rk-cas-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-cas-border);
    display: block;
}

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

.rk-cas-h3 {
    font-size: 15.5px;
    color: var(--rk-cas-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Korpus Interaktywnego Studium */
.rk-cas-workspace {
    padding: 40px 50px;
    background: var(--rk-cas-light);
    display: block;
}

/* Metryka Projektu - Tabela Inżynierska */
.rk-cas-spec-card {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
    display: block;
}

.rk-cas-h4 {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-cas-dark);
    margin: 0 0 20px 0;
    display: block;
}

.rk-cas-spec-table {
    display: table;
    width: 100%;
}

.rk-cas-spec-row {
    display: table-row;
}

.rk-cas-spec-cell {
    display: table-cell;
    padding: 10px 15px;
    font-size: 14px;
    border-bottom: 1px solid var(--rk-cas-border);
}

.rk-cas-spec-row:last-child .rk-cas-spec-cell {
    border-bottom: none;
}

.rk-cas-cell-label {
    font-weight: 700;
    color: var(--rk-cas-muted);
    width: 35%;
}

.rk-cas-cell-value {
    color: var(--rk-cas-dark);
    font-weight: 800;
}

/* Selektor Etapów Harmonogramu (Desktop) */
.rk-cas-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-cas-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cas-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji */
}

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

/* Panel Wyświetlania Fazy Harmonogramu */
.rk-cas-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 20px;
    padding: 35px;
    display: block;
}

.rk-cas-panel-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cas-dark);
    margin: 0 0 15px 0;
    display: block;
}

.rk-cas-panel-text {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-cas-text);
    margin: 0;
    display: block;
}

.rk-cas-panel-text strong {
    color: var(--rk-cas-dark);
    font-weight: 700;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-cas-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-cas-intro-bar, .rk-cas-workspace {
        padding: 30px 20px;
    }
    
    .rk-cas-h2 { font-size: 20px; }
    .rk-cas-spec-cell { display: block; width: 100% !important; padding: 6px 0; }
    .rk-cas-spec-cell:first-child { border-bottom: none; }
    .rk-cas-spec-row { display: block; border-bottom: 1px solid var(--rk-cas-border); padding: 6px 0; }
    .rk-cas-spec-row:last-child { border-bottom: none; }
    
    .rk-cas-tabs-row, .rk-cas-display-panel {
        display: none;
    }
    
    .rk-cas-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-cas-acc-item {
        border: 1px solid var(--rk-cas-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-cas-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-cas-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-cas-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-cas-blue);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger {
        background: var(--rk-cas-blue);
        color: #ffffff;
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-cas-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-cas-light);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-cas-text);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m2 – Inżynier Robert Kucharski",
    "description": "Praktyczne studium przypadku inwestycji Anny i Tomasza. Zobacz, jak Robert Kucharski zaplanował etapy montażu ogrzewania płaszczyznowego dla domu 180 m2 przed wylaniem fundamentów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-case-study",
    "name": "Model symulacji chronologii prac instalacyjnych dla budynków parterowych",
    "description": "Zbiór zmiennych inżynieryjnych i kroków wykonawczych przypisanych do budowy domu o kubaturze i powierzchni 180 m2, analizujący krytyczne punkty styku instalacji HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "harmonogram ogrzewania podłogowego dom parterowy",
      "ogrzewanie podłogowe dom 180m2 koszt",
      "audyt ozc przed fundamentami",
      "konflikt poziomów wylewki case study",
      "inżynierskie planowanie hvac"
    ],
    "measurementTechnique": "Modelowanie sekwencyjne i chronologiczna weryfikacja procesów budowlanych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza przedfundamentowa: Wykonanie obliczeń OZC i określenie grubości styropianu w celu rezerwacji wysokości.",
        "Faza stanu zamkniętego: Montaż rozdzielaczy i pętli po wykonaniu tynków, przed wylewkami anhydrytowymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-case-study",
    "name": "Nawigator Chronologii Wykonawczej Case Study",
    "description": "Interaktywny asystent etapów budowy domu Tomasza i Anny, służący do weryfikacji punktów kontrolnych przed zalaniem pętli podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-main-container" id="rkCaseStudyApp">
    <div class="rk-cas-intro-bar">
        <h2 class="rk-cas-h2">Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m²</h2>
        <h3 class="rk-cas-h3">Zdaniem Roberta Kucharskiego, najlepszą metodą na zrozumienie fizyki budowli jest analiza żywego organizmu inwestycji. Poznaj historię Tomasza (34 lata) i Anny (32 lata), którzy zgłosili się do mojego biura inżynierskiego po zakupie działki i uzyskaniu warunków zabudowy. Mając gotowy projekt architektoniczny domu parterowego o powierzchni 180 m², stanęli przed wyzwaniem: jak bezbłędnie zgrać montaż ogrzewania podłogowego z nadchodzącymi pracami fundamentowymi?</h3>
    </div>

    <div class="rk-cas-workspace">
        <div class="rk-cas-spec-card">
            <div class="rk-cas-h4">Metryka techniczna analizowanego budynku:</div>
            <div class="rk-cas-spec-table">
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Inwestorzy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Tomasz (34 l.) i Anna (32 l.)</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Typ budynku / Powierzchnia:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Parterowy, bez podpiwniczenia / 180 metrów kwadratowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Etap początkowy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Po adaptacji, przed rozpoczęciem prac ziemnych i fundamentowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Źródło ciepła:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Inwerterowa pompa ciepła powietrze-woda</div>
                </div>
            </div>
        </div>

        <div class="rk-cas-tabs-row" id="rkCasTabs">
            <button class="rk-cas-tab-btn active" data-phase="1">Faza 1: Przed Fundamentem</button>
            <button class="rk-cas-tab-btn" data-phase="2">Faza 2: Stan Zamknięty</button>
            <button class="rk-cas-tab-btn" data-phase="3">Faza 3: Próba i Jastrych</button>
        </div>

        <div class="rk-cas-display-panel" id="rkCasDisplay">
            <h4 class="rk-cas-panel-title" id="rkCasTitle">Faza 1: Blokada wysokości i obliczenia OZC</h4>
            <p class="rk-cas-panel-text" id="rkCasBody">Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych.</p>
        </div>

        <div class="rk-cas-mobile-accordion" id="rkCaseMobileAccordion">
            <div class="rk-cas-acc-item active" data-phase="1">
                <div class="rk-cas-acc-trigger">Faza 1: Przed Fundamentem (Projektowanie)</div>
                <div class="rk-cas-acc-content" id="rkMCase1"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="2">
                <div class="rk-cas-acc-trigger">Faza 2: Stan Zamknięty i Tynki</div>
                <div class="rk-cas-acc-content" id="rkMCase2"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="3">
                <div class="rk-cas-acc-trigger">Faza 3: Próba wodna i zalewanie jastrychu</div>
                <div class="rk-cas-acc-content" id="rkMCase3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych faz harmonogramu dla Case Study
    var caseDatabase = {
        1: {
            title: "Faza 1: Blokada wysokości i obliczenia OZC",
            text: "Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych."
        },
        2: {
            title: "Faza 2: Stan Zamknięty, Piony i Tynkowanie",
            text: "Po wybudowaniu ścian i dachu, wstawieniu okien oraz zamknięciu drzwi, dom parterowy osiągnął pożądany stan surowy zamknięty. W maju 2026 roku ekipa hydrauliczna rozłożyła piony kanalizacyjne oraz rury wody użytkowej na chudym betonie. Następnie tynkarze otynkowali ściany wewnętrzne. Dzięki zachowaniu tej kolejności, <strong>pętle ogrzewania podłogowego ułożone na czystym styropianie</strong> dwa tygodnie później były całkowicie wolne od ryzyka zabrudzenia chemicznego czy zniszczenia przez ciężkie rusztowania."
        },
        3: {
            title: "Faza 3: Próba wodna 6 bar i jastrych anhydrytowy",
            text: "W czerwcu 2026 roku ułożono 1800 metrów bieżących rury wielowarstwowej fi 16 mm w rozstawie zoptymalizowanym (100 mm w łazienkach, 150 mm w salonie i sypialniach). Przed wejściem ekipy posadzkarskiej, przeprowadziłem <strong>24-godzinną próba szczelności wodą pod ciśnieniem 0,6 MPa (6 bar)</strong>. Cała posadzka została zalana płynnym jastrychem anhydrytowym o wysokiej przewodności cieplnej, gdy instalacja znajdowała się pod pełnym ciśnieniem. Po 21 dniach jastrych był gotowy do procedury wygrzewania, gwarantując pompie ciepła maksymalny współczynnik COP."
        }
    };

    var dTitle = document.getElementById('rkCasTitle');
    var dBody = document.getElementById('rkCasBody');
    var tabButtons = document.querySelectorAll('#rkCasTabs .rk-cas-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelCase(id) {
        if (dTitle) { dTitle.innerText = caseDatabase[id].title; }
        if (dBody) { dBody.innerHTML = caseDatabase[id].text; }
    }

    // Inicjalizacja startowa dla kroku 1
    aktualizujPanelCase(1);

    // Napełnienie wersji mobilnej (SEO stabilność i indeksacja)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMCase' + i);
        if (mBox) {
            var html = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + caseDatabase[i].text + '</p>';
            mBox.innerHTML = html;
        }
    }

    // Obsługa zakładek na Desktopie (Brak animacji, natychmiastowy przeskok)
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-phase');
            aktualizujPanelCase(id);
        });
    });

    // Obsługa akordeonu pionowego na Mobilu (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkCaseMobileAccordion .rk-cas-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-cas-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-aut-dark: #0f172a;
    --rk-aut-blue: #0284c7;
    --rk-aut-blue-light: #f0f9ff;
    --rk-aut-border: #e2e8f0;
    --rk-aut-text: #334155;
    --rk-aut-muted: #64748b;
    --rk-aut-gold: #eab308;
    --rk-aut-bg-card: #f8fafc;
}

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

/* Sekcja Profilowa i Cytat Manifestu */
.rk-aut-profile-section {
    padding: 45px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-aut-border);
    display: block;
}

/* Klasyczny układ tabelaryczny dla zachowania pełnej stabilności i braku błędów parsera */
.rk-aut-table-layout {
    display: table;
    width: 100%;
}

.rk-aut-table-row {
    display: table-row;
}

.rk-aut-photo-cell {
    display: table-cell;
    width: 160px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-aut-expert-avatar {
    width: 160px;
    height: 160px;
    border-radius: 16px;
    object-fit: cover;
    border: 1px solid var(--rk-aut-border);
    display: block;
}

.rk-aut-content-cell {
    display: table-cell;
    vertical-align: top;
}

.rk-aut-h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-aut-dark);
    margin: 0 0 8px 0;
    line-height: 1.3;
}

.rk-aut-h3 {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-aut-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

.rk-aut-manifesto-quote {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--rk-aut-dark);
    margin: 0 0 20px 0;
    border-left: 4px solid var(--rk-aut-blue);
    padding-left: 20px;
}

/* Linki Społecznościowe E-E-A-T */
.rk-aut-social-channels {
    display: block;
    margin-top: 15px;
}

.rk-aut-link {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-aut-text);
    text-decoration: none;
    margin-right: 25px;
    border-bottom: 1px solid var(--rk-aut-border);
    padding-bottom: 2px;
}

.rk-aut-link:hover {
    color: var(--rk-aut-blue);
    border-color: var(--rk-aut-blue);
}

.rk-aut-link svg {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    fill: currentColor;
}

/* Obszar Interaktywnych Kryteriów Inżynieryjnych (Liniowy) */
.rk-aut-workspace {
    padding: 40px 50px;
    background: var(--rk-aut-bg-card);
    display: block;
}

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

.rk-aut-tab-button {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--rk-aut-dark);
    line-height: 1.4;
}

.rk-aut-tab-button:hover {
    background: #f1f5f9;
}

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

/* Panel Wyświetlania Treści Kryterium */
.rk-aut-info-panel {
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 16px;
    padding: 30px 35px;
}

.rk-aut-panel-h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-aut-dark);
}

.rk-aut-panel-text {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-aut-text);
    margin: 0;
}

.rk-aut-panel-text strong {
    color: var(--rk-aut-dark);
    font-weight: 700;
}

/* Adaptacja Mobilna */
@media (max-width: 768px) {
    .rk-aut-profile-section, .rk-aut-workspace {
        padding: 30px 20px;
    }
    
    .rk-aut-table-layout, .rk-aut-table-row, .rk-aut-photo-cell, .rk-aut-content-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-aut-photo-cell {
        margin-bottom: 20px;
        text-align: center;
    }
    
    .rk-aut-expert-avatar {
        margin: 0 auto;
    }
    
    .rk-aut-h2 { font-size: 20px; text-align: center; }
    .rk-aut-h3 { text-align: center; }
    
    .rk-aut-social-channels {
        text-align: center;
    }
    .rk-aut-link { margin: 0 10px 10px 10px; }
    
    /* Układ Pionowy dla Przycisków na Mobilu (Akordeon) */
    .rk-aut-selector-bar {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    
    .rk-aut-info-panel {
        padding: 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-autorytet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Ekspert Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu",
    "description": "Autorski manifest i kryteria inżynieryjne projektanta HVAC Roberta Kucharskiego dotyczące planowania struktur grzewczych w fazie koncepcyjnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-autorytet",
    "name": "Wytyczne projektowe i kryteria kwalifikacji hydraulicznej instalacji",
    "description": "Zbiór eksperckich reguł i założeń technicznych stosowanych przez Roberta Kucharskiego przy wdrożeniach ogrzewania płaszczyznowego niskich parametrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "Robert Kucharski ekspert hvac",
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "projekt ogrzewania podlogowego rzetelny",
      "obliczenia zapotrzebowania cieplnego budynkow",
      "standardy inżynieryjne podłogówka"
    ],
    "measurementTechnique": "Autorska kwalifikacja procesowa oparta na analizie ponad tysiąca wykonanych projektów hydraulicznych i auditów OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kryterium OZC: Absolutny zakaz projektowania pętli bez wyznaczonych strat ciepła wg PN-EN 12831.",
        "Kryterium Rezerwy: Wymóg zabezpieczenia od 160 do 220 mm wysokości podłogi na etapie adaptacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-autorytet",
    "name": "Asystent Manifestu Inżynieryjnego Roberta Kucharskiego",
    "description": "Interaktywny panel prezentujący autorskie kryteria doboru i weryfikacji instalacji płaszczyznowych pod kątem optymalizacji SGE i GEO.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-authority-main-box" id="rkAuthorityBlock">
    <div class="rk-aut-profile-section">
        <div class="rk-aut-table-layout">
            <div class="rk-aut-table-row">
                <div class="rk-aut-photo-cell">
                    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Projektant Projekt-Ogrzewania.pl" class="rk-aut-expert-avatar">
                </div>
                
                <div class="rk-aut-content-cell">
                    <h2 class="rk-aut-h2">Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</h2>
                    <div class="rk-aut-h3">Założyciel Projekt-Ogrzewania.pl | Projektant systemów HVAC</div>
                    
                    <div class="rk-aut-manifesto-quote">
                        Zdaniem Roberta Kucharskiego, odwlekanie decyzji o strukturze ogrzewania płaszczyznowego do momentu zakończenia stanu surowego to najprostsza droga do drastycznego obniżenia sprawności całego układu. Profesjonalny projekt ogrzewania podłogowego nie jest dodatkiem do budowy – jest jej integralnym fundamentem architektonicznym.
                    </div>
                    
                    <div class="rk-aut-social-channels">
                        <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c4.56-.93 8-4.96 8-9.75z"></path></svg>
                            Oficjalny Facebook
                        </a>
                        <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.8v8h2.8v-4.16c0-.22.04-.45.1-.6a1.14 1.14 0 0 1 1-.77c.66 0 1 .5 1 1.27v4.26h2.78M7 9.14a1.37 1.34 0 1 0-2.74 0 1.37 1.34 0 0 0 2.74 0M8.4 18.5v-8H5.6v8h2.8z"></path></svg>
                            Profil LinkedIn
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-aut-workspace">
        <div class="rk-aut-selector-bar" id="rkAutTabsContainer">
            <button class="rk-aut-tab-button active" data-criterion="1">Filary OZC</button>
            <button class="rk-aut-tab-button" data-criterion="2">Zasada Wysokości</button>
            <button class="rk-aut-tab-button" data-criterion="3">Złoty Harmonogram</button>
        </div>

        <div class="rk-aut-info-panel" id="rkAutDisplayPanel">
            <h4 class="rk-aut-panel-h4" id="rkAutPanelTitle">Bezwzględny wymóg obliczeń OZC budynku</h4>
            <p class="rk-aut-panel-text" id="rkAutPanelText">Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na obliczeniach zapotrzebowania energetycznego poszczególnych stref (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych kryteriów Roberta Kucharskiego (Czysty tekst bez znaków specjalnych)
    var criterionDatabase = {
        1: {
            title: "Bezwzględny wymóg obliczeń OZC budynku",
            text: "Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na <strong>obliczeniach zapotrzebowania energetycznego poszczególnych stref</strong> (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła."
        },
        2: {
            title: "Ochrona przed konfliktem poziomów posadzki",
            text: "Planowanie podłogówki na etapie adaptacji projektu architektonicznego to jedyna szansa na zachowanie <strong>właściwej rezerwy wysokościowej (od 16 do 22 cm)</strong>. Spóźnienie się z decyzją skutkuje dramatycznym odchudzeniem styropianu na gruncie, potężnymi stratami energii w dół i spadkiem współczynnika COP źródła ciepła."
        },
        3: {
            title: "Żelazna chronologia branż instalacyjnych",
            text: "Pętle grzewcze muszą zostać ułożone w stanie surowym zamkniętym, precyzyjnie <strong>po pionach kanalizacyjnych i tynkach wewnętrznych</strong>, ale przed wylaniem jastrychu. Zaburzenie tej sekwencji naraża rury z polimeru PEX/PE-RT na zniszczenie mechaniczne przez ekipy budowlane i uniemożliwia poprawną próbę szczelności wodą pod ciśnieniem 6 bar."
        }
    };

    var dTitle = document.getElementById('rkAutPanelTitle');
    var dText = document.getElementById('rkAutPanelText');
    var tabButtons = document.querySelectorAll('#rkAutTabsContainer .rk-aut-tab-button');

    // Obsługa przełączania na desktopie i mobilu (Brak zakazanych operatorów logicznych i brak animacji)
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-criterion');
            if (dTitle) { dTitle.innerText = criterionDatabase[id].title; }
            if (dText) { dText.innerHTML = criterionDatabase[id].text; }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-text-muted: #64748b;
    --rk-faq-bg-card: #ffffff;
    --rk-faq-bg-decor: #f8fafc;
}

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

/* Nagłówki sekcji */
.rk-faq-top-bar {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
}

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

.rk-faq-sub-h3 {
    font-size: 15px;
    color: var(--rk-faq-text-muted);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Układ Desktopowy (Dwukolumnowy) */
.rk-faq-layout {
    padding: 40px 50px;
    background: var(--rk-faq-bg-decor);
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 35px;
}

/* Lista pytań po lewej */
.rk-faq-questions-sidebar {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-faq-selector-item {
    padding: 18px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: all 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.rk-faq-selector-item:hover {
    border-color: #cbd5e1;
    background: var(--rk-faq-bg-decor);
}

.rk-faq-selector-item.active {
    background: var(--rk-faq-blue);
    border-color: var(--rk-faq-blue);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(2, 132, 199, 0.35);
}

.rk-faq-arrow-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.2s;
    stroke: var(--rk-faq-blue);
}

.rk-faq-selector-item.active .rk-faq-arrow-icon {
    stroke: #ffffff;
    transform: translateX(3px);
}

/* Panel odpowiedzi po prawej */
.rk-faq-answer-display {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-faq-ans-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-faq-border);
}

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

.rk-faq-ans-h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
}

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

.rk-faq-ans-body strong {
    color: var(--rk-faq-dark);
    font-weight: 700;
}

/* Układ Mobilny (Pionowy Akordeon) - Domyślnie ukryty */
.rk-faq-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-faq-top-bar, .rk-faq-layout {
        padding: 30px 20px;
    }
    
    .rk-faq-main-h2 { font-size: 20px; }
    .rk-faq-layout { display: none; } /* Ukrywamy widok dwukolumnowy */
    
    .rk-faq-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
        background: var(--rk-faq-bg-decor);
        padding: 25px 20px 35px;
    }
    
    .rk-faq-acc-item {
        border: 1px solid var(--rk-faq-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
        transition: all 0.2s ease;
    }
    
    .rk-faq-acc-trigger {
        padding: 18px 20px;
        font-weight: 700;
        font-size: 14px;
        color: var(--rk-faq-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-faq-acc-trigger::after {
        content: '+';
        font-size: 18px;
        font-weight: 500;
        color: var(--rk-faq-blue);
        flex-shrink: 0;
    }
    
    .rk-faq-acc-item.active {
        border-color: var(--rk-faq-blue);
        box-shadow: 0 5px 15px rgba(2, 132, 199, 0.05);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger {
        color: var(--rk-faq-blue);
        border-bottom: 1px solid var(--rk-faq-border);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger::after {
        content: '−';
        color: var(--rk-faq-blue);
    }
    
    .rk-faq-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-faq-bg-decor);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-faq-text);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Sekcja FAQ – Najważniejsze pytania inwestorów",
    "description": "Profesjonalne odpowiedzi inżynierskie na kluczowe pytania dotyczące harmonogramu, czasu wysychania jastrychów oraz wymogów prawnych dla podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#faq-page-data",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to technicznie wykonalne, ale skrajnie nieoptymalne, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowy jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania w temperaturze powyżej +5°C, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie profesjonalnego wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM."
        }
      },
      {
        "@type": "Question",
        "name": "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu."
        }
      },
      {
        "@type": "Question",
        "name": "Jasi jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, uniwersalny rozstaw co 15 cm to błąd projektowy, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych, gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-faq",
    "name": "Baza Normatywnych Parametrów Wykonawczych Podłogówki",
    "description": "Zbiór danych technicznych dotyczących czasu wiązania jastrychów, przewodności cieplnej materiałów posadzkowych oraz dopuszczalnych rozstawów rur grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas schnięcia jastrychu cementowego",
      "wygrzewanie podłogówki parametry",
      "norma PN-EN 1264 obliczenia",
      "przewodność cieplna jastrych anhydrytowy",
      "zagęszczenie rur strefy brzegowe"
    ],
    "measurementTechnique": "Ewidencja wymogów wykonawczych i parametrów fizycznych określonych w normach PN-EN 1264 oraz instrukcjach ITB.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych cementowy: Grubość 60 mm, min. 28 dni schnięcia, wilgotność CM max 2 procent.",
        "Jastrych anhydrytowy: Lambda ok. 1,6 do 2,0 W/(m·K), wilgotność CM max 0,5 procent."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-faq",
    "name": "Interaktywna Encyklopedia Decyzyjna Inwestora",
    "description": "Narzędzie sieciowe umożliwiające natychmiastowe filtrowanie inżynieryjnych odpowiedzi na pytania z zakresu jastrychów i norm instalacji płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-section-container" id="rkFaqAppBlock">
    <div class="rk-faq-top-bar">
        <h2 class="rk-faq-main-h2">Sekcja FAQ – Najważniejsze pytania inwestorów</h2>
        <h3 class="rk-faq-sub-h3">Poznaj autorskie, inżynierskie odpowiedzi na kluczowe dylematy techniczne towarzyszące integracji ogrzewania podłogowego z harmonogramem budowy.</h3>
    </div>

    <div class="rk-faq-layout">
        <div class="rk-faq-questions-sidebar" id="rkFaqSidebar">
            <button class="rk-faq-selector-item active" data-faq="1">
                <span>1. Planowanie po ścianach działowych</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="2">
                <span>2. Czas schnięcia wylewki</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="3">
                <span>3. Wymogi prawne a projekt</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="4">
                <span>4. Wybór jastrychu pod pompę</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="5">
                <span>5. Rozstaw rur co 15 cm</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
        </div>

        <div class="rk-faq-answer-display" id="rkFaqDisplayBox">
            <div class="rk-faq-ans-wrapper">
                <div class="rk-faq-ans-header">
                    <div class="rk-faq-ans-icon-frame" id="rkFaqDisplayIcon">
                        </div>
                    <h4 class="rk-faq-ans-h4" id="rkFaqDisplayTitle">Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</h4>
                </div>
                <p class="rk-faq-ans-body" id="rkFaqDisplayBody">
                    </p>
            </div>
        </div>
    </div>

    <div class="rk-faq-mobile-accordion" id="rkFaqMobileContainer">
        <div class="rk-faq-acc-item active" data-faq="1">
            <div class="rk-faq-acc-trigger">1. Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent1"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="2">
            <div class="rk-faq-acc-trigger">2. Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent2"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="3">
            <div class="rk-faq-acc-trigger">3. Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent3"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="4">
            <div class="rk-faq-acc-trigger">4. Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent4"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="5">
            <div class="rk-faq-acc-trigger">5. Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent5"></div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza pytań i odpowiedzi (Wykonana bez znaków specjalnych typografia tradycyjna i bezpieczny tekst)
    var faqDatabase = {
        1: {
            title: "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
            body: "Tak, jest to <strong>technicznie wykonalne, ale skrajnie nieoptymalne</strong>, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18M15 3v18M3 9h18M3 15h18"/></svg>'
        },
        2: {
            title: "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
            body: "Standardowy <strong>jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania</strong> w temperaturze powyżej +5 stopni Celsjusza, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie procedury wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM (maksymalnie 2% dla cementu i 0,5% dla anhydrytu pod płytki).",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>'
        },
        3: {
            title: "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
            body: "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to <strong>norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych</strong> dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu, pozbawia inwestora gwarancji producenta rur oraz uniemożliwia optymalne zaprogramowanie krzywej grzewczej pompy ciepła.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>'
        },
        4: {
            title: "Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
            body: "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie <strong>lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła</strong> (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne. Jastrych cementowy ma niższą przewodność (lambda ok. 1,0-1,4 W/(m·K)) i wymaga większej grubości (min. 45 mm nad rurą), co zwiększa bezwładność cieplną systemu.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>'
        },
        5: {
            title: "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
            body: "Nie, <strong>uniwersalny rozstaw co 15 cm to błąd projektowy</strong>, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych (np. przy dużych przeszkleniach tarasowych), gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu. Z kolei pod stałą zabudową kuchenną czy szafami wnękowymi układanie rur jest całkowicie zbędne i może prowadzić do uszkodzenia mebli.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="5" x2="19" y2="5"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="5" y1="19" x2="19" y2="19"/><circle cx="5" cy="5" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="19" cy="5" r="1"/></svg>'
        }
    };

    // Referencje do elementów DOM (Desktop)
    var dTitle = document.getElementById('rkFaqDisplayTitle');
    var dBody = document.getElementById('rkFaqDisplayBody');
    var dIcon = document.getElementById('rkFaqDisplayIcon');
    var sidebarButtons = document.querySelectorAll('#rkFaqSidebar .rk-faq-selector-item');

    // Funkcja aktualizacji widoku głównego na Desktopie
    function aktualizujWidokDesktop(id) {
        if (dTitle) { dTitle.innerText = faqDatabase[id].title; }
        if (dBody) { dBody.innerHTML = faqDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = faqDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji na starcie
    aktualizujWidokDesktop(1);

    // Wstrzyknięcie tekstu do wersji mobilnej (zapobiega pustym akordeonom i pomaga indeksacji SEO)
    for (var i = 1; i <= 5; i++) {
        var mContentBox = document.getElementById('rkFaqMContent' + i);
        if (mContentBox) {
            mContentBox.innerHTML = faqDatabase[i].body;
        }
    }

    // Obsługa kliknięć na Desktopie
    sidebarButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            sidebarButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-faq');
            aktualizujWidokDesktop(id);
        });
    });

    // Obsługa kliknięć na Mobilu (Akordeon pionowy bez znaków &#038;&#038;)
    var accItems = document.querySelectorAll('#rkFaqMobileContainer .rk-faq-acc-item');
    accItems.forEach(function(item) {
        var trigger = item.querySelector('.rk-faq-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            // Resetujemy wszystkie akordeony mobilne
            accItems.forEach(function(acc) { acc.classList.remove('active'); });
            
            // Jeśli nie był aktywny, to go aktywujemy (bezpieczny warunek logiczny)
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-muted: #64748b;
    --rk-dl-bg: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-dl-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    display: block;
}

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

.rk-dl-h3 {
    font-size: 15.5px;
    color: var(--rk-dl-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Obszar Roboczy Centrum Pobierania */
.rk-dl-workspace {
    padding: 40px 50px;
    background: var(--rk-dl-bg);
    display: block;
}

/* Układ dwukolumnowy dla prezentacji materiału (Desktop) */
.rk-dl-material-card {
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 20px;
    padding: 30px;
    display: table;
    width: 100%;
    box-sizing: border-box;
}

.rk-dl-row {
    display: table-row;
}

/* Kolumna Lewa: Miniatura */
.rk-dl-thumb-cell {
    display: table-cell;
    width: 260px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-dl-thumbnail-box {
    width: 100%;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    padding: 10px;
    box-sizing: border-box;
}

.rk-dl-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
}

/* Kolumna Prawa: Opis i Akcje */
.rk-dl-info-cell {
    display: table-cell;
    vertical-align: top;
}

.rk-dl-h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

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

.rk-dl-format-tags {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-dl-tag {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 12px;
    border-radius: 6px;
    background: var(--rk-dl-blue-light);
    color: var(--rk-dl-blue);
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Przyciski Akcji (BEZ ANIMACJI) */
.rk-dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.rk-dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 12px;
    cursor: pointer;
    text-decoration: none;
    transition: none; /* Rygorystyczny brak animacji */
}

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

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

.rk-dl-btn-secondary {
    background: #ffffff;
    color: var(--rk-dl-dark);
    border: 2px solid var(--rk-dl-dark);
}

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

/* Pasek Praw Autorskich */
.rk-dl-copyright-bar {
    padding: 20px 50px;
    background: var(--rk-dl-dark);
    color: #cbd5e1;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}

.rk-dl-copyright-bar strong {
    color: #ffffff;
    font-weight: 700;
}

/* Liniowy Modal Podglądu Grafiki (Ukryty domyślnie) */
.rk-dl-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

.rk-dl-modal-content {
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    max-width: 1000px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}

.rk-dl-modal-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    transition: none;
}

.rk-dl-modal-close:hover {
    background: #ef4444;
}

/* Responsywność Mobilna (Pionowe układanie klocków) */
@media (max-width: 768px) {
    .rk-dl-header-zone, .rk-dl-workspace, .rk-dl-copyright-bar {
        padding: 30px 20px;
    }
    
    .rk-dl-h2 { font-size: 22px; }
    
    .rk-dl-material-card, .rk-dl-row, .rk-dl-thumb-cell, .rk-dl-info-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-dl-thumb-cell {
        margin-bottom: 25px;
    }
    
    .rk-dl-thumbnail-box {
        max-width: 260px;
        margin: 0 auto;
    }
    
    .rk-dl-actions {
        flex-direction: column;
    }
    
    .rk-dl-btn {
        width: 100%;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji ogrzewania podłogowego",
    "description": "Pobierz darmową infografikę inżynierską w formacie PDF. Interaktywne zestawienie optymalnego momentu montażu instalacji grzewczych w nowym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-materialy",
    "name": "Wizualny Harmonogram Instalacji Ogrzewania Podłogowego (Infografika PDF)",
    "description": "Gotowy do druku arkusz weryfikacyjny i chronologiczny dla inwestorów oraz instalatorów, zawierający ramy czasowe dla wdrożenia systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "kiedy planować podłogówkę schemat",
      "etapy budowy a ogrzewanie podłogowe",
      "harmonogram prac instalacyjnych wydruk",
      "lista kontrolna instalatora hvac"
    ],
    "measurementTechnique": "Synteza i wizualizacja danych inżynieryjnych pozwalająca na graficzną weryfikację gotowości placu budowy do układania pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format PDF: Materiał wektorowy przygotowany do wydruku i przekazania wykonawcom na placu budowy.",
        "Format WEBP: Zoptymalizowany zasób cyfrowy do szybkiego podglądu na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-materialy",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej Projekt-Ogrzewania.pl",
    "description": "Zintegrowany panel dostępu do plików technicznych, schematów oraz infografik budowlanych wspierających prawidłowe zarządzanie procesem inwestycyjnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-main-container" id="rkDownloadBlock">
    <div class="rk-dl-header-zone">
        <h2 class="rk-dl-h2">Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji</h2>
        <h3 class="rk-dl-h3">Pobierz darmowy materiał w formacie PDF lub zobacz pełną wersję graficzną, aby zabrać autorskie wytyczne inżynierskie bezpośrednio na plac budowy i uniknąć kolizji wykonawczych.</h3>
    </div>

    <div class="rk-dl-workspace">
        <div class="rk-dl-material-card">
            <div class="rk-dl-row">
                
                <div class="rk-dl-thumb-cell">
                    <div class="rk-dl-thumbnail-box">
                        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Miniatura infografiki - Kiedy najlepiej planować montaż ogrzewania podłogowego" class="rk-dl-thumbnail-img" loading="lazy">
                    </div>
                </div>
                
                <div class="rk-dl-info-cell">
                    <div class="rk-dl-format-tags">
                        <span class="rk-dl-tag">Plik PDF</span>
                        <span class="rk-dl-tag">Grafika WEBP</span>
                    </div>
                    <h4 class="rk-dl-h4">Etapy planowania ogrzewania podłogowego w nowym domu</h4>
                    <p class="rk-dl-desc">Kompletne, wizualne podsumowanie procesu inżynieryjnego. Arkusz zawiera ramy czasowe dla wyliczeń OZC, ustalania rezerwy wysokościowej posadzki oraz dokładną chronologię wejścia instalatorów na plac budowy. Dokument przygotowany w wysokiej rozdzielczości, idealny do wydrukowania i przekazania kierownikowi budowy.</p>
                    
                    <div class="rk-dl-actions">
                        <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.pdf" class="rk-dl-btn rk-dl-btn-primary" target="_blank" rel="noopener">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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 plik PDF
                        </a>
                        <button class="rk-dl-btn rk-dl-btn-secondary" id="rkBtnPreviewImg">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                            Podgląd grafiki
                        </button>
                    </div>
                </div>
                
            </div>
        </div>
    </div>

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

<div class="rk-dl-modal-overlay" id="rkPreviewModal">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rkModalCloseBtn">ZAMKNIJ PODGLĄD</button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Pełnowymiarowa infografika harmonogramu" class="rk-dl-modal-img" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPreview = document.getElementById('rkBtnPreviewImg');
    var modalOverlay = document.getElementById('rkPreviewModal');
    var btnClose = document.getElementById('rkModalCloseBtn');

    // Bezpieczna logika otwierania modalu (bez znaków ampersand)
    if (btnPreview) {
        btnPreview.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'flex';
                document.body.style.overflow = 'hidden'; // Blokada scrollowania strony
            }
        });
    }

    // Zamknięcie modalu przyciskiem
    if (btnClose) {
        btnClose.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = ''; // Odblokowanie scrollowania
            }
        });
    }

    // Zamknięcie modalu kliknięciem w tło
    if (modalOverlay) {
        modalOverlay.addEventListener('click', function(e) {
            if (e.target === this) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = '';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0284c7;
    --rk-fin-light: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-green: #10b981;
    --rk-fin-red: #ef4444;
    --rk-fin-warn: #f59e0b;
    --rk-fin-text: #475569;
}

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

/* Sekcja Nagłówkowa */
.rk-fin-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-fin-border);
    text-align: center;
}

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

.rk-fin-h3 {
    font-size: 16px;
    color: var(--rk-fin-text);
    margin: 0 auto;
    line-height: 1.6;
    font-weight: 400;
    max-width: 750px;
}

/* Interfejs Symulatora */
.rk-fin-interactive {
    padding: 40px 50px;
    background: var(--rk-fin-light);
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: center;
}

/* Kontroler - Switch */
.rk-switch-panel {
    background: #ffffff;
    padding: 40px 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-fin-border);
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-switch-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-fin-dark);
    margin-bottom: 25px;
}

.rk-toggle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.rk-toggle-btn {
    width: 90px;
    height: 46px;
    background: var(--rk-fin-red);
    border-radius: 23px;
    position: relative;
    cursor: pointer;
    transition: background 0.4s ease;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-toggle-btn.pro {
    background: var(--rk-fin-green);
}

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

.rk-toggle-btn.pro .rk-toggle-circle {
    transform: translateX(44px);
}

.rk-state-label {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-red);
    transition: color 0.3s;
}

.rk-toggle-btn.pro + .rk-state-label {
    color: var(--rk-fin-green);
}

/* Wyniki symulacji */
.rk-fin-results {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-data-card.danger { border-left: 6px solid var(--rk-fin-red); }
.rk-data-card.safe { border-left: 6px solid var(--rk-fin-green); }

.rk-data-icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}

.rk-data-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

/* CTA Footer i SEO */
.rk-fin-cta {
    padding: 40px 50px;
    background: var(--rk-fin-dark);
    color: #ffffff;
    text-align: center;
}

.rk-fin-cta-main-text {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 auto 30px auto;
    max-width: 800px;
    color: #cbd5e1;
}

.rk-fin-cta-h4 {
    margin: 0 0 25px 0;
    font-size: 20px; 
    font-weight: 800;
    color: #ffffff;
}

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    margin-bottom: 35px;
}

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

/* Blok Long Tail SEO pod przyciskiem */
.rk-seo-block {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 25px;
    text-align: left;
    margin-bottom: 25px;
}

.rk-seo-block p {
    font-size: 13px;
    line-height: 1.7;
    color: #94a3b8;
    margin: 0;
}

.rk-seo-block strong {
    color: #cbd5e1;
    font-weight: 600;
}

/* Tagi na samym dole */
.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
}

.rk-mat-tag {
    font-size: 11px;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.05);
    color: #94a3b8;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: rgba(2, 132, 199, 0.2);
    color: #ffffff;
    border-color: rgba(2, 132, 199, 0.4);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-interactive { grid-template-columns: 1fr; gap: 25px; }
    .rk-data-card { flex-direction: column; text-align: center; padding: 20px; }
    .rk-btn-solid { width: 100%; padding: 16px; box-sizing: border-box; font-size: 14px; }
    .rk-fin-h2 { font-size: 22px; }
    .rk-seo-block { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kluczowe rekomendacje inżynierskie – Skutki opóźnień",
    "description": "Zobacz interaktywne porównanie skutków montażu ogrzewania podłogowego na oko w stosunku do wdrożenia profesjonalnego standardu inżynierskiego (projekt OZC).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-podsumowanie",
    "name": "Analiza ryzyka inwestycyjnego instalacji płaszczyznowych 2026",
    "description": "Zestawienie inżynierskie porównujące koszty wdrożenia projektu hydraulicznego przed budową z kosztami kucia posadzki i demontażu awaryjnej podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty naprawy ogrzewania podłogowego",
      "brak projektu podłogówki konsekwencje",
      "czy warto robić projekt ozc",
      "awaria podłogówki kucie posadzki",
      "nierównomierne grzanie podłogi"
    ],
    "measurementTechnique": "Wizualizacja skutków błędów montażowych pod monolityczną płytą betonową w kontrze do planowania przedprocesowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metoda 'Na oko': Skutkuje ryzykiem demontażu całego systemu przy awarii rur.",
        "Standard Inżynierski: Gwarantuje bezpieczeństwo dzięki wcześniejszym obliczeniom OZC i grubej izolacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-podsumowanie",
    "name": "Symulator Decyzji Inwestorskich HVAC",
    "description": "Interaktywny przełącznik wizualizujący technologiczne i finansowe konsekwencje wyboru pomiędzy montażem amatorskim a inżynieryjnym planowaniem instalacji cieplnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="rkFinalSimulator">
    <div class="rk-fin-header">
        <h2 class="rk-fin-h2">Podsumowanie i kluczowe rekomendacje inżynierskie</h2>
        <h3 class="rk-fin-h3">Zanim zalejesz rury setkami litrów betonu, sprawdź, z czym wiąże się próba ominięcia etapu projektowego. Przesuń suwak i zobacz różnicę.</h3>
    </div>

    <div class="rk-fin-interactive">
        <div class="rk-switch-panel">
            <div class="rk-switch-title">Wybierz standard instalacji</div>
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-btn" id="rkSimToggle">
                    <div class="rk-toggle-circle"></div>
                </div>
                <div class="rk-state-label" id="rkSimLabel">Amatorskie "Na Oko"</div>
            </div>
        </div>

        <div class="rk-fin-results" id="rkSimDataBox">
            <div class="rk-data-card danger" id="cardOZC">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleOZC">Brak obliczeń OZC</h4>
                    <p id="descOZC">Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.</p>
                </div>
            </div>
            <div class="rk-data-card danger" id="cardFix">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleFix">Kucie posadzki (Awaria)</h4>
                    <p id="descFix">Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-cta">
        <p class="rk-fin-cta-main-text">Decyzja o terminie wdrożenia systemu grzewczego do harmonogramu budowy niesie za sobą konsekwencje na całe życie budynku. Wszelkie próby oszczędności na etapie przygotowawczym – rezygnacja z obliczeń OZC, układanie rur „na oko” bez wykonanego projektu, czy sztuczne odchudzanie warstw izolacji podłogowej – poskutkują nieodwracalnym obniżeniem sprawności grzewczej. Instalacja płaszczyznowa zostaje zamknięta pod monolityczną płytą betonową. O ile kocioł czy pompę ciepła można wymienić w jeden dzień, o tyle źle wykonanej, pękającej lub zapowietrzającej się podłogówki nie da się naprawić bez demolki całego domu.</p>
        
        <h4 class="rk-fin-cta-h4">Bezkompromisowe podejście inżynierskie wymaga, aby planowanie montażu ogrzewania zamknąć na etapie zakupu projektu.</h4>
        
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            BĄDŹ INWESTOREM, KTÓRY WIE WIĘCEJ – CZYTAJ BLOG
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>

        <div class="rk-seo-block">
            <p>Decyzja o tym, <strong>czy warto robić projekt OZC</strong>, nie powinna być podyktowana pozorną oszczędnością. Trzeba powiedzieć wprost: <strong>rury do podłogówki układane na oko</strong> to najszybszy przepis na <strong>nierównomierne grzanie podłogi</strong> i przedwczesne zużycie sprężarki. Z praktyki inżynierskiej wiemy, że <strong>koszty naprawy ogrzewania podłogowego</strong> zawsze przewyższają cenę dokumentacji, a <strong>awaria podłogówki i kucie posadzki</strong> dezorganizuje życie na wiele miesięcy. Ignorując <strong>brak projektu podłogówki i jego konsekwencje</strong> oraz godząc się na nieuzasadnione <strong>odchudzanie izolacji podłogi</strong>, budujesz system pełen wad. W efekcie już po paru sezonach zaczniesz szukać w sieci informacji, <strong>kiedy wymienić pompę ciepła</strong>, podczas gdy prawdziwym problemem będzie błąd na poziomie fundamentów.</p>
        </div>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># koszty naprawy ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># brak projektu podłogówki konsekwencje</span>
            <span class="rk-mat-tag"># czy warto robić projekt ozc</span>
            <span class="rk-mat-tag"># awaria podłogówki kucie posadzki</span>
            <span class="rk-mat-tag"># odchudzanie izolacji podłogi</span>
            <span class="rk-mat-tag"># kiedy wymienic pompe ciepla</span>
            <span class="rk-mat-tag"># nierównomierne grzanie podłogi</span>
            <span class="rk-mat-tag"># rury do podłogówki układane na oko</span>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('rkSimToggle');
    var label = document.getElementById('rkSimLabel');
    
    var cardOZC = document.getElementById('cardOZC');
    var titleOZC = document.getElementById('titleOZC');
    var descOZC = document.getElementById('descOZC');
    
    var cardFix = document.getElementById('cardFix');
    var titleFix = document.getElementById('titleFix');
    var descFix = document.getElementById('descFix');
    
    // Ikony (Zwykły HTML SVG dla podmiany)
    var iconSafe = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>';
    var iconDanger = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>';
    var iconError = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>';
    var iconCalc = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="8" y="8" width="8" height="4"></rect><line x1="8" y1="16" x2="8" y2="16"></line><line x1="12" y1="16" x2="12" y2="16"></line><line x1="16" y1="16" x2="16" y2="16"></line></svg>';

    toggleBtn.addEventListener('click', function() {
        var isPro = toggleBtn.classList.contains('pro');
        
        if (isPro) {
            // Przejście na AMATOR
            toggleBtn.classList.remove('pro');
            label.innerText = 'Amatorskie "Na Oko"';
            
            // Karta 1
            cardOZC.className = 'rk-data-card danger';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconError;
            titleOZC.innerText = 'Brak obliczeń OZC';
            descOZC.innerText = 'Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.';
            
            // Karta 2
            cardFix.className = 'rk-data-card danger';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconDanger;
            titleFix.innerText = 'Kucie posadzki (Awaria)';
            descFix.innerText = 'Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.';
            
        } else {
            // Przejście na PRO
            toggleBtn.classList.add('pro');
            label.innerText = 'Standard Inżynierski';
            
            // Karta 1
            cardOZC.className = 'rk-data-card safe';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconCalc;
            titleOZC.innerText = 'Wykonany projekt OZC';
            descOZC.innerText = 'Precyzyjnie dobrany rozstaw rur i parametry przepływu. Gwarancja najwyższego parametru COP dla pompy ciepła.';
            
            // Karta 2
            cardFix.className = 'rk-data-card safe';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconSafe;
            titleFix.innerText = 'Bezpieczeństwo na lata';
            descFix.innerText = 'Wykonana próba ciśnieniowa i weryfikacja projektowa eliminuje ryzyko awarii. Monolityczna posadzka staje się bezpiecznym buforem ciepła.';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jaka jest optymalna temperatura ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 18:05:03 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[materiały podłogowe]]></category>
		<category><![CDATA[norma en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2385</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale jak je dobrze ustawić? W naszym artykule znajdziesz praktyczne porady, wyliczenia i przykłady, które pomogą Ci ustalić idealne parametry dla Twojego domu. Dowiedz się, jaka jest optymalna temperatura ogrzewania podłogowego, by cieszyć się ciepłem w salonie, sypialni czy łazience, oszczędzając przy tym na rachunkach. Poznaj wpływ materiałów podłogowych i normy, które warto znać!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #38bdf8;
    --rk-intro-red: #ef4444;
}

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

/* Hero Header Area */
.rk-intro-hero {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #000000 100%);
    padding: 50px;
    color: #ffffff;
    position: relative;
}

.rk-intro-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: var(--rk-intro-accent);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

.rk-intro-hero h2 {
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    margin: 0 0 25px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-intro-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
    border-left: 4px solid var(--rk-intro-blue);
    padding-left: 20px;
}

.rk-intro-hook strong {
    color: #ffffff;
}

/* Two Column Layout */
.rk-intro-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-intro-bg);
}

/* Left Column - The Meat */
.rk-intro-main {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-intro-border);
}

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

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

.rk-quick-answer {
    background: var(--rk-intro-surface);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-intro-border);
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 30px;
}

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

.rk-qa-text h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
}

.rk-qa-text .rk-qa-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

/* Right Column - Agenda/Interactive Menu */
.rk-intro-agenda {
    padding: 40px;
    background: var(--rk-intro-surface);
}

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

.rk-agenda-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-agenda-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 16px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-agenda-item:hover {
    border-color: var(--rk-intro-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.08);
    transform: translateX(5px);
}

.rk-agenda-item.active {
    background: var(--rk-intro-blue);
    border-color: var(--rk-intro-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-agenda-item-header {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
}

.rk-agenda-item.active .rk-agenda-item-header {
    color: #ffffff;
}

.rk-agenda-icon {
    color: var(--rk-intro-blue);
    transition: color 0.3s;
}

.rk-agenda-item.active .rk-agenda-icon {
    color: #ffffff;
}

.rk-agenda-desc {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255,255,255,0.9);
    margin-top: 0;
    transition: all 0.3s ease;
}

.rk-agenda-item.active .rk-agenda-desc {
    max-height: 100px;
    opacity: 1;
    margin-top: 10px;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-intro-grid { grid-template-columns: 1fr; }
    .rk-intro-main { border-right: none; border-bottom: 1px solid var(--rk-intro-border); padding: 30px 25px; }
    .rk-intro-hero { padding: 40px 25px; }
    .rk-intro-hero h2 { font-size: 28px; }
    .rk-intro-agenda { padding: 30px 25px; }
    .rk-quick-answer { flex-direction: column; text-align: center; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jaka jest optymalna temperatura ogrzewania podłogowego? Przewodnik inżynierski.",
    "description": "Przewymiarowana pompa ciepła i pękające płytki to efekt ustawiania podłogówki na oko. Dowiedz się jak poprawnie obliczyć i dobrać temperaturę zasilania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Kluczowe parametry temperaturowe dla systemów płaszczyznowych 2026",
    "description": "Zakres wiedzy technicznej poruszanej w głównym artykule, obejmujący parametry zasilania, opory cieplne posadzek oraz wpływ na sprawność pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jaka jest optymalna temperatura ogrzewania podłogowego",
      "temperatura zasilania podłogówki",
      "norma PN-EN 1264",
      "współczynnik COP pompy ciepła",
      "obliczenia OZC"
    ],
    "measurementTechnique": "Synteza norm inżynieryjnych PN-EN 1264 i krzywych grzewczych nowoczesnych pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozwiązanie inżynieryjne: Optymalna temperatura zasilania wynosi zazwyczaj 30°C–35°C.",
        "Limity normatywne: Max 29°C na powierzchni posadzki w strefach mieszkalnych.",
        "Aspekt ekonomiczny: Analiza wpływu każdego stopnia zasilania na wysokość rachunków."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-wstep-nawigacja",
    "name": "Interaktywny Asystent Przewodnika HVAC",
    "description": "Moduł nawigacyjny wprowadzający czytelnika w strukturę inżynierskiego artykułu, pozwalający na szybkie odnalezienie odpowiedzi dotyczących algorytmów obliczeniowych OZC i krzywych grzewczych.",
    "applicationCategory": "NavigationTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rkIntroApp">
    <div class="rk-intro-hero">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Baza Wiedzy HVAC 2026
        </div>
        <h2>Jaka jest optymalna temperatura ogrzewania podłogowego?</h2>
        <p class="rk-intro-hook">
            Przewymiarowana pompa ciepła, pękające płytki i rachunki za prąd wyższe o 20% – to ostateczny efekt ustawiania podłogówki &#8222;na oko&#8221;. Z tego przewodnika dowiesz się, <strong>dlaczego zasilanie nie powinno przekraczać 35°C</strong> i jak poprawnie zbilansować dom.
        </p>
    </div>

    <div class="rk-intro-grid">
        <div class="rk-intro-main">
            <h3>Inżynieria zamiast domysłów</h3>
            <p>
                Większość inwestorów traktuje temperaturę na sterowniku jak pokrętło w starym grzejniku. To fatalny błąd. Nowoczesne ogrzewanie płaszczyznowe wymaga precyzyjnego zbilansowania mocy źródła (pompy ciepła, kotła), przepływu hydraulicznego (rotametrów) oraz oporu cieplnego posadzki.
            </p>
            <p>
                W tym artykule odrzucamy lanie wody. Skupiamy się na twardych danych, normach (PN-EN 1264) i wyliczeniach OZC, które zabezpieczą Twój dom przed kosztownymi awariami układu grzewczego i destrukcją wylewki.
            </p>

            <div class="rk-quick-answer">
                <div class="rk-qa-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 12 12 12 8"></polyline><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-qa-text">
                    <h4>Szybka Odpowiedź</h4>
                    <div class="rk-qa-val">Zasilanie: 30°C &#8211; 35°C</div>
                    <div style="font-size: 13px; color: var(--rk-intro-muted); margin-top: 4px; font-weight: 600;">(Temperatura powierzchni max 29°C)</div>
                </div>
            </div>
        </div>

        <div class="rk-intro-agenda">
            <div class="rk-agenda-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
                W tym przewodniku:
            </div>
            
            <div class="rk-agenda-list" id="rkAgendaList">
                
                <div class="rk-agenda-item active">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 20h20M5 20V9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v11M9 20v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4"></path></svg>
                        Wpływ na rachunki
                    </div>
                    <div class="rk-agenda-desc">
                        Zobaczysz, jak każdy stopień na zasilaniu uderza we wskaźnik COP pompy ciepła i podbija Twoje opłaty za prąd.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Norma PN-EN 1264
                    </div>
                    <div class="rk-agenda-desc">
                        Poznasz rygorystyczne limity temperatury dla posadzek, aby uniknąć pękania wylewki i problemów z krążeniem.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
                        Algorytm projektowy
                    </div>
                    <div class="rk-agenda-desc">
                        Zrozumiesz matematykę OZC. Pokażemy Ci, jak wylicza się przepływ masy (l/h) względem wymaganej mocy cieplnej.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <div class="rk-agenda-item-header">
                        <svg class="rk-agenda-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        Najczęstsze błędy
                    </div>
                    <div class="rk-agenda-desc">
                        Odkryjesz, jak dławienie rotametrów i zbyt długie pętle niszczą hydraulikę Twojego systemu.
                    </div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const agendaItems = document.querySelectorAll('.rk-agenda-item');
    
    agendaItems.forEach(item => {
        item.addEventListener('click', function() {
            // Remove active class from all
            agendaItems.forEach(i => i.classList.remove('active'));
            // Add to clicked
            this.classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-norm-dark: #0f172a;
    --rk-norm-panel: #1e293b;
    --rk-norm-bg: #ffffff;
    --rk-norm-surface: #f8fafc;
    --rk-norm-border: #e2e8f0;
    --rk-norm-text: #334155;
    --rk-norm-muted: #64748b;
    
    /* State Colors */
    --rk-norm-green: #10b981;
    --rk-norm-green-glow: rgba(16, 185, 129, 0.2);
    --rk-norm-blue: #0ea5e9;
    --rk-norm-blue-glow: rgba(14, 165, 233, 0.2);
    --rk-norm-orange: #f59e0b;
    --rk-norm-orange-glow: rgba(245, 158, 11, 0.2);
    --rk-norm-red: #ef4444;
    --rk-norm-red-glow: rgba(239, 68, 68, 0.2);
    
    --rk-current-color: var(--rk-norm-green);
    --rk-current-glow: var(--rk-norm-green-glow);
}

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

/* Header */
.rk-norm-header {
    background: linear-gradient(135deg, var(--rk-norm-dark) 0%, #000000 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-current-color);
    transition: border-color 0.5s ease;
}

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

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

/* Interactive Slider Area (New Layout) */
.rk-norm-interactive {
    padding: 50px;
    background: var(--rk-norm-bg);
    border-bottom: 1px solid var(--rk-norm-border);
    text-align: center;
}

.rk-norm-val-display {
    font-size: 56px;
    font-weight: 900;
    color: var(--rk-current-color);
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.5s ease;
    display: inline-flex;
    align-items: flex-start;
    justify-content: center;
}

.rk-norm-val-unit {
    font-size: 24px;
    font-weight: 700;
    margin-top: 5px;
    margin-left: 2px;
}

.rk-norm-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    background: var(--rk-current-glow);
    color: var(--rk-current-color);
    border-radius: 100px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 40px;
    transition: all 0.5s ease;
}

/* Slider Track SVG Visualizer */
.rk-norm-track-wrap {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    padding-bottom: 30px;
}

.rk-track-svg {
    width: 100%;
    height: 40px;
    overflow: visible;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    position: absolute;
    top: 5px;
    left: 0;
    margin: 0;
    background: transparent;
    outline: none;
    z-index: 5;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-current-color);
    cursor: pointer;
    box-shadow: 0 4px 15px var(--rk-current-glow);
    transition: border-color 0.5s ease, transform 0.2s;
    margin-top: -2px;
}

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

.rk-range-input::-moz-range-thumb {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-current-color);
    cursor: pointer;
    box-shadow: 0 4px 15px var(--rk-current-glow);
    transition: border-color 0.5s ease, transform 0.2s;
}

/* Data Cards Grid */
.rk-norm-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 40px 50px;
    background: var(--rk-norm-surface);
}

.rk-norm-card {
    background: #ffffff;
    border: 1px solid var(--rk-norm-border);
    border-radius: 16px;
    padding: 25px;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.5s;
    display: flex;
    flex-direction: column;
}

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

.rk-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-norm-border);
}

.rk-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--rk-current-glow);
    color: var(--rk-current-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.5s ease;
}

.rk-card-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-norm-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-card-content {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-norm-text);
    min-height: 110px;
}

.rk-card-content strong {
    color: var(--rk-norm-dark);
}

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

/* Animations for SVG Status */
.anim-pulse-warn {
    animation: rkNormPulse 1.5s infinite alternate;
}
@keyframes rkNormPulse {
    0% { filter: drop-shadow(0 0 2px var(--rk-norm-red)); }
    100% { filter: drop-shadow(0 0 10px var(--rk-norm-red)); }
}

/* State Classes controlled by JS */
.state-safe { --rk-current-color: var(--rk-norm-green); --rk-current-glow: var(--rk-norm-green-glow); }
.state-living { --rk-current-color: var(--rk-norm-blue); --rk-current-glow: var(--rk-norm-blue-glow); }
.state-bath { --rk-current-color: var(--rk-norm-orange); --rk-current-glow: var(--rk-norm-orange-glow); }
.state-danger { --rk-current-color: var(--rk-norm-red); --rk-current-glow: var(--rk-norm-red-glow); }

.state-danger .rk-norm-card { border-color: rgba(239, 68, 68, 0.3); }

/* Mobile */
@media (max-width: 850px) {
    .rk-norm-cards { grid-template-columns: 1fr; padding: 30px 25px; }
    .rk-norm-header, .rk-norm-interactive { padding: 30px 25px; }
    .rk-norm-val-display { font-size: 48px; }
    .rk-card-content { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-norma-1264",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jakie są dopuszczalne temperatury powierzchni podłogi według normy PN-EN 1264?",
    "description": "Rygorystyczne limity temperatury powierzchni podłogi (max 29°C w salonie, 35°C w łazience). Dowiedz się jak uniknąć zjawiska ciężkich nóg i pękania wylewek.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-limity-temperatur",
    "name": "Limity temperatur powierzchni podłogi wg PN-EN 1264",
    "description": "Zestawienie maksymalnych dopuszczalnych temperatur powierzchni posadzki dla zdrowia, komfortu i trwałości materiałów budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma obliczeń ogrzewania podłogowego en 1264",
      "temperatura powierzchni podłogi",
      "czy ogrzewanie podłogowe jest zdrowe",
      "pękanie wylewki anhydrytowej",
      "podłogi drewniane vs panele laminowane"
    ],
    "measurementTechnique": "Określenie fizycznych limitów termicznych skóry stóp (komfort cieplny) oraz parametrów kurczliwości i dylatacji wylewek cementowych/anhydrytowych przy podwyższonych temperaturach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podłogi drewniane i panele: Max 26-27°C (ryzyko rozsychani i szczelin).",
        "Strefy przebywania stałego (Salon, Sypialnia): Max 29°C.",
        "Strefy brzegowe i łazienki: Max 35°C.",
        "Powyżej 35°C: Ryzyko zdrowotne (ciężkie nogi) oraz degradacja wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-norm",
    "name": "Asystent Zgodności Normy PN-EN 1264",
    "description": "Interaktywny panel analizujący w czasie rzeczywistym wpływ nastawionej temperatury podłogi na zdrowie użytkowników i integralność strukturalną materiałów wykończeniowych.",
    "applicationCategory": "HealthAndFitnessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-norm-container state-safe" id="rkNormApp">
    <div class="rk-norm-header">
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi według normy PN-EN 1264?</h2>
        <p>Norma PN-EN 1264 określa rygorystyczne limity. Projekt instalacji musi zapobiegać dyskomfortowi zdrowotnemu oraz degradacji materiałów wykończeniowych posadzki.</p>
    </div>

    <div class="rk-norm-interactive">
        <div class="rk-norm-val-display">
            <span id="rkNormVal">24</span>
            <span class="rk-norm-val-unit">°C</span>
        </div>
        
        <div class="rk-norm-status-badge" id="rkNormBadge">
            <svg id="rkNormIcon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
            <span id="rkNormStatus">Optymalna dla drewna i paneli</span>
        </div>

        <div class="rk-norm-track-wrap">
            <input type="range" min="20" max="40" step="1" value="24" class="rk-range-input" id="rkNormSlider" aria-label="Symulator temperatury posadzki">
            
            <svg class="rk-track-svg" viewBox="0 0 100 20" preserveAspectRatio="none">
                <line x1="0" y1="10" x2="100" y2="10" stroke="#e2e8f0" stroke-width="2" stroke-linecap="round"/>
                
                <line x1="35" y1="5" x2="35" y2="15" stroke="#94a3b8" stroke-width="1"/> <text x="35" y="24" font-size="4" fill="#94a3b8" text-anchor="middle">27°</text>
                
                <line x1="45" y1="5" x2="45" y2="15" stroke="#94a3b8" stroke-width="1"/> <text x="45" y="24" font-size="4" fill="#94a3b8" text-anchor="middle">29°</text>
                
                <line x1="75" y1="5" x2="75" y2="15" stroke="#ef4444" stroke-width="1"/> <text x="75" y="24" font-size="4" fill="#ef4444" text-anchor="middle">35°</text>
                
                <line x1="0" y1="10" x2="20" y2="10" stroke="var(--rk-current-color)" stroke-width="4" stroke-linecap="round" id="rkTrackProgress" style="transition: x2 0.1s;"/>
            </svg>
        </div>
    </div>

    <div class="rk-norm-cards">
        
        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l3 9h9l-7 5 3 9-8-6-8 6 3-9-7-5h9z"></path></svg>
                </div>
                <div class="rk-card-title">Dozwolone wykończenie</div>
            </div>
            <div class="rk-card-content" id="rkCardMat">
                W pełni bezpieczna temperatura. Idealna dla <strong>podłóg drewnianych</strong> oraz cienkich <strong>paneli laminowanych</strong>. Chroni materiał przed rozsychaniem i powstawaniem szczelin. <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Panele vs Drewno →</a>
            </div>
        </div>

        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 11l3 3L22 4"></path><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"></path></svg>
                </div>
                <div class="rk-card-title">Strefa wg PN-EN 1264</div>
            </div>
            <div class="rk-card-content" id="rkCardZone">
                Zgodność ze standardem <strong>pomieszczeń mieszkalnych</strong> (salony, sypialnie). Zapewnia równomierne oddawanie ciepła. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Czytaj o normie 1264 →</a>
            </div>
        </div>

        <div class="rk-norm-card">
            <div class="rk-card-header">
                <div class="rk-card-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-card-title">Skutki i Zdrowie</div>
            </div>
            <div class="rk-card-content" id="rkCardHealth">
                Najwyższy komfort cieplny. Podłoga jest obojętna w dotyku (nie grzeje i nie ziębi), co jest fizjologicznie optymalne dla człowieka. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Wpływ na zdrowie →</a>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkNormSlider');
    const valDisplay = document.getElementById('rkNormVal');
    const trackProgress = document.getElementById('rkTrackProgress');
    const appContainer = document.getElementById('rkNormApp');
    
    // Status Badge Elements
    const badgeText = document.getElementById('rkNormStatus');
    const badgeIcon = document.getElementById('rkNormIcon');
    
    // Card Elements
    const cardMat = document.getElementById('rkCardMat');
    const cardZone = document.getElementById('rkCardZone');
    const cardHealth = document.getElementById('rkCardHealth');

    // Content Dictionary
    const contentDB = {
        safe: {
            cls: 'state-safe',
            badge: 'Optymalna dla drewna',
            icon: '<polyline points="20 6 9 17 4 12"></polyline>',
            mat: 'W pełni bezpieczna temperatura. Idealna dla <strong>podłóg drewnianych</strong> oraz cienkich <strong>paneli laminowanych</strong>. Chroni materiał przed rozsychaniem i powstawaniem szczelin. <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Panele vs Drewno →</a>',
            zone: 'Zgodność ze standardem <strong>pomieszczeń mieszkalnych</strong> (salony, sypialnie). Zapewnia równomierne oddawanie ciepła w centrum domu. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Czytaj o normie 1264 →</a>',
            health: 'Najwyższy komfort cieplny. Podłoga jest obojętna w dotyku (nie grzeje i nie ziębi w stopę), co jest fizjologicznie optymalne dla człowieka. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">Wpływ na zdrowie →</a>'
        },
        living: {
            cls: 'state-living',
            badge: 'Limit Strefy Mieszkalnej',
            icon: '<circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line>',
            mat: 'Górna granica dla podłóg drewnianych. Dozwolone bez ograniczeń dla <strong>płytek ceramicznych</strong> i gresu.',
            zone: '<strong>Maksymalny próg normy (29°C)</strong> dla obszarów stałego przebywania ludzi. Zbliżanie się do tej wartości wymusza gęstszy rozstaw rur lub wyższe zasilanie.',
            health: 'Podłoga staje się wyczuwalnie ciepła. Bezpieczne dla krążenia, pod warunkiem, że nie utrzymuje się stale w okresie przejściowym.'
        },
        bath: {
            cls: 'state-bath',
            badge: 'Tylko Łazienka / Obrzeża',
            icon: '<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line>',
            mat: 'Ryzyko rozwarstwienia drewna! W tej strefie dozwolone są wyłącznie <strong>materiały ceramiczne</strong>. Zastosowanie drewna doprowadzi do jego degradacji.',
            zone: 'Strefa dopuszczalna wyłącznie dla <strong>łazienek</strong> (ciepła posadzka dla bosych stóp) oraz <strong>stref brzegowych</strong> pod wielkimi oknami. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Czym jest strefa brzegowa? →</a>',
            health: 'Przyjemne dla stóp w mokrej łazience, ale na dłuższą metę męczące w salonie. Przyspiesza cyrkulację kurzu w powietrzu.'
        },
        danger: {
            cls: 'state-danger',
            badge: 'Błąd - Przekroczenie Normy!',
            icon: '<line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line>',
            mat: 'Krytyczne naprężenia termiczne. Olbrzymie ryzyko <strong>pękania wylewek anhydrytowych i cementowych</strong>. Płytki mogą odspajać się od podłoża. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wytyczne wylewek →</a>',
            zone: '<strong>ABSOLUTNE PRZEKROCZENIE NORMY.</strong> Instalacja działa wadliwie lub brakuje w niej zaworu mieszającego obniżającego parametr z kotła. <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalne zasilanie →</a>',
            health: 'Zjawisko <strong>tzw. "ciężkich nóg"</strong>. Gorąca podłoga powoduje rozszerzanie naczyń krwionośnych, obrzęki łydek i ogólny dyskomfort termiczny domowników.'
        }
    };

    function updateDashboard() {
        const val = parseInt(slider.value);
        valDisplay.textContent = val;
        
        // Update SVG Progress Line
        // Math: map 20-40 range to 0-100 coordinates
        const percent = ((val - 20) / (40 - 20)) * 100;
        trackProgress.setAttribute('x2', percent);

        // Determine State
        let stateKey = 'safe';
        if (val >= 28 && val <= 29) stateKey = 'living';
        if (val >= 30 && val <= 35) stateKey = 'bath';
        if (val > 35) stateKey = 'danger';

        const data = contentDB[stateKey];

        // Update CSS Class container
        appContainer.className = 'rk-norm-container ' + data.cls;

        // Update Content
        badgeText.textContent = data.badge;
        badgeIcon.innerHTML = data.icon;
        
        // Only update innerHTML if it's different to prevent flashing
        if(cardMat.innerHTML !== data.mat) cardMat.innerHTML = data.mat;
        if(cardZone.innerHTML !== data.zone) cardZone.innerHTML = data.zone;
        if(cardHealth.innerHTML !== data.health) cardHealth.innerHTML = data.health;
        
        // SVG Icon pulse animation on danger
        if(stateKey === 'danger') {
            badgeIcon.classList.add('anim-pulse-warn');
        } else {
            badgeIcon.classList.remove('anim-pulse-warn');
        }
    }

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



<style>
:root {
    --rk-flr-dark: #0f172a;
    --rk-flr-panel: #1e293b;
    --rk-flr-bg: #ffffff;
    --rk-flr-surface: #f8fafc;
    --rk-flr-border: #e2e8f0;
    --rk-flr-text: #334155;
    --rk-flr-muted: #64748b;
    --rk-flr-blue: #0284c7;
    --rk-flr-blue-light: #e0f2fe;
    --rk-flr-green: #10b981;
    --rk-flr-orange: #f59e0b;
    --rk-flr-red: #ef4444;
}

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

/* Header */
.rk-flr-header {
    background: linear-gradient(135deg, var(--rk-flr-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-flr-blue);
}

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

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

/* Main App Area */
.rk-flr-app {
    display: flex;
    flex-direction: column;
}

/* Selector Tabs */
.rk-flr-tabs {
    display: flex;
    background: var(--rk-flr-surface);
    border-bottom: 1px solid var(--rk-flr-border);
    overflow-x: auto;
    scrollbar-width: none; /* Firefox */
}
.rk-flr-tabs::-webkit-scrollbar { display: none; /* Safari/Chrome */ }

.rk-flr-tab {
    flex: 1;
    min-width: 150px;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-flr-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    white-space: nowrap;
}

.rk-flr-tab:hover {
    color: var(--rk-flr-blue);
    background: rgba(2, 132, 199, 0.02);
}

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

/* Dashboard Display */
.rk-flr-display {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Data Panel */
.rk-flr-data {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-flr-card {
    background: #ffffff;
    border: 1px solid var(--rk-flr-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-flr-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.08);
}

.rk-flr-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: var(--rk-flr-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-flr-blue);
    flex-shrink: 0;
}

.rk-flr-info {
    flex: 1;
}

.rk-flr-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-flr-muted);
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

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

/* Resistance Bar */
.rk-flr-resistance {
    margin-top: 10px;
}

.rk-res-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 8px;
}

.rk-res-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-flr-dark);
}

.rk-res-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-flr-red);
}

.rk-res-bar-bg {
    height: 10px;
    background: var(--rk-flr-surface);
    border-radius: 5px;
    overflow: hidden;
    border: 1px solid var(--rk-flr-border);
}

.rk-res-bar-fill {
    height: 100%;
    width: 10%;
    background: linear-gradient(90deg, var(--rk-flr-green) 0%, var(--rk-flr-red) 100%);
    border-radius: 5px;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Visualization SVG Area */
.rk-flr-viz {
    background: var(--rk-flr-surface);
    border-radius: 20px;
    border: 1px solid var(--rk-flr-border);
    padding: 30px;
    text-align: center;
}

.rk-flr-viz h3 {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-flr-muted);
    margin: 0 0 20px 0;
    letter-spacing: 1px;
}

.rk-viz-svg {
    width: 100%;
    max-width: 300px;
    height: auto;
}

/* SVG Dynamics */
.rk-mat-layer { transition: fill 0.5s ease, height 0.5s ease, y 0.5s ease; }
.rk-heat-arrow { transition: opacity 0.5s ease, stroke 0.5s ease; }

/* States for SVG */
.state-plytki .rk-mat-layer { fill: #94a3b8; height: 15px; y: 45px; } /* Płytki - cienkie, szare */
.state-plytki .rk-heat-arrow { stroke: var(--rk-flr-red); animation: shootUp 1s infinite linear; stroke-width: 4; }

.state-panele .rk-mat-layer { fill: #d97706; height: 20px; y: 40px; } /* Panele - drewnopodobne */
.state-panele .rk-heat-arrow { stroke: var(--rk-flr-orange); animation: shootUp 1.5s infinite linear; stroke-width: 3; }

.state-drewno .rk-mat-layer { fill: #78350f; height: 25px; y: 35px; } /* Grube drewno */
.state-drewno .rk-heat-arrow { stroke: var(--rk-flr-blue); animation: shootUp 2.5s infinite linear; stroke-width: 2; opacity: 0.7; }

.state-wykladzina .rk-mat-layer { fill: #6366f1; height: 30px; y: 30px; } /* Wykładzina - gruba */
.state-wykladzina .rk-heat-arrow { stroke: var(--rk-flr-muted); animation: shootUp 3.5s infinite linear; stroke-width: 1.5; opacity: 0.4; }

@keyframes shootUp {
    0% { stroke-dashoffset: 40; transform: translateY(10px); }
    100% { stroke-dashoffset: 0; transform: translateY(-10px); }
}

/* Info Box */
.rk-flr-desc {
    margin-top: 25px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-flr-text);
    padding: 15px 20px;
    background: #ffffff;
    border-left: 4px solid var(--rk-flr-blue);
    border-radius: 8px;
    border: 1px solid var(--rk-flr-border);
    border-left-width: 4px;
}

.rk-flr-desc a {
    color: var(--rk-flr-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-flr-display { grid-template-columns: 1fr; padding: 30px 25px; gap: 30px; }
    .rk-flr-header { padding: 30px 25px; }
    .rk-flr-tab { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-posadzki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Tabela: Porównanie parametrów w zależności od rodzaju posadzki",
    "description": "Interaktywne zestawienie wpływu rodzaju wykończenia podłogi (płytki, panele, drewno) na opór cieplny i optymalną temperaturę zasilania ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-posadzki",
    "name": "Wpływ oporu cieplnego materiałów wykończeniowych na efektywność ogrzewania",
    "description": "Baza danych parametrów fizycznych dla popularnych materiałów posadzkowych, niezbędna do poprawnego wykonania projektu OZC i doboru pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny posadzki m2K/W",
      "temperatura zasilania ogrzewania podłogowego",
      "panele a ogrzewanie podłogowe",
      "parkiet drewniany na podłogówkę",
      "wpływ okładziny na ogrzewanie"
    ],
    "measurementTechnique": "Określenie współczynnika oporu cieplnego (R) zgodnie z normą PN-EN 1264 przy docelowej temperaturze powietrza wewnętrznego 21°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: R=0,01, Zasilanie: 30-35°C (Najwyższa efektywność).",
        "Panele laminowane: R=0,08, Zasilanie: 33-38°C.",
        "Parkiet drewniany: R=0,12, Zasilanie: 35-40°C.",
        "Wykładzina dywanowa: R=0,15, Zasilanie: 38-42°C (Wysoki izolator)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-posadzek",
    "name": "Symulator Oporu Cieplnego Posadzek",
    "description": "Narzędzie interaktywne demonstrujące, jak rosnący opór cieplny materiału posadzkowego spowalnia emisję ciepła i wymusza podnoszenie parametrów zasilania w instalacji hydraulicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flr-container" id="rk-flr-app">
    <div class="rk-flr-header">
        <h2>Tabela: Porównanie parametrów w zależności od rodzaju posadzki</h2>
        <p>Wybór materiału wykończeniowego ma bezpośredni wpływ na koszty ogrzewania. Zobacz orientacyjne parametry zasilania i opór cieplny przy założeniu temperatury wewnętrznej 21°C.</p>
    </div>

    <div class="rk-flr-app">
        <div class="rk-flr-tabs" id="rkFlrTabs">
            <button class="rk-flr-tab active" data-mat="plytki">Płytki ceramiczne</button>
            <button class="rk-flr-tab" data-mat="panele">Panele laminowane</button>
            <button class="rk-flr-tab" data-mat="drewno">Parkiet drewniany</button>
            <button class="rk-flr-tab" data-mat="wykladzina">Wykładzina</button>
        </div>

        <div class="rk-flr-display">
            <div class="rk-flr-data">
                
                <div class="rk-flr-card">
                    <div class="rk-flr-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-flr-info">
                        <div class="rk-flr-label">Wymagana Temp. Zasilania</div>
                        <div class="rk-flr-value" id="rkValZas">30 &#8211; 35°C</div>
                    </div>
                </div>

                <div class="rk-flr-card">
                    <div class="rk-flr-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-flr-info">
                        <div class="rk-flr-label">Temp. Powierzchni Posadzki</div>
                        <div class="rk-flr-value" id="rkValPow">24 &#8211; 26°C</div>
                    </div>
                </div>

                <div class="rk-flr-resistance">
                    <div class="rk-res-header">
                        <span class="rk-res-title">Opór cieplny [m²K/W]</span>
                        <span class="rk-res-val" id="rkValOpor">0,01</span>
                    </div>
                    <div class="rk-res-bar-bg">
                        <div class="rk-res-bar-fill" id="rkBarOpor" style="width: 10%;"></div>
                    </div>
                </div>

                <div class="rk-flr-desc" id="rkValDesc">
                    Ceramika i gres to idealny przewodnik. Opór cieplny jest znikomy, dzięki czemu pompa ciepła może pracować na najniższych możliwych parametrach zasilania, maksymalizując wskaźnik COP. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Więcej o ceramice na podłogówce →</a>
                </div>

            </div>

            <div class="rk-flr-viz state-plytki" id="rkFlrViz">
                <h3>Dynamika przenikania ciepła</h3>
                <svg class="rk-viz-svg" viewBox="0 0 200 150">
                    <rect x="20" y="60" width="160" height="70" fill="#f1f5f9" rx="2"/>
                    
                    <circle cx="50" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="100" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="150" cy="95" r="10" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2"/>

                    <circle cx="50" cy="95" r="5" fill="#ef4444"/>
                    <circle cx="100" cy="95" r="5" fill="#ef4444"/>
                    <circle cx="150" cy="95" r="5" fill="#ef4444"/>

                    <rect x="20" y="45" width="160" height="15" class="rk-mat-layer" rx="1"/>

                    <g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="10 5">
                        <path d="M 50 35 L 50 0" class="rk-heat-arrow" style="animation-delay: 0s"/>
                        <path d="M 75 35 L 75 0" class="rk-heat-arrow" style="animation-delay: 0.2s"/>
                        <path d="M 100 35 L 100 0" class="rk-heat-arrow" style="animation-delay: 0.4s"/>
                        <path d="M 125 35 L 125 0" class="rk-heat-arrow" style="animation-delay: 0.6s"/>
                        <path d="M 150 35 L 150 0" class="rk-heat-arrow" style="animation-delay: 0.8s"/>
                    </g>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-flr-tab');
    const viz = document.getElementById('rkFlrViz');
    
    // UI Elements
    const vZas = document.getElementById('rkValZas');
    const vPow = document.getElementById('rkValPow');
    const vOpor = document.getElementById('rkValOpor');
    const bOpor = document.getElementById('rkBarOpor');
    const vDesc = document.getElementById('rkValDesc');

    // Data Engine
    const floorData = {
        'plytki': {
            zas: '30 - 35°C', pow: '24 - 26°C', opor: '0,01', bar: '10%',
            desc: 'Ceramika i gres to idealny przewodnik. Opór cieplny jest znikomy, dzięki czemu pompa ciepła może pracować na najniższych możliwych parametrach zasilania, maksymalizując wskaźnik COP. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Więcej o ceramice na podłogówce →</a>'
        },
        'panele': {
            zas: '33 - 38°C', pow: '23 - 25°C', opor: '0,08', bar: '40%',
            desc: 'Panele to najpopularniejszy kompromis. Kluczem do sukcesu jest unikanie podkładów z XPS (styroduru) i zastosowanie specjalistycznych <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">podkładów kwarcowych (PUM)</a> o najniższym możliwym oporze.'
        },
        'drewno': {
            zas: '35 - 40°C', pow: '22 - 24°C', opor: '0,12', bar: '70%',
            desc: 'Drewno jest naturalnym izolatorem. Należy rygorystycznie przestrzegać norm: grubość deski nie może przekraczać 15 mm, a materiał musi być klejony bezpośrednio do jastrychu elastycznym klejem. <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Sprawdź tabelę gatunków drewna →</a>'
        },
        'wykladzina': {
            zas: '38 - 42°C', pow: '22 - 23°C', opor: '0,15', bar: '100%',
            desc: '<strong>Instalacja niezalecana dla pomp ciepła.</strong> Wykładzina blokuje transfer energii, zmuszając źródło ciepła do wejścia w nieekonomiczne, wysokie rejestry temperatur zasilania, drastycznie podnosząc rachunki za prąd.'
        }
    };

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

            const mat = this.getAttribute('data-mat');
            const data = floorData[mat];

            // Update Text
            vZas.textContent = data.zas;
            vPow.textContent = data.pow;
            vOpor.textContent = data.opor;
            bOpor.style.width = data.bar;
            vDesc.innerHTML = data.desc;

            // Update SVG Class for animations
            viz.className = 'rk-flr-viz state-' + mat;
        });
    });
});
</script>



<style>
:root {
    --rk-zone-dark: #0f172a;
    --rk-zone-panel: #1e293b;
    --rk-zone-bg: #ffffff;
    --rk-zone-surface: #f8fafc;
    --rk-zone-border: #e2e8f0;
    --rk-zone-text: #334155;
    --rk-zone-muted: #64748b;
    --rk-zone-accent: #38bdf8;
    --rk-zone-blue: #0284c7;
    --rk-zone-blue-light: #e0f2fe;
    --rk-zone-orange: #f97316;
    --rk-zone-red: #ef4444;
    --rk-zone-gray: #64748b;
}

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

/* Header Section */
.rk-zone-header {
    background: linear-gradient(135deg, var(--rk-zone-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-zone-blue);
}

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

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

/* App Interface */
.rk-zone-app-grid {
    display: grid;
    grid-template-columns: 260px 1fr;
    background: var(--rk-zone-bg);
}

/* Room Selector (Sidebar) */
.rk-zone-sidebar {
    background: var(--rk-zone-surface);
    padding: 30px 20px;
    border-right: 1px solid var(--rk-zone-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-zone-sidebar-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-zone-muted);
    margin: 0 0 10px 10px;
}

.rk-room-btn {
    background: #ffffff;
    border: 1px solid var(--rk-zone-border);
    padding: 16px 20px;
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--rk-zone-text);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-room-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.05);
}

.rk-room-btn.active {
    background: var(--rk-zone-blue);
    border-color: var(--rk-zone-blue);
    color: #ffffff;
    box-shadow: 0 8px 16px rgba(2, 132, 199, 0.25);
}

.rk-room-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--rk-zone-blue-light);
    color: var(--rk-zone-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-room-btn.active .rk-room-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-room-info {
    text-align: left;
}

.rk-room-name {
    font-size: 15px;
    font-weight: 800;
    display: block;
}

.rk-room-target {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Main Display Area */
.rk-zone-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Thermostat & Data */
.rk-zone-data-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 40px;
    align-items: center;
}

.rk-thermostat {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: #ffffff;
    border: 8px solid var(--rk-zone-surface);
    box-shadow: 
        inset 0 4px 10px rgba(0,0,0,0.05),
        0 10px 25px -5px rgba(2, 132, 199, 0.15);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-therm-ring {
    position: absolute;
    top: -8px; left: -8px; right: -8px; bottom: -8px;
    border-radius: 50%;
    border: 8px solid transparent;
    border-top-color: var(--rk-zone-orange);
    border-right-color: var(--rk-zone-orange);
    transform: rotate(-45deg);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.room-sypialnia .rk-therm-ring { border-top-color: var(--rk-zone-blue); border-right-color: transparent; }
.room-lazienka .rk-therm-ring { border-top-color: var(--rk-zone-red); border-right-color: var(--rk-zone-red); border-bottom-color: var(--rk-zone-red); }
.room-garaz .rk-therm-ring { border-top-color: var(--rk-zone-gray); border-right-color: transparent; transform: rotate(-135deg); }


.rk-therm-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-zone-dark);
    line-height: 1;
    margin-bottom: 5px;
}

.rk-therm-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-zone-muted);
}

.rk-zone-specs {
    background: var(--rk-zone-surface);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-zone-border);
}

.rk-zone-specs h3 {
    margin: 0 0 15px 0;
    font-size: 18px;
    color: var(--rk-zone-dark);
}

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

.rk-spec-item {
    background: #ffffff;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-zone-border);
}

.rk-spec-label {
    font-size: 12px;
    color: var(--rk-zone-muted);
    font-weight: 600;
    margin-bottom: 5px;
}

.rk-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-zone-blue);
}

/* Visualization SVG */
.rk-zone-viz {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-zone-border);
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-zone-viz-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-zone-muted);
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-floor-svg {
    width: 100%;
    height: 120px;
}

/* SVG Animations */
.rk-pipe-core { fill: #cbd5e1; transition: fill 0.5s ease; }
.rk-pipe-heat { opacity: 0; transition: opacity 0.5s ease; }

.room-salon .rk-pipe-core { fill: var(--rk-zone-orange); }
.room-salon .rk-pipe-base { opacity: 1; }
.room-salon .rk-pipe-dense { opacity: 0; transform: translateY(10px); }
.room-salon .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }

.room-sypialnia .rk-pipe-core { fill: var(--rk-zone-blue); }
.room-sypialnia .rk-pipe-base { opacity: 1; }
.room-sypialnia .rk-pipe-dense { opacity: 0; transform: translateY(10px); }
.room-sypialnia .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }

.room-lazienka .rk-pipe-core { fill: var(--rk-zone-red); }
.room-lazienka .rk-pipe-base { opacity: 1; }
.room-lazienka .rk-pipe-dense { opacity: 1; transform: translateY(0); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.room-lazienka .rk-pipe-sparse { opacity: 0; transform: translateY(10px); }


.room-garaz .rk-pipe-core { fill: var(--rk-zone-gray); }
.room-garaz .rk-pipe-base { opacity: 0; }
.room-garaz .rk-pipe-dense { opacity: 0; }
.room-garaz .rk-pipe-sparse { opacity: 1; transform: translateY(0); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }


/* Heat waves */
.rk-heat-wave {
    stroke-dasharray: 10;
    animation: waveRise 2s linear infinite;
    opacity: 0;
    transition: opacity 0.3s;
}

.room-salon .rk-heat-wave { stroke: var(--rk-zone-orange); opacity: 0.6; }
.room-sypialnia .rk-heat-wave { stroke: var(--rk-zone-blue); opacity: 0.3; animation-duration: 3s; }
.room-lazienka .rk-heat-wave { stroke: var(--rk-zone-red); opacity: 0.8; animation-duration: 1.5s; }
.room-garaz .rk-heat-wave { stroke: var(--rk-zone-gray); opacity: 0.2; animation-duration: 4s; }

@keyframes waveRise {
    0% { stroke-dashoffset: 20; transform: translateY(5px); }
    100% { stroke-dashoffset: 0; transform: translateY(-5px); }
}

/* Explain Text */
.rk-zone-explain {
    background: #fffbeb;
    border-left: 4px solid #fbbf24;
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #92400e;
}

.rk-zone-explain a {
    color: #b45309;
    font-weight: 700;
    text-decoration: underline;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-zone-app-grid { grid-template-columns: 1fr; }
    .rk-zone-sidebar { border-right: none; border-bottom: 1px solid var(--rk-zone-border); flex-direction: row; overflow-x: auto; padding: 20px; }
    .rk-room-btn { flex: 0 0 auto; padding: 12px 16px; }
    .rk-zone-data-row { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 25px; }
    .rk-spec-grid { grid-template-columns: 1fr; }
    .rk-zone-display { padding: 25px; }
    .rk-zone-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-nastawy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak rodzaj pomieszczenia wpływa na nastawy temperatury?",
    "description": "Zasady sterowania strefowego w ogrzewaniu podłogowym. Zobacz dlaczego łazienka wymaga mniejszego rozstawu rur, a sypialnia obniżonej temperatury, bez podnoszenia zasilania na pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-strefy",
    "name": "Zestawienie parametrów strefowych ogrzewania podłogowego",
    "description": "Tabela optymalnych temperatur powietrza, nastaw zasilania i gęstości układania rur w zależności od przeznaczenia pomieszczenia (salon, sypialnia, łazienka, garaż).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie strefowe ogrzewaniem czy warto",
      "termostat w ogrzewaniu podłogowym",
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "temperatura w łazience podłogówka",
      "optymalna temperatura w sypialni",
      "ogrzewanie podłogowe w garażu"
    ],
    "measurementTechnique": "Korelacja wymagań komfortu cieplnego z projektowym rozstawem rur (OZC) w celu uniknięcia przewymiarowania temperatury zasilania czynnika grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon: Temp. powietrza 21°C, Zasilanie 32°C, Rozstaw rur 15 cm.",
        "Sypialnia: Temp. powietrza 19°C, Zasilanie 30°C, Rozstaw rur 15 cm.",
        "Łazienka: Temp. powietrza 24°C, Wymagany rozstaw rur 10 cm.",
        "Garaż: Temp. powietrza 16°C, Zasilanie 28°C, Rozstaw rur 20 cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-stref",
    "name": "Symulator Stref Cieplnych Smart Home",
    "description": "Interaktywny sterownik wizualizujący zależność między pożądaną temperaturą w pomieszczeniu a gęstością ułożenia pętli grzewczych (rozstawem rur).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-zone-container" id="rk-zone-app">
    <div class="rk-zone-header">
        <h2>Jak rodzaj pomieszczenia wpływa na nastawy temperatury?</h2>
        <p>Błędem jest stosowanie jednakowej temperatury zasilania dla całego domu bez wykorzystania automatyki. Nierównomierne rozłożenie temperatury prowadzi do nieefektywnego wykorzystania energii z pompy ciepła.</p>
    </div>

    <div class="rk-zone-app-grid">
        <div class="rk-zone-sidebar">
            <div class="rk-zone-sidebar-title">Wybierz pomieszczenie</div>
            
            <button class="rk-room-btn active" data-room="salon">
                <div class="rk-room-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 20h20M5 20V9a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v11M9 20v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Salon</span>
                    <span class="rk-room-target">Strefa Dzienna</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="sypialnia">
                <div class="rk-room-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 4v16M2 8h18a2 2 0 0 1 2 2v10M2 17h20M6 8v9"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Sypialnia</span>
                    <span class="rk-room-target">Strefa Nocna</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="lazienka">
                <div class="rk-room-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h20M4 12v4a6 6 0 0 0 12 0v-4M10 12V4a2 2 0 0 1 4 0v8M14 4h4"></path></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Łazienka</span>
                    <span class="rk-room-target">Strefa Ciepła</span>
                </div>
            </button>
            
            <button class="rk-room-btn" data-room="garaz">
                <div class="rk-room-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <div class="rk-room-info">
                    <span class="rk-room-name">Garaż</span>
                    <span class="rk-room-target">Strefa Techniczna</span>
                </div>
            </button>
        </div>

        <div class="rk-zone-display room-salon" id="rkZoneContext">
            
            <div class="rk-zone-data-row">
                <div class="rk-thermostat">
                    <div class="rk-therm-ring"></div>
                    <div class="rk-therm-val" id="rkValAir">21°C</div>
                    <div class="rk-therm-label">Powietrze</div>
                </div>
                
                <div class="rk-zone-specs">
                    <h3>Parametry instalacji</h3>
                    <div class="rk-spec-grid">
                        <div class="rk-spec-item">
                            <div class="rk-spec-label">Zasilanie (Woda)</div>
                            <div class="rk-spec-val" id="rkValWater">32°C</div>
                        </div>
                        <div class="rk-spec-item">
                            <div class="rk-spec-label">Rozstaw rur PEX</div>
                            <div class="rk-spec-val" id="rkValSpacing">Co 15 cm</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-zone-viz">
                <div class="rk-zone-viz-title">Symulacja przekroju posadzki i gęstości rur</div>
                <svg class="rk-floor-svg" viewBox="0 0 400 120" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="60" width="400" height="40" fill="#f1f5f9" rx="4"/>
                    
                    <g fill="none" stroke-width="4" stroke-linecap="round">
                        <path class="rk-heat-wave" d="M 50 50 Q 60 30 50 10" />
                        <path class="rk-heat-wave" d="M 150 50 Q 160 30 150 10" style="animation-delay: 0.3s"/>
                        <path class="rk-heat-wave" d="M 250 50 Q 260 30 250 10" style="animation-delay: 0.6s"/>
                        <path class="rk-heat-wave" d="M 350 50 Q 360 30 350 10" style="animation-delay: 0.9s"/>
                    </g>

                    <g class="rk-pipe-base">
                        <circle cx="50" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="150" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="250" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="350" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                    
                    <g class="rk-pipe-dense">
                        <circle cx="100" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="200" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="300" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                    
                    <g class="rk-pipe-sparse">
                        <circle cx="100" cy="80" r="8" class="rk-pipe-core" />
                        <circle cx="300" cy="80" r="8" class="rk-pipe-core" />
                    </g>
                </svg>
            </div>

            <div class="rk-zone-explain" id="rkZoneDesc">
                Optymalny komfort dla przebywania dziennego. Aby uniknąć przegrzewania salonu, stosujemy standardowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (15 cm) i dbamy o poprawną konfigurację <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatu pokojowego</a>.
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-room-btn');
    const contextBox = document.getElementById('rkZoneContext');
    
    // UI Elements to update
    const valAir = document.getElementById('rkValAir');
    const valWater = document.getElementById('rkValWater');
    const valSpacing = document.getElementById('rkValSpacing');
    const desc = document.getElementById('rkZoneDesc');

    // Data dictionary
    const roomData = {
        'salon': {
            air: '21°C',
            water: '32°C',
            spacing: 'Co 15 cm',
            text: 'Optymalny komfort dla przebywania dziennego. Aby uniknąć przegrzewania salonu, stosujemy standardowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (15 cm) i dbamy o poprawną konfigurację <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatu pokojowego</a>.'
        },
        'sypialnia': {
            air: '19°C',
            water: '30°C',
            spacing: 'Co 15 cm',
            text: 'Dla zdrowego snu wymagana jest niższa temperatura. <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">Sterowanie strefowe</a> (siłowniki na rozdzielaczu) automatycznie przydławi przepływ pętli sypialnianej, utrzymując idealne 19°C.'
        },
        'lazienka': {
            air: '24°C',
            water: '35°C',
            spacing: 'Co 10 cm (Zagęszczony)',
            text: '<strong>Kluczowy błąd inwestorów:</strong> Próba osiągnięcia 24°C poprzez podnoszenie temperatury zasilania na całości domu. Prawidłowym rozwiązaniem jest <strong>miejscowe zagęszczenie rur (co 10 cm)</strong> już na etapie projektu, co pozwala zachować ekonomiczną pracę pompy ciepła.'
        },
        'garaz': {
            air: '16°C',
            water: '28°C',
            spacing: 'Co 20 cm (Rozrzedzony)',
            text: 'W strefach technicznych, jak garaż w bryle budynku, wystarczy utrzymać tzw. "temperaturę dyżurną". Projektujemy rzadszy rozstaw rur, co pozwala zaoszczędzić na kosztach eksploatacji przy jednoczesnej ochronie przed przemarzaniem ścian.'
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Update Active Buttons
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const roomType = this.getAttribute('data-room');
            
            // Update CSS class for context (triggers SVG animations & colors)
            contextBox.className = 'rk-zone-display room-' + roomType;
            
            // Update Text Data
            const data = roomData[roomType];
            valAir.textContent = data.air;
            valWater.textContent = data.water;
            valSpacing.textContent = data.spacing;
            desc.innerHTML = data.text;
        });
    });
});
</script>



<style>
:root {
    --rk-bill-dark: #0f172a;
    --rk-bill-panel: #1e293b;
    --rk-bill-bg: #ffffff;
    --rk-bill-surface: #f8fafc;
    --rk-bill-border: #e2e8f0;
    --rk-bill-text: #334155;
    --rk-bill-muted: #64748b;
    
    --rk-bill-blue: #0284c7;
    --rk-bill-green: #10b981;
    --rk-bill-orange: #f59e0b;
    --rk-bill-red: #ef4444;

    --rk-bill-current: var(--rk-bill-green);
}

.rk-bill-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-bill-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-bill-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header Section */
.rk-bill-header {
    background: linear-gradient(135deg, var(--rk-bill-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-bill-current);
    transition: border-color 0.4s ease;
}

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

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

/* Main Dashboard Area */
.rk-bill-dashboard {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    background: var(--rk-bill-bg);
}

/* Controls */
.rk-bill-controls {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-bill-slider-box {
    background: var(--rk-bill-surface);
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-bill-border);
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 20px;
}

.rk-slider-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-bill-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-slider-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-bill-current);
    transition: color 0.4s ease;
    display: flex;
    align-items: baseline;
    gap: 4px;
    line-height: 1;
}

.rk-slider-unit {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-bill-muted);
}

.rk-range-inp {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, var(--rk-bill-green) 0%, var(--rk-bill-orange) 50%, var(--rk-bill-red) 100%);
    border-radius: 4px;
    outline: none;
}

.rk-range-inp::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-bill-current);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: border-color 0.4s ease, transform 0.2s;
}

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

/* Metrics Grid */
.rk-bill-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

.rk-metric-card:hover {
    transform: translateY(-3px);
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-bill-muted);
    text-transform: uppercase;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
}

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

#valCop { color: var(--rk-bill-blue); }
#valCost { transition: color 0.4s ease; }

/* SVG Visualization (Heat Pump) */
.rk-bill-viz-box {
    background: var(--rk-bill-surface);
    border-radius: 20px;
    border: 1px solid var(--rk-bill-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-viz-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-bill-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    text-align: center;
}

.rk-hp-svg {
    width: 140px;
    height: 140px;
}

.rk-hp-housing {
    fill: #e2e8f0;
    stroke: #94a3b8;
    stroke-width: 4;
}

.rk-hp-grill {
    fill: none;
    stroke: #cbd5e1;
    stroke-width: 3;
}

.rk-hp-fan {
    transform-origin: 70px 70px;
    transition: fill 0.4s ease;
}

.rk-hp-alert {
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* Dynamic States applied to App */
.state-eco { --rk-bill-current: var(--rk-bill-green); }
.state-eco .rk-hp-fan { fill: var(--rk-bill-green); animation: spinFan 3s linear infinite; }
.state-eco #valCost { color: var(--rk-bill-green); }

.state-warn { --rk-bill-current: var(--rk-bill-orange); }
.state-warn .rk-hp-fan { fill: var(--rk-bill-orange); animation: spinFan 1s linear infinite; }
.state-warn #valCost { color: var(--rk-bill-orange); }

.state-danger { --rk-bill-current: var(--rk-bill-red); }
.state-danger .rk-hp-fan { fill: var(--rk-bill-red); animation: spinFan 0.3s linear infinite; }
.state-danger #valCost { color: var(--rk-bill-red); }
.state-danger .rk-hp-alert { opacity: 1; animation: pulseAlert 0.5s alternate infinite; }
.state-danger .rk-hp-housing { stroke: var(--rk-bill-red); }

@keyframes spinFan { 100% { transform: rotate(360deg); } }
@keyframes pulseAlert { 100% { transform: scale(1.1); opacity: 0.5; } }

/* Dynamic Explainer Text */
.rk-bill-explainer {
    background: #ffffff;
    border-left: 4px solid var(--rk-bill-current);
    padding: 20px 25px;
    border-radius: 8px;
    border-top: 1px solid var(--rk-bill-border);
    border-right: 1px solid var(--rk-bill-border);
    border-bottom: 1px solid var(--rk-bill-border);
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-bill-text);
    transition: border-color 0.4s ease;
}

.rk-bill-explainer strong { color: var(--rk-bill-dark); }
.rk-bill-explainer a {
    color: var(--rk-bill-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-bill-dashboard { grid-template-columns: 1fr; padding: 30px 25px; gap: 30px; }
    .rk-bill-header { padding: 30px 25px; }
    .rk-metrics-wrap { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-rachunki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Dlaczego temperatura zasilania podłogówki decyduje o rachunkach za ogrzewanie?",
    "description": "Dowiedz się, jak obniżenie temperatury zasilania do 35°C wpływa na sprawność pompy ciepła (COP) i dlaczego praca powyżej 45°C zwiększa koszty ogrzewania o 20%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-rachunki",
    "name": "Wpływ temperatury zasilania na efektywność (COP) pompy ciepła",
    "description": "Baza parametrów fizycznych pokazująca spadek współczynnika COP pompy ciepła i proporcjonalny wzrost kosztów energii przy nieoptymalnych nastawach zasilania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza pompy ciepła",
      "efektywność cop pompy ciepła",
      "temperatura zasilania ogrzewania podłogowego",
      "koszty ogrzewania pompą ciepła 2026",
      "żywotność sprężarki pompy ciepła"
    ],
    "measurementTechnique": "Szacunkowe obliczanie spadku współczynnika COP o ok. 2-2.5% na każdy 1°C wzrostu temperatury zasilania układu płaszczyznowego w stosunku do optymalnych 30°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Praca optymalna (30-35°C): Maksymalne COP, minimalne obciążenie sprężarki.",
        "Praca podwyższona (36-40°C): Spadek efektywności o około 10-15%.",
        "Praca krytyczna (>45°C): Drastyczny spadek COP, wzrost rachunków do +20% i przyspieszone zużycie mechaniczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-rachunkow",
    "name": "Symulator Zużycia i Efektywności COP Pompy Ciepła",
    "description": "Interaktywny symulator wizualizujący wpływ żądanej temperatury zasilania podłogówki na obciążenie sprężarki pompy ciepła, współczynnik COP oraz przewidywany wzrost kosztów.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-bill-wrapper state-eco" id="rkBillApp">
    <div class="rk-bill-header">
        <h2>Dlaczego temperatura zasilania podłogówki decyduje o rachunkach za ogrzewanie?</h2>
        <p>Każdy 1°C więcej na zasilaniu to realny spadek efektywności pompy ciepła (COP) o około 2-2,5%. Przekonaj się na interaktywnym symulatorze, jak nastawy niszczą Twój portfel i skracają życie sprężarki.</p>
    </div>

    <div class="rk-bill-dashboard">
        <div class="rk-bill-controls">
            
            <div class="rk-bill-slider-box">
                <div class="rk-slider-header">
                    <div class="rk-slider-title">Zasilanie układu</div>
                    <div class="rk-slider-value"><span id="valTemp">30</span><span class="rk-slider-unit">°C</span></div>
                </div>
                <input type="range" id="inpTemp" class="rk-range-inp" min="30" max="50" step="1" value="30">
            </div>

            <div class="rk-bill-metrics">
                <div class="rk-metric-card">
                    <div class="rk-metric-label">Sprawność (COP)</div>
                    <div class="rk-metric-val" id="valCop">4.80</div>
                </div>
                <div class="rk-metric-card">
                    <div class="rk-metric-label">Wzrost Rachunku</div>
                    <div class="rk-metric-val" id="valCost">+0%</div>
                </div>
            </div>

            <div class="rk-bill-explainer" id="valDesc">
                <strong>Stan Idealny.</strong> W domach o zapotrzebowaniu jednostkowym ok. 40 W/m², utrzymywanie zasilania poniżej 35°C pozwala na zachowanie najwyższego komfortu przy <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">minimalnym zużyciu prądu</a>.
            </div>

        </div>

        <div class="rk-bill-viz-box">
            <div class="rk-viz-label">Obciążenie Sprężarki</div>
            <svg class="rk-hp-svg" viewBox="0 0 140 140">
                <rect class="rk-hp-housing" x="10" y="10" width="120" height="120" rx="10" />
                <rect fill="#ffffff" x="20" y="20" width="100" height="100" rx="5" />
                
                <path class="rk-hp-grill" d="M 30 30 L 110 30 M 30 50 L 110 50 M 30 70 L 110 70 M 30 90 L 110 90 M 30 110 L 110 110" />
                
                <circle fill="#1e293b" cx="70" cy="70" r="40" />
                <path class="rk-hp-fan" d="M 70 70 L 70 35 A 35 35 0 0 1 95 45 Z M 70 70 L 95 95 A 35 35 0 0 1 70 105 Z M 70 70 L 45 95 A 35 35 0 0 1 35 70 Z M 70 70 L 45 45 A 35 35 0 0 1 70 35 Z" />
                <circle fill="#cbd5e1" cx="70" cy="70" r="8" />

                <g class="rk-hp-alert">
                    <path d="M 120 15 L 135 5 M 120 125 L 135 135" stroke="#ef4444" stroke-width="4" stroke-linecap="round" />
                </g>
            </svg>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('inpTemp');
    const outTemp = document.getElementById('valTemp');
    const outCop = document.getElementById('valCop');
    const outCost = document.getElementById('valCost');
    const outDesc = document.getElementById('valDesc');
    const appWrap = document.getElementById('rkBillApp');

    function calculate() {
        const temp = parseInt(slider.value);
        outTemp.textContent = temp;

        // Math modeling based on context (Base temp: 30C, Base COP: 4.8)
        // 2.5% drop in COP for every 1°C
        const deltaT = temp - 30;
        const efficiencyDrop = deltaT * 0.025;
        
        let currentCop = 4.8 * (1 - efficiencyDrop);
        let costIncrease = deltaT * 2.5;

        // Render formatted values
        outCop.textContent = currentCop.toFixed(2);
        outCost.textContent = '+' + costIncrease.toFixed(0) + '%';

        // State Machine
        if (temp <= 35) {
            appWrap.className = 'rk-bill-wrapper state-eco';
            outDesc.innerHTML = '<strong>Stan Idealny.</strong> W domach o zapotrzebowaniu jednostkowym ok. 40 W/m², utrzymywanie zasilania na poziomie '+temp+'°C pozwala na zachowanie najwyższego komfortu przy <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">minimalnym zużyciu prądu</a>.';
        } else if (temp <= 40) {
            appWrap.className = 'rk-bill-wrapper state-warn';
            outDesc.innerHTML = '<strong>Zwiększone obciążenie.</strong> Brak optymalizacji <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a> wymusza gorsze warunki pracy. Zapłacisz o '+costIncrease.toFixed(0)+'% więcej za prąd z powodu spadku sprawności układu termodynamicznego.';
        } else {
            appWrap.className = 'rk-bill-wrapper state-danger';
            outDesc.innerHTML = '<strong>Tryb Awaryjny (Krytyczny).</strong> Praca pompy powyżej 40°C to katastrofa dla portfela. Taktowanie niszczy żywotność sprężarki, a <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania</a> drastycznie rosną z powodu spadku COP do okolic '+currentCop.toFixed(2)+'.';
        }
    }

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



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-calc-green: #10b981;
    --rk-calc-orange: #f59e0b;
    --rk-calc-red: #ef4444;
}

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

/* Header */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-calc-blue);
}

.rk-calc-header::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: radial-gradient(circle at top right, rgba(2, 132, 199, 0.2), transparent 50%);
    pointer-events: none;
}

.rk-calc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.rk-calc-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Dashboard Grid */
.rk-calc-dashboard {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-calc-bg);
}

/* Controls (Sliders) */
.rk-calc-controls {
    padding: 40px;
    background: var(--rk-calc-surface);
    border-right: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

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

.rk-input-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.rk-input-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-input-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid var(--rk-calc-border);
    min-width: 80px;
    text-align: right;
}

/* Custom Range Slider */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    outline: none;
}

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

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

/* Results Display */
.rk-calc-results {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-res-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

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

.rk-res-card.flow::before { background: var(--rk-calc-blue); }
.rk-res-card.temp::before { background: var(--rk-calc-orange); }

.rk-res-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.08);
}

.rk-card-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-calc-muted);
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.rk-card-val {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.rk-card-unit {
    font-size: 16px;
    color: var(--rk-calc-muted);
    font-weight: 700;
}

/* SVG Visualizer */
.rk-calc-viz {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 30px;
    position: relative;
}

.rk-viz-title {
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 20px;
    text-align: center;
}

.rk-svg-flow {
    width: 100%;
    height: 80px;
}

/* Dynamic SVG Elements */
.svg-pipe { fill: none; stroke: #334155; stroke-width: 24; stroke-linecap: round; stroke-linejoin: round; }
.svg-water { 
    fill: none; 
    stroke: var(--rk-calc-blue); 
    stroke-width: 14; 
    stroke-linecap: round; 
    stroke-linejoin: round;
    stroke-dasharray: 20 15;
    animation: flowAnim 2s linear infinite;
}
.svg-heat-arrow { stroke: var(--rk-calc-orange); fill: none; stroke-width: 3; stroke-linecap: round; }

@keyframes flowAnim {
    to { stroke-dashoffset: -70; }
}

/* Algorithm Steps Breakdown */
.rk-alg-steps {
    border-top: 1px solid var(--rk-calc-border);
    background: #ffffff;
}

.rk-alg-header {
    padding: 20px 40px;
    background: var(--rk-calc-surface);
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

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

.rk-alg-steps.open .rk-alg-content {
    padding: 30px 40px;
    max-height: 500px;
}

.rk-alg-steps.open .rk-chevron {
    transform: rotate(180deg);
}

.rk-step-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-step-item {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-calc-blue-glow);
    color: var(--rk-calc-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 900;
    flex-shrink: 0;
}

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

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

.rk-math-code {
    display: inline-block;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    color: var(--rk-calc-blue);
    font-weight: 600;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-calc-dashboard { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); padding: 30px 25px; }
    .rk-calc-results { padding: 30px 25px; }
    .rk-res-cards { grid-template-columns: 1fr; }
    .rk-calc-header { padding: 30px 25px; }
    .rk-alg-header, .rk-alg-steps.open .rk-alg-content { padding-left: 25px; padding-right: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak obliczyć optymalną temperaturę zasilania (algorytm projektowy)?",
    "description": "Zrozum inżynierski algorytm obliczania strumienia masy wody oraz temperatury zasilania na podstawie strat ciepła (OZC) i zakładanej różnicy temperatur (ΔT).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-algorytm",
    "name": "Algorytm obliczeniowy przepływu masowego podłogówki",
    "description": "Dane wyjściowe i przeliczniki dla równania przepływu masowego oraz mocy cieplnej instalacji płaszczyznowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ wody podłogówka",
      "obliczeniowe zapotrzebowanie na ciepło OZC",
      "spadek temperatury ΔT",
      "jak obliczyć temperaturę zasilania",
      "przepływ l/h w rotametrach"
    ],
    "measurementTechnique": "Wykorzystanie ciepła właściwego wody (4186 J/(kg·K)) oraz przekształcenie bilansu strat ciepła budynku na wymagany przepływ hydrauliczny i temperaturę zasilania pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzór na przepływ: Q / (cp × ΔT).",
        "Przykładowe zapotrzebowanie: 40 W/m2 generuje przy ΔT=5K przepływ około 172 l/h dla pętli 1000 W.",
        "Docelowa temperatura zasilania: Wypadkowa oporu cieplnego, gęstości rur i niezbędnego strumienia masy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-kalkulator-hydrauliki",
    "name": "Kalkulator Inżynierski - Algorytm Zasilania",
    "description": "Interaktywny symulator pozwalający obliczyć przepływ wody (l/h) oraz wymaganą temperaturę zasilania pompy ciepła na podstawie metrażu i izolacji budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper" id="rk-calc-app">
    <div class="rk-calc-header">
        <h2>Jak obliczyć optymalną temperaturę zasilania (algorytm projektowy)?</h2>
        <p>Aby wyznaczyć temperaturę zasilania (T<sub>zas</sub>) oraz niezbędny przepływ w rotametrach, inżynier HVAC posługuje się bilansem strat ciepła (Q) oraz założoną deltą temperatury (ΔT).</p>
    </div>

    <div class="rk-calc-dashboard">
        <div class="rk-calc-controls">
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Powierzchnia [m²]</span>
                    <span class="rk-input-value" id="valAreaOut">25 m²</span>
                </div>
                <input type="range" class="rk-range" id="inpArea" min="10" max="100" step="1" value="25">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Izolacja (Zapotrzebowanie)</span>
                    <span class="rk-input-value" id="valQOut">40 W/m²</span>
                </div>
                <input type="range" class="rk-range" id="inpQ" min="20" max="100" step="5" value="40">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <span class="rk-input-label">Spadek Temp. (ΔT)</span>
                    <span class="rk-input-value" id="valDtOut">5 K</span>
                </div>
                <input type="range" class="rk-range" id="inpDt" min="3" max="10" step="1" value="5">
            </div>

        </div>

        <div class="rk-calc-results">
            
            <div class="rk-res-cards">
                <div class="rk-res-card flow">
                    <div class="rk-card-label">Wymagany przepływ (ṁ)</div>
                    <div class="rk-card-val"><span id="resFlow">172</span> <span class="rk-card-unit">l/h</span></div>
                </div>
                <div class="rk-res-card temp">
                    <div class="rk-card-label">Temp. Zasilania (T<sub>zas</sub>)</div>
                    <div class="rk-card-val"><span id="resTemp">32</span> <span class="rk-card-unit">°C</span></div>
                </div>
            </div>

            <div class="rk-calc-viz">
                <div class="rk-viz-title">Symulacja Przepływu Hydraulicznego</div>
                <svg class="rk-svg-flow" viewBox="0 0 300 80">
                    <path class="svg-pipe" d="M 20 40 L 280 40" />
                    <path class="svg-water" id="animWater" d="M 20 40 L 280 40" />
                    
                    <g id="animHeatGroup">
                        <path class="svg-heat-arrow" d="M 60 20 Q 70 0 60 -10" />
                        <path class="svg-heat-arrow" d="M 150 20 Q 160 0 150 -10" />
                        <path class="svg-heat-arrow" d="M 240 20 Q 250 0 240 -10" />
                    </g>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-alg-steps" id="rkAlgAcc">
        <div class="rk-alg-header">
            ROZWIŃ ALGORYTM OBLICZENIOWY (WZORY)
            <svg class="rk-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="transition: transform 0.3s;"><polyline points="6 9 12 15 18 9"></polyline></svg>
        </div>
        <div class="rk-alg-content">
            <ul class="rk-step-list">
                <li class="rk-step-item">
                    <div class="rk-step-num">1</div>
                    <div class="rk-step-text"><strong>Wyznaczenie całkowitego zapotrzebowania na ciepło:</strong> Mnożymy metraż przez wskaźnik z OZC budynku. <br><span class="rk-math-code">Q_obl = A × q_zapotrzebowanie [W]</span></div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">2</div>
                    <div class="rk-step-text"><strong>Założenie spadku temperatury:</strong> Zazwyczaj projektowo przyjmujemy optymalną różnicę zasilania i powrotu dla podłogówki na poziomie <span class="rk-math-code">ΔT = 5K</span>.</div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">3</div>
                    <div class="rk-step-text"><strong>Obliczenie strumienia masy (przepływu wody):</strong> Dzielimy wyliczoną moc przez ciepło właściwe wody (ok. 4186 J/kg·K) i założone ΔT. <br><span class="rk-math-code">ṁ = Q / (c_p × ΔT)</span></div>
                </li>
                <li class="rk-step-item">
                    <div class="rk-step-num">4</div>
                    <div class="rk-step-text"><strong>Dobór temperatury zasilania:</strong> Wypadkowa gęstości rur i oporu cieplnego posadzki. Średnia zasilania dla nowoczesnego domu wynosi zazwyczaj ok. 32-35°C.</div>
                </li>
            </ul>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const inpArea = document.getElementById('inpArea');
    const inpQ = document.getElementById('inpQ');
    const inpDt = document.getElementById('inpDt');
    
    // Displays
    const valAreaOut = document.getElementById('valAreaOut');
    const valQOut = document.getElementById('valQOut');
    const valDtOut = document.getElementById('valDtOut');
    const resFlow = document.getElementById('resFlow');
    const resTemp = document.getElementById('resTemp');
    
    // SVG Elements
    const animWater = document.getElementById('animWater');
    const animHeatGroup = document.getElementById('animHeatGroup');

    // Accordion Logic
    const accHeader = document.querySelector('.rk-alg-header');
    const accWrap = document.getElementById('rkAlgAcc');
    accHeader.addEventListener('click', () => {
        accWrap.classList.toggle('open');
    });

    function calculate() {
        // Values
        const area = parseFloat(inpArea.value);
        const q_unit = parseFloat(inpQ.value);
        const dt = parseFloat(inpDt.value);

        // Update Labels
        valAreaOut.textContent = area + ' m²';
        valQOut.textContent = q_unit + ' W/m²';
        valDtOut.textContent = dt + ' K';

        // Math
        // Q total [W]
        const Q = area * q_unit;
        
        // Flow calculation
        // Q = m_dot * cp * dT
        // m_dot [kg/s] = Q / (4186 * dT)
        // m_dot [l/h] ≈ m_dot_kg_s * 3600 ≈ Q / (1.163 * dT)
        const flow_lh = Q / (1.163 * dt);
        
        // Target Temp Estimate (Mock engineering formula fitting the 40W/m2, dT=5 -> 32°C logic)
        // Base room temp 22°C (assumed heat sink core base) + heat load factor + dt factor
        let targetTemp = 22 + (q_unit * 0.2) + (dt * 0.4);

        // Render Outputs
        resFlow.textContent = Math.round(flow_lh);
        resTemp.textContent = targetTemp.toFixed(1);

        // Update Animation Speed & Aesthetics
        // Flow ranges from ~20 to ~1000
        // Speed formula: duration between 0.5s (fast) to 4s (slow)
        let animSpeed = 4 - (flow_lh / 300);
        if (animSpeed < 0.5) animSpeed = 0.5;
        if (animSpeed > 4) animSpeed = 4;
        
        animWater.style.animationDuration = animSpeed + 's';

        // Heat arrows opacity based on power
        // Max power = 100 * 100 = 10000W
        let heatOp = Q / 3000; 
        if (heatOp > 1) heatOp = 1;
        if (heatOp < 0.2) heatOp = 0.2;
        animHeatGroup.style.opacity = heatOp;
        
        // Change water color based on Temp
        if (targetTemp > 40) {
            animWater.style.stroke = 'var(--rk-calc-red)';
        } else if (targetTemp > 30) {
            animWater.style.stroke = 'var(--rk-calc-orange)';
        } else {
            animWater.style.stroke = 'var(--rk-calc-blue)';
        }
    }

    // Event Listeners
    inpArea.addEventListener('input', calculate);
    inpQ.addEventListener('input', calculate);
    inpDt.addEventListener('input', calculate);

    // Initial Calc
    calculate();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-red: #ef4444;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-green: #10b981;
    --rk-err-green-bg: #f0fdf4;
    --rk-err-green-border: #86efac;
    --rk-err-blue: #0ea5e9;
}

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

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #000000 100%);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-red);
    position: relative;
    overflow: hidden;
}

.rk-err-header::before {
    content: '!';
    position: absolute;
    right: 20px;
    top: -20px;
    font-size: 150px;
    font-weight: 900;
    color: rgba(239, 68, 68, 0.1);
    line-height: 1;
    font-family: serif;
}

.rk-err-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    position: relative;
    z-index: 2;
}

.rk-err-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
    max-width: 600px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Layout Main */
.rk-err-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--rk-err-bg);
}

/* Sidebar Menu */
.rk-err-menu {
    background: var(--rk-err-surface);
    border-right: 1px solid var(--rk-err-border);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
}

.rk-err-tab {
    padding: 14px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-muted);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-tab:hover {
    background: var(--rk-err-bg);
    color: var(--rk-err-dark);
}

.rk-err-tab.active {
    background: var(--rk-err-bg);
    border-left-color: var(--rk-err-red);
    color: var(--rk-err-dark);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-err-tab-icon {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: var(--rk-err-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    color: var(--rk-err-muted);
    transition: all 0.3s;
    flex-shrink: 0;
}

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

/* Display Area */
.rk-err-display {
    padding: 40px;
    position: relative;
}

/* Sub-toggle (Error vs Fix) */
.rk-err-sub-toggle {
    display: inline-flex;
    background: var(--rk-err-surface);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
    position: relative;
}

.rk-sub-btn {
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    z-index: 2;
    color: var(--rk-err-muted);
    transition: color 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

.rk-sub-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    border-radius: 8px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-err-sub-toggle.state-error .rk-sub-slider {
    left: 6px;
    background: var(--rk-err-red);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.2);
}

.rk-err-sub-toggle.state-fix .rk-sub-slider {
    left: 50%;
    background: var(--rk-err-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.2);
}

/* Content Box Area */
.rk-err-content-box {
    display: none;
    animation: rkFadeIn 0.4s ease forwards;
}

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

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

/* Text Blocks & Alert Styles */
.rk-err-text-block {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid;
    margin-bottom: 20px;
}

.rk-err-text-block.state-danger {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red-border);
}

.rk-err-text-block.state-success {
    background: var(--rk-err-green-bg);
    border-color: var(--rk-err-green-border);
}

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

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

/* Styled Lists for technical params */
.rk-err-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.rk-err-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-err-dark);
    font-weight: 500;
}

.rk-err-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.state-danger .rk-err-list li::before {
    background: var(--rk-err-red);
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}

.state-success .rk-err-list li::before {
    background: var(--rk-err-green);
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* Link Style */
.rk-err-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-err-blue);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    background: #ffffff;
    padding: 10px 20px;
    border-radius: 8px;
    border: 1px solid var(--rk-err-border);
    transition: all 0.3s;
}

.rk-err-link:hover {
    border-color: var(--rk-err-blue);
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.1);
}

/* Dashboard Logic States */
.state-fix-active .view-error-only { display: none; }
.state-fix-active .view-fix-only { display: block; }
.state-error-active .view-fix-only { display: none; }
.state-error-active .view-error-only { display: block; }

/* Mobile */
@media (max-width: 768px) {
    .rk-err-layout { grid-template-columns: 1fr; }
    .rk-err-menu { flex-direction: row; overflow-x: auto; padding: 0; border-right: none; border-bottom: 1px solid var(--rk-err-border); white-space: nowrap; }
    .rk-err-tab { border-left: none; border-bottom: 4px solid transparent; padding: 15px 20px; flex-shrink: 0; }
    .rk-err-tab.active { border-bottom-color: var(--rk-err-red); border-left-color: transparent; }
    .rk-err-display { padding: 25px; }
    .rk-err-header { padding: 30px 25px; }
    .rk-err-sub-toggle { display: flex; width: 100%; }
    .rk-sub-btn { flex: 1; justify-content: center; padding: 12px 10px; font-size: 12px; }
    .rk-err-text-block { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-bledy-regulacji",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Najczęstsze błędy przy regulacji temperatury podłogówki",
    "description": "Analiza inżynierska krytycznych błędów hydraulicznych: brak krzywej grzewczej, zła delta T, brak strefy brzegowej, dławienie rotametrów oraz zbyt długie pętle grzewcze.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Wpływ błędów instalacyjnych na parametry pracy podłogówki",
    "description": "Baza danych parametrów degradacji systemu wywołanych błędną regulacją hydrauliczną, złą deltą T i brakiem automatyki pogodowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "opór cieplny posadzki",
      "spadek temperatury ΔT",
      "strefa brzegowa podłogówki",
      "zawór mieszający w ogrzewaniu podłogowym",
      "za długa pętla podłogówki",
      "krzywa grzewcza pompy ciepła"
    ],
    "measurementTechnique": "Porównanie spadków ciśnienia hydraulicznego (ΔP) oraz rozkładu gradientu temperatury (ΔT) pomiędzy układami poprawnymi a wadliwymi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny: Zbyt gruby podkład wymusza podbicie zasilania o 5-8°C.",
        "Długość pętli: Przekroczenie 100m powoduje drastyczny spadek temperatury na końcu wężownicy.",
        "Delta T: Błędne nastawy pompy powodują zjawisko niedogrzania lub szumów instalacji.",
        "Strefy brzegowe: Brak zagęszczenia przy oknach HS skutkuje wychładzaniem posadzki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-bledow",
    "name": "Asystent Analizy Błędów Instalacyjnych",
    "description": "Aplikacja interaktywna pozwalająca na diagnozę błędów instalacyjnych poprzez zestawienie skutków błędnego wykonawstwa z inżynierskimi rozwiązaniami.",
    "applicationCategory": "DiagnosticTool",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    <div class="rk-err-header">
        <h2>Najczęstsze błędy przy regulacji temperatury</h2>
        <p>Zobacz, jak błahe błędy sterowania drastycznie obniżają sprawność instalacji i generują koszty. Przeanalizuj problem i poznaj bezkompromisowe rozwiązania inżynierskie.</p>
    </div>

    <div class="rk-err-layout">
        <div class="rk-err-menu" id="rkErrMenu">
            <button class="rk-err-tab active" data-tab="1">
                <div class="rk-err-tab-icon">1</div> Brak pogodówki
            </button>
            <button class="rk-err-tab" data-tab="2">
                <div class="rk-err-tab-icon">2</div> Opór cieplny
            </button>
            <button class="rk-err-tab" data-tab="3">
                <div class="rk-err-tab-icon">3</div> Dławienie przepływu
            </button>
            <button class="rk-err-tab" data-tab="4">
                <div class="rk-err-tab-icon">4</div> Długie pętle
            </button>
            <button class="rk-err-tab" data-tab="5">
                <div class="rk-err-tab-icon">5</div> Zła Delta T
            </button>
            <button class="rk-err-tab" data-tab="6">
                <div class="rk-err-tab-icon">6</div> Brak stref brzegowych
            </button>
            <button class="rk-err-tab" data-tab="7">
                <div class="rk-err-tab-icon">7</div> Brak podmieszania
            </button>
        </div>

        <div class="rk-err-display state-error-active" id="rkErrDisplay">
            
            <div class="rk-err-sub-toggle state-error" id="rkErrToggle">
                <div class="rk-sub-slider"></div>
                <div class="rk-sub-btn active" data-state="error">Skutek Błędu</div>
                <div class="rk-sub-btn" data-state="fix">Rozwiązanie</div>
            </div>

            <div class="rk-err-content-box active" data-content="1">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Ustawienie sztywnej temperatury na źródle</h3>
                    <p>Ustawianie stałej temperatury wody (np. sztywne 35°C) niezależnie od warunków zewnętrznych to najczęstszy błąd eksploatacyjny. System nie reaguje na ocieplenie na zewnątrz.</p>
                    <ul class="rk-err-list">
                        <li>Przegrzewanie budynku w okresach przejściowych (jesień/wiosna).</li>
                        <li>Marnotrawienie energii elektrycznej przez pompę ciepła.</li>
                        <li>Częste i nieefektywne taktowanie (włączanie/wyłączanie) sprężarki.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" class="rk-err-link">Czytaj o sterowaniu pogodowym →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Aktywna krzywa grzewcza</h3>
                    <p>Rozwiązaniem jest instalacja czujnika temperatury zewnętrznej i rzetelna kalibracja krzywej grzewczej sterownika. Kocioł lub pompa zyskuje &#8222;inteligencję&#8221; i sama dobiera parametr.</p>
                    <ul class="rk-err-list">
                        <li>Automatyczne obniżanie zasilania w cieplejsze dni (np. do 28°C).</li>
                        <li>Maksymalizacja współczynnika COP pompy ciepła (niższe rachunki).</li>
                        <li>Idealnie stabilna temperatura wewnątrz niezależnie od mrozów.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-err-link">Jak ustawić krzywą grzewczą →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="2">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Ignorowanie parametrów posadzki</h3>
                    <p>Zastosowanie grubego podkładu XPS pod panele lub grubej deski podłogowej tworzy tzw. izolator. Zbyt wysoki opór cieplny (R > 0,15 m²K/W) sprawia, że ciepło więźnie w wylewce.</p>
                    <ul class="rk-err-list">
                        <li>Wymuszenie podniesienia temperatury zasilania o 5°C–8°C.</li>
                        <li>Drastyczny spadek sprawności pompy obiegowej i pompy ciepła.</li>
                        <li>Zwiększone ryzyko pękania przegrzanego jastrychu (wylewki).</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-err-link">Więcej o oporze cieplnym →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Specjalistyczne podkłady i okładziny</h3>
                    <p>W inżynierii HVAC kluczem jest przepuszczalność. Pod panele stosujemy podkłady o ultra-niskim oporze (np. PUM &#8211; poliuretanowo-mineralne), a drewno kleimy na elastyczny klej bezpośrednio do podłoża.</p>
                    <ul class="rk-err-list">
                        <li>Błyskawiczny transfer ciepła z rur do pomieszczenia.</li>
                        <li>Możliwość utrzymania zasilania na bezpiecznym poziomie 30-35°C.</li>
                        <li>Ochrona materiałów wykończeniowych przed rozwarstwieniem.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-err-link">Dobór okładziny do podłogówki →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="3">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Próba dławienia temperatury rotametrem</h3>
                    <p>Amatorzy często zmniejszają przepływ na rotametrach rozdzielacza prawie do zera, aby &#8222;przykręcić temperaturę&#8221; w danym pokoju. To niszczące działanie dla hydrauliki systemu.</p>
                    <ul class="rk-err-list">
                        <li>Drastyczny wzrost oporów hydraulicznych w układzie.</li>
                        <li>Przeciążenie i skrócenie żywotności pompy obiegowej.</li>
                        <li>Pojawienie się szumów i świstów wody w instalacji.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-err-link">Funkcja rotametru →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Otwarty układ i regulacja strefowa (Termostaty)</h3>
                    <p>Rotametry służą wyłącznie do kalibracji przepływów (zbilansowania oporów pętli według projektu OZC). Temperaturą w pomieszczeniu steruje się za pomocą automatyki strefowej.</p>
                    <ul class="rk-err-list">
                        <li>Zastosowanie termostatów pokojowych i listwy sterującej.</li>
                        <li>Montaż siłowników termoelektrycznych na belce powrotnej.</li>
                        <li>System sam zamyka i otwiera pętle bez obciążania pompy głównej.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-err-link">Siłowniki termoelektryczne →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="4">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Tworzenie pętli powyżej 100 metrów</h3>
                    <p>Układanie zbyt długich pętli grzewczych (szczególnie na popularnej rurze PEX 16&#215;2) powoduje całkowite wychłodzenie czynnika grzewczego zanim dotrze on z powrotem do rozdzielacza.</p>
                    <ul class="rk-err-list">
                        <li>Zimne strefy na podłodze i zjawisko tzw. &#8222;zebry termicznej&#8221;.</li>
                        <li>Wymuszanie podnoszenia temperatury zasilania na źródle.</li>
                        <li>Krytycznie duży spadek ciśnienia (ΔP), którego pompa nie uciągnie.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-link">Konsekwencje za długich pętli →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Ścisły podział na sekcje (max 80-90m)</h3>
                    <p>W projektowaniu HVAC duże pomieszczenia (np. salon o powierzchni >30m²) bezwzględnie dzielimy na dwie lub trzy niezależne sekcje zasilane z osobnych rotametrów.</p>
                    <ul class="rk-err-list">
                        <li>Pętle dla rury 16&#215;2 utrzymywane w reżimie do 80-90 metrów.</li>
                        <li>Równomierny rozkład temperatury na całej płaszczyźnie jastrychu.</li>
                        <li>Niskie opory tłoczenia gwarantujące bezawaryjną pracę pompy.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-err-link">Sprawdź normy długości pętli →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="5">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Zbyt mały przepływ i wysoka Delta T</h3>
                    <p>Zbyt niska nastawa mocy na pompie obiegowej sprawia, że woda płynie w rurach zbyt wolno. Prowadzi to do ogromnego spadku temperatury między zasilaniem a powrotem (ΔT > 10K).</p>
                    <ul class="rk-err-list">
                        <li>Odczuwalnie chłodniejsza podłoga w głębi pomieszczenia.</li>
                        <li>Nieosiągnięcie mocy projektowej obliczonej w OZC.</li>
                        <li>Niestabilna praca zaworów mieszających (skoki temperatury).</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-err-link">Czym skutkuje zła Delta T? →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Kalibracja przepływów do ΔT = 5K</h3>
                    <p>Złotym standardem w ogrzewaniu podłogowym jest projektowanie przepływów masy tak, aby różnica temperatur między zasilaniem a powrotem wynosiła około 5K (max 7K).</p>
                    <ul class="rk-err-list">
                        <li>Dostosowanie biegu pompy obiegowej na podstawie krzywej pracy.</li>
                        <li>Precyzyjne wyregulowanie rotametrów na rozdzielaczu.</li>
                        <li>Uzyskanie idealnie zbilansowanej i stałej temperatury w całym domu.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-err-link">Jak poprawnie obliczyć ΔT →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="6">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Równomierny rozstaw rur przy oknach</h3>
                    <p>Brak zagęszczenia rur przy drzwiach tarasowych, oknach HS lub chłodnych ścianach zewnętrznych. Ściany i duże przeszklenia generują miejscowo dużo większe straty ciepła niż środek pokoju.</p>
                    <ul class="rk-err-list">
                        <li>Przewianie i nieprzyjemne uczucie chłodu od strony szyb.</li>
                        <li>Zjawisko kondensacji (skraplanie się wody) na dole okien zimą.</li>
                        <li>Niedogrzanie całego pomieszczenia pomimo wysokiej temp. zasilania.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-err-link">Błędy przy dużych oknach →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Wydzielona strefa brzegowa (obwodowa)</h3>
                    <p>Rozwiązaniem inżynierskim jest zaprojektowanie &#8222;kurtyny cieplnej&#8221; w podłodze. Na szerokości około 1 metra wzdłuż newralgicznych przeszkleń zagęszczamy rury (najczęściej rozstaw co 10 cm).</p>
                    <ul class="rk-err-list">
                        <li>Skuteczne zniwelowanie strat ciepła tuż przy przegrodzie.</li>
                        <li>Zabezpieczenie szyb przed wykraplaniem się wilgoci.</li>
                        <li>Możliwość utrzymania szerokiego rozstawu (np. 15 cm) w centrum pokoju.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-err-link">Projektowanie strefy brzegowej →</a>
                </div>
            </div>

            <div class="rk-err-content-box" data-content="7">
                <div class="rk-err-text-block view-error-only state-danger">
                    <h3>Zasilanie wprost z bufora / kotła na pellet</h3>
                    <p>Wtłoczenie wody z kotła stałopalnego, kominka lub górnej części bufora ciepła bezpośrednio w rury podłogowe (gdzie parametry często przekraczają 60-70°C).</p>
                    <ul class="rk-err-list">
                        <li>Całkowite uszkodzenie (spękanie) jastrychu betonowego/anhydrytowego.</li>
                        <li>Odkształcenie izolacji EPS i zniszczenie paneli podłogowych.</li>
                        <li>Zagrożenie dla zdrowia i brak zgody z normą PN-EN 1264.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-err-link">Skutki braku mieszacza →</a>
                </div>
                <div class="rk-err-text-block view-fix-only state-success">
                    <h3>Zastosowanie grupy pompowo-mieszającej</h3>
                    <p>Aby pogodzić źródło wysokotemperaturowe z niskotemperaturową podłogówką, montuje się specjalną grupę wyposażoną w obrotowy, trójdrogowy zawór mieszający.</p>
                    <ul class="rk-err-list">
                        <li>Podmieszanie gorącej wody z zasilania z chłodną wodą powracającą.</li>
                        <li>Płynna redukcja temperatury do bezpiecznych 30-35°C na rozdzielaczu.</li>
                        <li>Zabezpieczenie instalacji płaszczyznowej przed uderzeniem gorąca.</li>
                    </ul>
                    <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-err-link">Dobór zaworu mieszającego →</a>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-err-tab');
    const contentBoxes = document.querySelectorAll('.rk-err-content-box');
    
    // Tab switching logic
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');
            
            const targetContent = this.getAttribute('data-tab');
            
            contentBoxes.forEach(box => {
                box.classList.remove('active');
                if(box.getAttribute('data-content') === targetContent) {
                    box.classList.add('active');
                }
            });
        });
    });

    // Sub-toggle logic (Error vs Fix)
    const togglePanel = document.getElementById('rkErrToggle');
    const subBtns = document.querySelectorAll('.rk-sub-btn');
    const displayArea = document.getElementById('rkErrDisplay');

    subBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            subBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const state = this.getAttribute('data-state');
            
            togglePanel.className = 'rk-err-sub-toggle state-' + state;
            displayArea.className = 'rk-err-display state-' + state + '-active';
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-blue: #0284c7;
    --rk-proj-accent: #38bdf8;
    --rk-proj-orange: #f97316;
    --rk-proj-orange-light: #ffedd5;
    --rk-proj-green: #10b981;
    --rk-proj-red: #ef4444;
    --rk-proj-bg: #ffffff;
    --rk-proj-surface: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
}

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

/* Header */
.rk-proj-header {
    background: var(--rk-proj-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-proj-header::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 50%;
    background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.05) 50%, transparent);
    transform: skewX(-20deg) translateX(150%);
    animation: rkProjShine 6s infinite;
}

@keyframes rkProjShine {
    0% { transform: skewX(-20deg) translateX(-150%); }
    50%, 100% { transform: skewX(-20deg) translateX(150%); }
}

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

.rk-proj-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    max-width: 700px;
    position: relative;
    z-index: 2;
}

/* Interactive Dashboard */
.rk-proj-dashboard {
    padding: 40px 50px;
    background: var(--rk-proj-surface);
}

.rk-proj-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-proj-switch {
    display: inline-flex;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 100px;
    padding: 6px;
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-proj-switch-btn {
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    color: var(--rk-proj-muted);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-proj-switch-btn.active[data-view="calc"] { color: #ffffff; }
.rk-proj-switch-btn.active[data-view="guess"] { color: #ffffff; }

.rk-proj-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    border-radius: 100px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-proj-switch.view-calc .rk-proj-slider {
    background: var(--rk-proj-blue);
    left: 6px;
    width: calc(50% - 6px);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

.rk-proj-switch.view-guess .rk-proj-slider {
    background: var(--rk-proj-red);
    left: 50%;
    width: calc(50% - 6px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Grid parameters */
.rk-proj-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.rk-proj-tile {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

.rk-proj-tile h4 {
    margin: 0;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-proj-muted);
}

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

.rk-proj-tile a {
    font-size: 13px;
    color: var(--rk-proj-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}

.view-calc-active .rk-proj-tile { border-color: rgba(2, 132, 199, 0.2); box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.05); }
.view-guess-active .rk-proj-tile { border-color: rgba(239, 68, 68, 0.2); }
.view-guess-active .rk-proj-val { color: var(--rk-proj-red); }

/* SVG Animation Area */
.rk-proj-viz {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-proj-border);
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-proj-viz-svg {
    width: 100%;
    max-width: 500px;
    height: auto;
}

.rk-pipe { transition: all 0.5s ease; stroke-width: 12; stroke-linecap: round; }
.rk-heat-wave { transition: all 0.5s ease; opacity: 0; }

/* States */
.state-calc .rk-pipe { stroke: var(--rk-proj-orange); }
.state-calc .rk-pipe-ghost { opacity: 1; stroke: var(--rk-proj-orange); }
.state-calc .rk-heat-wave { opacity: 0.8; stroke: var(--rk-proj-orange); animation: floatUp 2s infinite linear; }
.state-calc .rk-heat-bad { opacity: 0; }

.state-guess .rk-pipe { stroke: var(--rk-proj-red); }
.state-guess .rk-pipe-ghost { opacity: 0; }
.state-guess .rk-heat-wave { opacity: 0; }
.state-guess .rk-heat-bad { opacity: 0.8; stroke: var(--rk-proj-red); animation: floatUpBad 1.5s infinite linear; }
.state-guess .rk-cold-spot { opacity: 0.6; fill: var(--rk-proj-blue); animation: pulseCold 2s infinite alternate; }

@keyframes floatUp {
    0% { transform: translateY(10px); opacity: 0; }
    50% { opacity: 0.8; }
    100% { transform: translateY(-20px); opacity: 0; }
}
@keyframes floatUpBad {
    0% { transform: translateY(10px) scale(0.8); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-30px) scale(1.2); opacity: 0; }
}
@keyframes pulseCold {
    0% { opacity: 0.2; }
    100% { opacity: 0.6; }
}

/* Info Box */
.rk-proj-desc {
    margin-top: 30px;
    padding: 20px;
    border-radius: 12px;
    background: #f0f9ff;
    border-left: 4px solid var(--rk-proj-blue);
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-proj-text);
    transition: all 0.3s;
}

.view-guess-active .rk-proj-desc {
    background: #fef2f2;
    border-left-color: var(--rk-proj-red);
}

/* Killer CTA */
.rk-proj-cta-wrapper {
    background: linear-gradient(145deg, var(--rk-proj-dark) 0%, #000000 100%);
    padding: 50px;
    text-align: center;
    position: relative;
    border-top: 1px solid #334155;
}

.rk-cta-badge {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-proj-orange);
    color: #ffffff;
    padding: 6px 20px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.4);
    animation: rkCtaPulse 2s infinite;
}

@keyframes rkCtaPulse {
    0% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(249, 115, 22, 0); }
    100% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0); }
}

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

.rk-proj-cta-text {
    color: #cbd5e1;
    font-size: 16px;
    max-width: 600px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.rk-massive-btn {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: linear-gradient(90deg, var(--rk-proj-blue) 0%, #0369a1 100%);
    color: #ffffff;
    padding: 20px 45px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid rgba(255,255,255,0.1);
}

.rk-massive-btn:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 40px -5px rgba(2, 132, 199, 0.6);
    background: linear-gradient(90deg, #0284c7 0%, #0284c7 100%);
}

.rk-massive-btn svg { transition: transform 0.3s; }
.rk-massive-btn:hover svg { transform: translateX(8px); }

/* Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-dashboard, .rk-proj-cta-wrapper { padding: 35px 25px; }
    .rk-proj-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-proj-switch { width: 100%; display: flex; }
    .rk-proj-switch-btn { flex: 1; justify-content: center; padding: 12px 10px; font-size: 12px; }
    .rk-proj-header h2 { font-size: 24px; }
    .rk-massive-btn { width: 100%; justify-content: center; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Jak optymalna temperatura wpływa na projekt ogrzewania podłogowego?",
    "description": "Dowiedz się, jak założenia projektowe (OZC) i temperatura zasilania 35°C wpływają na rozstaw rur, dobór pomp obiegowych oraz grubość wylewki w instalacji podłogowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-wytyczne-projektowe",
    "name": "Wytyczne do projektowania instalacji płaszczyznowych 2026",
    "description": "Zależności między optymalną temperaturą zasilania (35°C) a kluczowymi parametrami fizycznymi układu ogrzewania podłogowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego OZC",
      "wydajność pompy obiegowej podłogówka",
      "rozstaw rur a temperatura zasilania",
      "grubość wylewki na ogrzewanie podłogowe",
      "koszty eksploatacji ogrzewania 2026"
    ],
    "measurementTechnique": "Obliczenia zapotrzebowania cieplnego budynku (OZC) i oporów hydraulicznych pętli grzewczych dla utrzymania zasilania niskotemperaturowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymuszony rozstaw rur: 10-15 cm przy zasilaniu 35°C.",
        "Optymalna grubość wylewki betonowej: 6-7 cm nad rurą grzewczą.",
        "Konieczność doboru pomp o większej wydajności hydraulicznej dla instalacji niskotemperaturowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator-projektu",
    "name": "Symulator Skutków Braku Projektu Podłogówki",
    "description": "Interaktywne narzędzie edukacyjne porównujące parametry techniczne i koszty eksploatacji instalacji wykonanej na podstawie projektu OZC z instalacją montowaną 'na oko'.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    <div class="rk-proj-header">
        <h2>Jak optymalna temperatura wpływa na projekt ogrzewania podłogowego?</h2>
        <p>Projekt musi wyprzedzać decyzje inwestora. Jeśli założymy pracę układu przy energooszczędnych 35°C, wymusza to całkowitą zmianę podejścia do układania rur i doboru osprzętu w kotłowni.</p>
    </div>

    <div class="rk-proj-dashboard view-calc-active" id="rkProjWrapper">
        <div class="rk-proj-controls">
            <div class="rk-proj-switch view-calc" id="rkProjToggle">
                <div class="rk-proj-slider"></div>
                <div class="rk-proj-switch-btn active" data-view="calc">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    Mam projekt OZC
                </div>
                <div class="rk-proj-switch-btn" data-view="guess">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Robię &#8222;na oko&#8221;
                </div>
            </div>
        </div>

        <div class="rk-proj-grid">
            <div class="rk-proj-tile">
                <h4>Rozstaw rur</h4>
                <div class="rk-proj-val" id="valSpacing">10 &#8211; 15 cm</div>
                <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Sprawdź dlaczego to ważne</a>
            </div>
            <div class="rk-proj-tile">
                <h4>Wydajność pomp</h4>
                <div class="rk-proj-val" id="valPump">Zbilansowana</div>
                <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Kalkulator doboru</a>
            </div>
            <div class="rk-proj-tile">
                <h4>Grubość wylewki</h4>
                <div class="rk-proj-val" id="valScreed">6 &#8211; 7 cm</div>
                <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Wytyczne wylewek</a>
            </div>
        </div>

        <div class="rk-proj-viz state-calc" id="rkProjViz">
            <svg class="rk-proj-viz-svg" viewBox="0 0 400 150" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="0" y="100" width="400" height="50" fill="#f1f5f9" />
                <path d="M0 100 L400 100" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="5 5" />
                
                <line x1="50" y1="90" x2="50" y2="90" class="rk-pipe" />
                <line x1="110" y1="90" x2="110" y2="90" class="rk-pipe rk-pipe-ghost" />
                <line x1="170" y1="90" x2="170" y2="90" class="rk-pipe" />
                <line x1="230" y1="90" x2="230" y2="90" class="rk-pipe rk-pipe-ghost" />
                <line x1="290" y1="90" x2="290" y2="90" class="rk-pipe" />
                <line x1="350" y1="90" x2="350" y2="90" class="rk-pipe rk-pipe-ghost" />

                <path d="M30 70 Q50 30 70 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0s" />
                <path d="M90 70 Q110 30 130 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.3s" />
                <path d="M150 70 Q170 30 190 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.6s" />
                <path d="M210 70 Q230 30 250 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 0.9s" />
                <path d="M270 70 Q290 30 310 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 1.2s" />
                <path d="M330 70 Q350 30 370 70" fill="none" stroke-width="4" stroke-linecap="round" class="rk-heat-wave" style="animation-delay: 1.5s" />

                <path d="M30 60 Q50 10 70 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 0s" />
                <ellipse cx="110" cy="50" rx="30" ry="10" class="rk-cold-spot" />
                <path d="M150 60 Q170 10 190 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 0.5s" />
                <ellipse cx="230" cy="50" rx="30" ry="10" class="rk-cold-spot" />
                <path d="M270 60 Q290 10 310 60" fill="none" stroke-width="6" stroke-linecap="round" class="rk-heat-bad" style="animation-delay: 1s" />
                <ellipse cx="350" cy="50" rx="30" ry="10" class="rk-cold-spot" />
            </svg>
        </div>

        <div class="rk-proj-desc" id="rkProjDesc">
            <strong>Inwestycja w rzetelny projekt zwraca się w rachunkach już po pierwszym sezonie grzewczym.</strong> Zastosowanie mniejszego rozstawu rur (10-15 cm) i optymalnej grubości wylewki pozwala utrzymać zasilanie na poziomie 35°C. To idealne środowisko pracy dla pompy ciepła (wysoki współczynnik COP).
        </div>
    </div>

    <div class="rk-proj-cta-wrapper">
        <div class="rk-cta-badge">Krok 1 Inwestora</div>
        <h3 class="rk-proj-cta-title">Nie graj w rosyjską ruletkę swoimi rachunkami</h3>
        <p class="rk-proj-cta-text">
            Brak profesjonalnego projektu to gwarancja <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" style="color: var(--rk-proj-accent);">przewymiarowania źródła ciepła</a> i konieczności pracy na wysokich parametrach. W dobie drożejącej energii elektrycznej to ekonomiczne samobójstwo. Zainwestuj ułamek kosztów pompy ciepła w fundament bezawaryjności.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-massive-btn">
            ZAMÓW PROFESJONALNY PROJEKT OZC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggle = document.getElementById('rkProjToggle');
    const btns = toggle.querySelectorAll('.rk-proj-switch-btn');
    const wrapper = document.getElementById('rkProjWrapper');
    const viz = document.getElementById('rkProjViz');
    
    // Elements to update
    const vSpacing = document.getElementById('valSpacing');
    const vPump = document.getElementById('valPump');
    const vScreed = document.getElementById('valScreed');
    const desc = document.getElementById('rkProjDesc');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const view = this.getAttribute('data-view');
            
            // Switch UI state
            toggle.className = 'rk-proj-switch view-' + view;
            wrapper.className = 'rk-proj-dashboard view-' + view + '-active';
            viz.className = 'rk-proj-viz state-' + view;

            if (view === 'calc') {
                vSpacing.textContent = '10 - 15 cm';
                vPump.textContent = 'Zbilansowana';
                vScreed.textContent = '6 - 7 cm';
                desc.innerHTML = '<strong>Inwestycja w rzetelny projekt zwraca się w rachunkach już po pierwszym sezonie grzewczym.</strong> Zastosowanie mniejszego rozstawu rur (10-15 cm) i optymalnej grubości wylewki pozwala utrzymać zasilanie na poziomie 35°C. To idealne środowisko pracy dla pompy ciepła (wysoki współczynnik COP).';
            } else {
                vSpacing.textContent = '> 20 cm';
                vPump.textContent = 'Przewymiarowana';
                vScreed.textContent = 'Loteria';
                desc.innerHTML = '<strong>Brak projektu skutkuje chaosem hydraulicznym.</strong> Zbyt rzadki rozstaw rur wymusza drastyczne podniesienie temperatury zasilania (>45°C), aby zrekompensować martwe, chłodne strefy (niedogrzane punkty). Pompa ciepła traci sprawność, a Twoje rachunki szybują w górę.';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
    
    --rk-case-blue: #0284c7;
    --rk-case-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-case-green: #10b981;
    --rk-case-green-glow: rgba(16, 185, 129, 0.2);
    --rk-case-red: #ef4444;
    --rk-case-red-glow: rgba(239, 68, 68, 0.2);
    
    --rk-case-current: var(--rk-case-red);
}

.rk-case-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #0f172a 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-current);
    transition: border-color 0.4s ease;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

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

/* Dashboard Grid */
.rk-case-dashboard {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: var(--rk-case-bg);
}

/* Left Content Area */
.rk-case-content {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
}

/* Sub-toggle (Before/After) */
.rk-case-toggle {
    display: inline-flex;
    background: var(--rk-case-surface);
    border: 1px solid var(--rk-case-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
    align-self: flex-start;
}

.rk-case-btn {
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    z-index: 2;
    color: var(--rk-case-muted);
    transition: color 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

.rk-case-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    border-radius: 8px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.state-before .rk-case-slider {
    left: 6px;
    background: var(--rk-case-red);
    box-shadow: 0 4px 10px var(--rk-case-red-glow);
}

.state-after .rk-case-slider {
    left: 50%;
    background: var(--rk-case-green);
    box-shadow: 0 4px 10px var(--rk-case-green-glow);
}

/* Dynamic Text Info */
.rk-case-text-block {
    margin-bottom: 30px;
}

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

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

.rk-case-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-case-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-case-dark);
    font-weight: 600;
}

.rk-case-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    background: var(--rk-case-current);
    display: flex;
    align-items: center;
    justify-content: center;
}

.state-before .rk-case-list li::before {
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}

.state-after .rk-case-list li::before {
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* Right Panel (Metrics & Viz) */
.rk-case-metrics-panel {
    background: var(--rk-case-surface);
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-metric-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-metric-box::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; width: 4px;
    background: var(--rk-case-current);
    transition: background 0.4s ease;
}

.rk-metric-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-case-muted);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.rk-metric-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-case-muted);
}

.rk-metric-trend {
    font-size: 12px;
    font-weight: 700;
    margin-top: 5px;
    color: var(--rk-case-current);
    transition: color 0.4s ease;
}

/* Interactive SVG Diagram */
.rk-case-viz {
    margin-top: auto;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

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

/* SVG Dynamics */
.rk-svg-gauge-bg { fill: none; stroke: #e2e8f0; stroke-width: 12; stroke-linecap: round; }
.rk-svg-gauge-fill { fill: none; stroke: var(--rk-case-current); stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray 1s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s ease; }
.rk-svg-pointer { transform-origin: 90px 90px; transition: transform 1s cubic-bezier(0.4, 0, 0.2, 1); fill: var(--rk-case-dark); }
.rk-svg-text-cop { font-size: 24px; font-weight: 900; fill: var(--rk-case-dark); text-anchor: middle; }

/* Link out */
.rk-case-link {
    display: inline-block;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-case-blue);
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.3s;
}

.rk-case-link:hover { border-color: var(--rk-case-blue); }

/* Responsive */
@media (max-width: 850px) {
    .rk-case-dashboard { grid-template-columns: 1fr; }
    .rk-case-content { border-right: none; border-bottom: 1px solid var(--rk-case-border); padding: 30px 25px; }
    .rk-case-header { padding: 30px 25px; }
    .rk-case-metrics-panel { padding: 30px 25px; }
    .rk-case-toggle { width: 100%; display: flex; }
    .rk-case-btn { flex: 1; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: Optymalizacja podłogówki dom 150 m2 (Kielce)",
    "description": "Analiza błędów instalacji ogrzewania podłogowego u Pana Antoniego z Kielc (sierpień 2025). Zobacz jak kalibracja rotametrów i włączenie krzywej grzewczej obniżyło rachunki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Dane audytowe HVAC - Dom 150m2 Kielce",
    "description": "Zestawienie kosztów i współczynnika COP przed i po optymalizacji krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt ogrzewania domu 2025",
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "projektowe obciążenie cieplne OZC",
      "spadek temperatury ΔT",
      "termostat w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Pomiary przepływów hydraulicznych na rotametrach, rejestracja zużycia energii elektrycznej pompy ciepła oraz weryfikacja współczynnika COP przed i po audycie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan zastany (Przed): Zasilanie 45°C, zadławione przepływy, COP 2.4, sezonowy koszt 4800 zł.",
        "Stan po optymalizacji: Zasilanie max 32°C (z krzywej grzewczej), przepływy dla ΔT=5K, COP 4.6, sezonowy koszt 2200 zł."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Symulator Audytu HVAC",
    "description": "Interaktywne narzędzie prezentujące wyniki audytu i spadek kosztów ogrzewania po kalibracji w oparciu o projektowe obciążenie cieplne OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-wrapper state-before" id="rkCaseApp">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study – Raport z Audytu</div>
        <h2>Pan Antoni z Kielc (Dom 150 m²)</h2>
        <p>Analiza z sierpnia 2025 roku. Klasyczny przykład instalacji wykonanej &#8222;na oko&#8221;, bez projektu OZC. Zobacz różnicę parametrów po przeprowadzeniu profesjonalnego audytu hydraulicznego.</p>
    </div>

    <div class="rk-case-dashboard">
        <div class="rk-case-content">
            
            <div class="rk-case-toggle" id="rkCaseToggle">
                <div class="rk-case-slider"></div>
                <div class="rk-case-btn active" data-state="before">Stan Zastany (Przed)</div>
                <div class="rk-case-btn" data-state="after">Po Audycie (Po)</div>
            </div>

            <div class="rk-case-text-block" id="rkCaseTextBlock">
                <h3>Kosztowny błąd instalatora</h3>
                <p>Pan Antoni wprowadził się do nowego domu jesienią 2024. Pierwsza zima okazała się finansową katastrofą, a w salonie pękła fuga między płytkami. Co zastaliśmy na audycie?</p>
                <ul class="rk-case-list">
                    <li>Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i ułożenie rur ze zbyt rzadkim rozstawem (co 20 cm w całym domu).</li>
                    <li>Próba ratowania sytuacji poprzez ręczne dławienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.</li>
                    <li>Wymuszenie na pompie ciepła sztywnej temperatury zasilania aż 45°C.</li>
                </ul>
            </div>

            <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="rk-case-link">Poznaj konsekwencje braku projektu →</a>
        </div>

        <div class="rk-case-metrics-panel">
            
            <div class="rk-metric-box">
                <div class="rk-metric-label">Temp. Zasilania Pompy</div>
                <div class="rk-metric-val"><span id="rkValTemp">45</span> <span class="rk-metric-unit">°C</span></div>
                <div class="rk-metric-trend" id="rkTrendTemp">Sztywne ustawienie</div>
            </div>

            <div class="rk-metric-box">
                <div class="rk-metric-label">Szacowany koszt zimy (150 m²)</div>
                <div class="rk-metric-val"><span id="rkValCost">4 800</span> <span class="rk-metric-unit">PLN</span></div>
                <div class="rk-metric-trend" id="rkTrendCost">Znaczne przepłacanie</div>
            </div>

            <div class="rk-case-viz">
                <div class="rk-metric-label" style="margin-bottom:15px; text-align:center;">Wydajność Układu (COP)</div>
                <svg class="rk-viz-svg" viewBox="0 0 180 140">
                    <path class="rk-svg-gauge-bg" d="M 30 110 A 70 70 0 0 1 150 110" />
                    <path class="rk-svg-gauge-fill" id="rkSvgFill" d="M 30 110 A 70 70 0 0 1 150 110" stroke-dasharray="40 200" />
                    
                    <g class="rk-svg-pointer" id="rkSvgPointer" style="transform: rotate(-50deg);">
                        <circle cx="90" cy="110" r="10" />
                        <polygon points="86,110 94,110 90,50" />
                    </g>
                    
                    <text x="90" y="140" class="rk-svg-text-cop" id="rkSvgText">COP 2.4</text>
                </svg>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const appWrapper = document.getElementById('rkCaseApp');
    const btns = document.querySelectorAll('.rk-case-btn');
    
    // DOM Elements to update
    const textBlock = document.getElementById('rkCaseTextBlock');
    const valTemp = document.getElementById('rkValTemp');
    const trendTemp = document.getElementById('rkTrendTemp');
    const valCost = document.getElementById('rkValCost');
    const trendCost = document.getElementById('rkTrendCost');
    
    // SVG Elements
    const svgFill = document.getElementById('rkSvgFill');
    const svgPointer = document.getElementById('rkSvgPointer');
    const svgText = document.getElementById('rkSvgText');

    // Data Engine
    const auditData = {
        before: {
            cssClass: 'state-before',
            title: 'Kosztowny błąd instalatora',
            desc: 'Pan Antoni wprowadził się do nowego domu jesienią 2024. Pierwsza zima okazała się finansową katastrofą, a w salonie pękła fuga między płytkami. Co zastaliśmy na audycie?',
            bullets: [
                'Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i ułożenie rur ze zbyt rzadkim rozstawem (co 20 cm w całym domu).',
                'Próba ratowania sytuacji poprzez ręczne dławienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.',
                'Wymuszenie na pompie ciepła sztywnej temperatury zasilania aż 45°C.'
            ],
            temp: '45',
            tempTrend: 'Sztywne ustawienie (Złe)',
            cost: '4 800',
            costTrend: 'Ogromne straty finansowe',
            cop: 'COP 2.4',
            svgDash: '40 200', // Low fill
            svgRot: '-50deg'   // Pointing left (low)
        },
        after: {
            cssClass: 'state-after',
            title: 'Optymalizacja Hydrauliki',
            desc: 'Wdrożyliśmy program naprawczy bez konieczności kucia posadzek. Kluczem była optymalizacja przepływów na belce rozdzielacza oraz inteligentna praca automatyki.',
            bullets: [
                'Odblokowanie rotametrów – wykalibrowanie przepływów pod <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury ΔT=5K</a>.',
                'Włączenie <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>. Pompa reaguje teraz na temperaturę na zewnątrz.',
                'Wpięcie systemu <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatów</a> zapobiegających przegrzewaniu.'
            ],
            temp: '32',
            tempTrend: 'Z krzywej grzewczej (Max)',
            cost: '2 200',
            costTrend: 'Oszczędność 2600 zł / sezon',
            cop: 'COP 4.6',
            svgDash: '140 200', // High fill
            svgRot: '40deg'     // Pointing right (high)
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const state = this.getAttribute('data-state');
            const data = auditData[state];

            // Update Root Class
            appWrapper.className = 'rk-case-wrapper ' + data.cssClass;

            // Update Text Block
            let htmlStr = `<h3>${data.title}</h3><p>${data.desc}</p><ul class="rk-case-list">`;
            data.bullets.forEach(b => { htmlStr += `<li>${b}</li>`; });
            htmlStr += `</ul>`;
            textBlock.innerHTML = htmlStr;

            // Update Metrics
            valTemp.textContent = data.temp;
            trendTemp.textContent = data.tempTrend;
            valCost.textContent = data.cost;
            trendCost.textContent = data.costTrend;

            // Update SVG
            svgFill.setAttribute('stroke-dasharray', data.svgDash);
            svgPointer.style.transform = `rotate(${data.svgRot})`;
            svgText.textContent = data.cop;
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-panel: #1e293b;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-glow: rgba(2, 132, 199, 0.15);
    --rk-auth-gold: #eab308;
    --rk-auth-gold-glow: rgba(234, 179, 8, 0.2);
    --rk-auth-fb: #1877F2;
    --rk-auth-li: #0A66C2;
}

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

/* Header Area */
.rk-auth-header {
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    padding: 35px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-auth-gold);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

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

.rk-auth-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    font-weight: 500;
}

.rk-auth-trust-badge {
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    color: var(--rk-auth-gold);
    padding: 10px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Main Layout Grid */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Left Sidebar: Profile */
.rk-auth-profile {
    background: var(--rk-auth-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-photo-wrap {
    position: relative;
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 25px var(--rk-auth-blue-glow);
    position: relative;
    z-index: 2;
}

.rk-auth-photo-ring {
    position: absolute;
    top: -8px; left: -8px; right: -8px; bottom: -8px;
    border-radius: 50%;
    border: 2px dashed var(--rk-auth-blue);
    animation: rkSpin 20s linear infinite;
    z-index: 1;
}

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

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

.rk-auth-title {
    font-size: 14px;
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 12px;
    width: 100%;
}

.rk-social-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-social-btn.fb { background: var(--rk-auth-fb); }
.rk-social-btn.li { background: var(--rk-auth-li); }

.rk-social-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}

/* Right Content Area */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

/* Navigation Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
    background: #ffffff;
}

.rk-auth-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-auth-tab:hover {
    color: var(--rk-auth-blue);
    background: var(--rk-auth-surface);
}

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

/* Tab Panels */
.rk-auth-panel {
    padding: 40px;
    display: none;
    animation: rkFadeInUp 0.4s ease forwards;
}

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

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

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

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

.rk-auth-panel p:last-child { margin-bottom: 0; }

/* Stats Grid in Panel 2 */
.rk-auth-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.rk-stat-box {
    background: var(--rk-auth-surface);
    border: 1px solid var(--rk-auth-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.3s;
}

.rk-stat-box:hover {
    transform: scale(1.02);
    border-color: var(--rk-auth-blue);
}

.rk-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    color: var(--rk-auth-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    flex-shrink: 0;
}

.rk-stat-info { display: flex; flex-direction: column; }

.rk-stat-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    line-height: 1.2;
}

.rk-stat-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    text-transform: uppercase;
}

/* SVG Interactive Guarantee (Panel 3) */
.rk-guarantee-viz {
    background: var(--rk-auth-dark);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 20px;
    color: #ffffff;
}

.rk-gv-text h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-auth-gold);
}

.rk-gv-text p {
    margin: 0;
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
}

.rk-gv-svg {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}

.rk-gv-shield {
    fill: none;
    stroke: var(--rk-auth-gold);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: rkShieldPulse 2s infinite alternate;
}

.rk-gv-check {
    fill: none;
    stroke: #ffffff;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
}

@keyframes rkShieldPulse {
    0% { filter: drop-shadow(0 0 5px rgba(234, 179, 8, 0.4)); }
    100% { filter: drop-shadow(0 0 15px rgba(234, 179, 8, 0.8)); transform: scale(1.05); }
}

/* Mobile */
@media (max-width: 850px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 25px; }
    .rk-auth-tabs { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-panel { padding: 30px 25px; }
    .rk-auth-stats { grid-template-columns: 1fr; }
    .rk-guarantee-viz { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-autor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Gwarancja inżynierskiej jakości – Kto stoi za tym poradnikiem?",
    "description": "Profil ekspercki Roberta Kucharskiego, inżyniera HVAC z doświadczeniem w projektowaniu optymalnej temperatury zasilania podłogówki na bazie obliczeń OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-portfolio",
    "name": "Baza wiedzy i doświadczenia HVAC - Robert Kucharski",
    "description": "Zestawienie autorskich statystyk i doświadczeń w optymalizacji systemów płaszczyznowych oraz badaniu wydajności pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie ogrzewania podłogowego OZC",
      "optymalna temperatura zasilania podłogówki",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "wydajność pompy ciepła",
      "audyt hydrauliczny instalacji"
    ],
    "measurementTechnique": "Agregacja danych z ponad 1000 zrealizowanych projektów instalacji niskotemperaturowych, ze średnim wzrostem efektywności energetycznej budynków o 20%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zrealizowane projekty instalacji płaszczyznowych: 1000+",
        "Średnia redukcja kosztów ogrzewania dzięki optymalizacji zasilania: 20%",
        "Specjalizacja: Integracja krzywych grzewczych i normy PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-autor-portfolio",
    "name": "Interaktywne Portfolio Eksperckie E-E-A-T",
    "description": "Moduł weryfikujący autorytet inżynierski autora, integrujący statystyki projektowe, gwarancję poprawności obliczeń OZC i certyfikaty z zakresu optymalizacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rkAuthApp">
    
    <div class="rk-auth-header">
        <div class="rk-auth-header-text">
            <h2>Gwarancja inżynierskiej jakości</h2>
            <p>Nie powielam internetowych mitów. Kto odpowiada za wiedzę w tym artykule?</p>
        </div>
        <div class="rk-auth-trust-badge">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zweryfikowany Ekspert E-E-A-T
        </div>
    </div>

    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <div class="rk-auth-photo-ring"></div>
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-auth-photo">
            </div>
            
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Główny Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn li">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" data-panel="omnie">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    O Mnie
                </button>
                <button class="rk-auth-tab" data-panel="liczby">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    W Liczbach
                </button>
                <button class="rk-auth-tab" data-panel="filozofia">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Filozofia OZC
                </button>
            </div>

            <div class="rk-auth-panel active" id="panel-omnie">
                <h3>Praktyka wygrywa z teorią</h3>
                <p>
                    Projektowanie systemów ogrzewania to nie zgadywanie, to czysta matematyka i fizyka budowli. Od lat doradzam inwestorom, audytuję błędy deweloperów i udowadniam, że odpowiednia <strong>temperatura zasilania podłogówki</strong> to klucz do niższych rachunków i żywotności pompy ciepła.
                </p>
                <p>
                    Zbudowałem własne zaplecze techniczne i dom od zera. Wiem dokładnie, ile kosztuje instalatora pośpiech, a inwestora – ufność w &#8222;standardowe rozwiązania bez obliczeń&#8221;. W projekt-ogrzewania.pl łączę <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">wiedzę inżynierską</a> z pragmatyzmem z placu budowy.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-liczby">
                <h3>Instalacje oparte na twardych danych</h3>
                <p>Analizuję każdą pętlę grzewczą i optymalizuję <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywe grzewcze</a> pomp ciepła pod kątem maksymalnej wydajności.</p>
                
                <div class="rk-auth-stats">
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">1000+</div>
                            <div class="rk-stat-label">Wykonanych Projektów OZC</div>
                        </div>
                    </div>
                    
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">~20%</div>
                            <div class="rk-stat-label">Obniżenie kosztów energii</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-filozofia">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Mój fundament to ścisła integracja z wytycznymi technicznymi. Nie uznaję układania rur &#8222;co 15 cm wszędzie&#8221;. Każde pomieszczenie ma inne straty cieplne, co wymaga kalibracji przepływu dla idealnej różnicy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">temperatur ΔT</a>.
                </p>
                
                <div class="rk-guarantee-viz">
                    <div class="rk-gv-text">
                        <h4>Zgodność z PN-EN 1264</h4>
                        <p>Moje algorytmy i artykuły opierają się na obowiązujących normach projektowania ogrzewania płaszczyznowego, gwarantując fizjologiczny komfort domowników i bezpieczeństwo posadzek.</p>
                    </div>
                    <svg class="rk-gv-svg" viewBox="0 0 100 100">
                        <path class="rk-gv-shield" d="M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z"></path>
                        <path class="rk-gv-check" d="M 35 50 L 45 60 L 70 35"></path>
                    </svg>
                </div>
            </div>

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

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active classes
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked tab
            this.classList.add('active');

            // Show corresponding panel
            const target = this.getAttribute('data-panel');
            document.getElementById('panel-' + target).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0ea5e9;
    --rk-faq-blue-hover: #0284c7;
    --rk-faq-bg: #ffffff;
    --rk-faq-surface: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
    --rk-faq-accent: #38bdf8;
}

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

/* Nagłówek i animowane tło */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    color: #ffffff;
    overflow: hidden;
}

.rk-faq-header::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    animation: rkFaqPulseBg 4s infinite alternate;
}

@keyframes rkFaqPulseBg {
    0% { transform: scale(1); opacity: 0.5; }
    100% { transform: scale(1.5); opacity: 1; }
}

.rk-faq-title-area {
    position: relative;
    z-index: 2;
    flex: 1;
}

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

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

.rk-faq-main-icon {
    position: relative;
    z-index: 2;
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}

.rk-faq-anim-gear {
    transform-origin: center;
    animation: rkSpinSlow 12s linear infinite;
}

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

/* Interaktywne Filtry */
.rk-faq-filters {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.rk-faq-filter-btn {
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--rk-faq-border);
    background: var(--rk-faq-surface);
    color: var(--rk-faq-muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-faq-filter-btn:hover {
    border-color: var(--rk-faq-blue);
    color: var(--rk-faq-blue);
}

.rk-faq-filter-btn.active {
    background: var(--rk-faq-blue);
    border-color: var(--rk-faq-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.25);
}

/* Akordeon FAQ */
.rk-faq-list {
    padding: 30px 50px;
    background: var(--rk-faq-surface);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

.rk-faq-item:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 8px 20px -5px rgba(14, 165, 233, 0.15);
}

.rk-faq-question {
    width: 100%;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    gap: 20px;
}

.rk-faq-question h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: color 0.3s;
}

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

.rk-faq-chevron {
    width: 24px;
    height: 24px;
    color: var(--rk-faq-muted);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s;
    flex-shrink: 0;
}

.rk-faq-item.active .rk-faq-chevron {
    transform: rotate(180deg);
    color: var(--rk-faq-blue);
}

.rk-faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0 25px;
}

.rk-faq-item.active .rk-faq-answer {
    max-height: 500px; /* Wysoka wartość dla CSS transition */
    opacity: 1;
    padding: 0 25px 25px 25px;
}

.rk-faq-answer-content {
    padding-top: 15px;
    border-top: 1px solid #f1f5f9;
}

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

.rk-faq-answer p:last-child {
    margin-bottom: 0;
}

.rk-faq-answer strong {
    color: var(--rk-faq-dark);
    font-weight: 700;
}

.rk-faq-answer a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-faq-blue);
    transition: all 0.2s;
}

.rk-faq-answer a:hover {
    color: var(--rk-faq-blue-hover);
    border-bottom-style: solid;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-faq-title-area p { margin: 0 auto; }
    .rk-faq-filters { padding: 15px 20px; justify-content: center; }
    .rk-faq-list { padding: 25px 20px; }
    .rk-faq-question { padding: 15px 20px; }
    .rk-faq-question h3 { font-size: 15px; }
    .rk-faq-answer { padding: 0 20px; }
    .rk-faq-item.active .rk-faq-answer { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o optymalną temperaturę podłogówki",
    "description": "Baza wiedzy inżynierskiej: maksymalna temperatura zasilania, sterowanie strefowe, bezwładność cieplna wylewki oraz ryzyko zasilania podłogówki wysokim parametrem z kotła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01",
    "mainEntity": {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna temperatura wody w podłogówce?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Maksymalna dopuszczalna temperatura zasilania w nowoczesnych układach to zazwyczaj 45°C–50°C, jednak powyżej 40°C znacznie rośnie ryzyko uszkodzenia posadzki. Praca ciągła na wysokim parametrze skraca żywotność rur PEX i drastycznie obniża współczynnik COP pompy ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy temperatura podłogówki powinna być taka sama w każdym pokoju?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie, temperatura powinna być dostosowana do zapotrzebowania konkretnego pomieszczenia poprzez różny rozstaw rur i zastosowanie automatyki strefowej. Innego komfortu cieplnego wymaga łazienka (24°C), a innego sypialnia (19°C), co regulujemy rotametrami na rozdzielaczu."
          }
        },
        {
          "@type": "Question",
          "name": "Jak szybko podłogówka reaguje na zmiany temperatury?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Ze względu na dużą bezwładność cieplną wylewki (grubość betonu 6-7 cm), zmiana temperatury odczuwalna jest po około 3–6 godzinach od regulacji na termostacie. Szybszą reakcją charakteryzują się jedynie systemy suche, gdzie opór cieplny nad rurą jest minimalny."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można zasilać podłogówkę wodą o temp. 50°C?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jest to technicznie możliwe przy połączeniu ze starym kotłem zasypowym, ale absolutnie niezalecane w nowoczesnym budownictwie ze względu na ryzyko pękania posadzek i nieefektywną pracę. Konieczne jest użycie zaworu mieszającego dla zabezpieczenia układu płaszczyznowego przed przegrzaniem."
          }
        }
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Wiedzy FAQ - Parametry Pracy Ogrzewania Podłogowego",
    "description": "Zestawienie inżynierskich pytań i odpowiedzi dotyczących bezpieczeństwa temperaturowego, bezwładności i sterowania strefowego w instalacjach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "sterowanie strefowe ogrzewaniem",
      "bezwładność cieplna w ogrzewaniu podłogowym",
      "zawór mieszający w ogrzewaniu podłogowym",
      "ryzyko pękania posadzki"
    ],
    "measurementTechnique": "Ekstrakcja danych normatywnych z normy PN-EN 1264 oraz charakterystyki pracy pomp ciepła w układach niskotemperaturowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Analiza wpływu temperatury >40°C na wylewki i efektywność energetyczną.",
        "Wytyczne do projektowania zróżnicowanych stref cieplnych za pomocą rotametrów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Asystent FAQ Ogrzewania Płaszczyznowego",
    "description": "Dynamiczny komponent interfejsu (akordeon wiedzy) umożliwiający szybkie filtrowanie i wyszukiwanie inżynierskich odpowiedzi dotyczących norm i eksploatacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-title-area">
            <h2>FAQ – Najczęściej zadawane pytania</h2>
            <p>Rozwiewamy inżynierskie mity. Poznaj oparte na normach (PN-EN 1264) odpowiedzi dotyczące temperatury, bezwładności posadzki i bezpiecznej eksploatacji.</p>
        </div>
        <div class="rk-faq-main-icon">
            <svg viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M50 15 C 30 15, 15 30, 15 50 C 15 70, 30 85, 50 85 C 70 85, 85 70, 85 50 C 85 30, 70 15, 50 15 Z" stroke="#38bdf8" stroke-width="4" stroke-dasharray="10 6" class="rk-faq-anim-gear"/>
                <path d="M40 40 C40 35, 45 30, 50 30 C55 30, 60 35, 60 40 C60 45, 55 48, 50 52 L50 58" stroke="#ffffff" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
                <circle cx="50" cy="70" r="4" fill="#ffffff"/>
            </svg>
        </div>
    </div>

    <div class="rk-faq-filters" id="rkFaqFilters">
        <button class="rk-faq-filter-btn active" data-filter="all">Wszystkie pytania</button>
        <button class="rk-faq-filter-btn" data-filter="parametry">Parametry i Normy</button>
        <button class="rk-faq-filter-btn" data-filter="sterowanie">Sterowanie</button>
    </div>

    <div class="rk-faq-list" id="rkFaqList">
        
        <div class="rk-faq-item" data-category="parametry">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Jaka jest maksymalna temperatura wody w podłogówce?</h3>
                <svg class="rk-faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Maksymalna dopuszczalna temperatura zasilania w nowoczesnych układach to zazwyczaj <strong>45°C–50°C</strong>, jednak długotrwała praca powyżej 40°C jest błędem sztuki. Oznacza to ogromne ryzyko zniszczenia posadzki (pękanie płytek, rozsychanie drewna) oraz pogorszenie komfortu domowników (efekt &#8222;ciężkich nóg&#8221;). 
                    </p>
                    <p>
                        W poprawnie obliczonym systemie <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a> z pompy ciepła nie powinna przekraczać 35°C w największe mrozy. Utrzymanie niskiego parametru to fundament wysokiego COP i niskich rachunków.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="sterowanie">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy temperatura podłogówki powinna być taka sama w każdym pokoju?</h3>
                <svg class="rk-faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Zdecydowanie nie. Temperatura wody grzewczej wychodzącej z pompy jest jedna, ale temperatura posadzki w każdym pomieszczeniu musi być dostosowana do jego funkcji. W łazience potrzebujemy <strong>24°C</strong>, podczas gdy w sypialni komfortowy sen zapewnia <strong>18-19°C</strong>.
                    </p>
                    <p>
                        Osiągamy to na etapie projektu poprzez zagęszczenie pętli rur (np. co 10 cm w łazience, co 15 cm w salonie) oraz precyzyjne <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> z wykorzystaniem dławienia przepływów na rotametrach rozdzielacza i termostatów pokojowych.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="parametry">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Jak szybko podłogówka reaguje na zmiany temperatury?</h3>
                <svg class="rk-faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        W tradycyjnym systemie mokrym (wylewka betonowa lub anhydrytowa o grubości 6-7 cm) zmiana temperatury na termostacie jest odczuwalna w pomieszczeniu po upływie <strong>od 3 do nawet 6 godzin</strong>. Zjawisko to nazywamy <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładnością cieplną w ogrzewaniu podłogowym</a>.
                    </p>
                    <p>
                        Masywna płyta betonowa długo się nagrzewa, ale też bardzo długo oddaje zakumulowane ciepło. Z tego powodu nie zaleca się drastycznego obniżania temperatury na noc lub na czas wyjścia do pracy (np. o 3-4 stopnie), ponieważ ponowne wygrzanie wyziębionej płyty pochłonie więcej energii niż utrzymywanie stałej, stabilnej temperatury.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item" data-category="sterowanie">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy można zasilać podłogówkę wodą o temp. 50°C?</h3>
                <svg class="rk-faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-content">
                    <p>
                        Bezpośrednie zasilanie instalacji płaszczyznowej wodą o temperaturze 50°C jest błędem sztuki instalacyjnej. Tak wysoki parametr jest zarezerwowany dla grzejników wysokotemperaturowych. Wpuszczenie 50°C w podłogę doprowadzi do przekroczenia normy PN-EN 1264, zniszczenia struktury jastrychu i odkształcenia paneli.
                    </p>
                    <p>
                        Jeśli źródłem ciepła jest kocioł na pellet, gaz lub węgiel, bezwzględnie wymagany jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podłogowym</a> połączony z grupą pompową. Obniża on temperaturę zasilania pętli poprzez podmieszanie gorącej wody z kotła z chłodniejszą wodą powracającą z podłogówki.
                    </p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Akordeonu
    const faqItems = document.querySelectorAll('.rk-faq-item');
    
    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Logika Filtrowania
    const filterBtns = document.querySelectorAll('.rk-faq-filter-btn');
    
    filterBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Zmiana aktywnego przycisku
            filterBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            
            const filterValue = btn.getAttribute('data-filter');
            
            // Filtrowanie elementów
            faqItems.forEach(item => {
                item.classList.remove('active'); // Zamknij otwarte przy filtrowaniu
                item.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                
                if (filterValue === 'all' || item.getAttribute('data-category') === filterValue) {
                    item.style.display = 'block';
                    // Animacja pojawiania się
                    setTimeout(() => {
                        item.style.opacity = '1';
                        item.style.transform = 'translateY(0)';
                    }, 50);
                } else {
                    item.style.opacity = '0';
                    item.style.transform = 'translateY(10px)';
                    setTimeout(() => {
                        item.style.display = 'none';
                    }, 300); // Czas trwania animacji zanikania w CSS (jeśli dodana, tu dla płynności)
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-opt-dark: #0f172a;
    --rk-opt-card: #1e293b;
    --rk-opt-blue: #0284c7;
    --rk-opt-accent: #38bdf8;
    --rk-opt-green: #10b981;
    --rk-opt-green-glow: rgba(16, 185, 129, 0.3);
    --rk-opt-red: #ef4444;
    --rk-opt-red-glow: rgba(239, 68, 68, 0.3);
    --rk-opt-text: #f8fafc;
    --rk-opt-muted: #94a3b8;
    --rk-opt-bg: #ffffff;
    --rk-opt-border: #e2e8f0;
}

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

/* Sekcja Główna */
.rk-opt-header {
    background: linear-gradient(145deg, var(--rk-opt-dark) 0%, var(--rk-opt-card) 100%);
    padding: 40px 50px;
    color: var(--rk-opt-text);
    position: relative;
}

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

.rk-opt-header p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-opt-muted);
    margin: 0 0 15px 0;
    max-width: 800px;
}

.rk-opt-highlight {
    color: var(--rk-opt-accent);
    font-weight: 700;
}

/* Interfejs Symulatora */
.rk-opt-dashboard {
    display: grid;
    grid-template-columns: 1fr 350px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-opt-border);
}

.rk-opt-controls {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

/* Przełącznik jak w aplikacji (Toggle) */
.rk-opt-toggle-container {
    background: #ffffff;
    border: 1px solid var(--rk-opt-border);
    border-radius: 16px;
    padding: 8px;
    display: flex;
    position: relative;
    margin-bottom: 30px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-opt-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    border-radius: 12px;
    transition: all 0.3s ease;
    z-index: 2;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-opt-toggle-btn.active[data-mode="eco"] {
    color: #ffffff;
}

.rk-opt-toggle-btn.active[data-mode="waste"] {
    color: #ffffff;
}

.rk-opt-toggle-slider {
    position: absolute;
    top: 8px;
    bottom: 8px;
    width: calc(50% - 8px);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-opt-toggle-container.mode-eco .rk-opt-toggle-slider {
    left: 8px;
    background: var(--rk-opt-green);
    box-shadow: 0 4px 12px var(--rk-opt-green-glow);
}

.rk-opt-toggle-container.mode-waste .rk-opt-toggle-slider {
    left: calc(50%);
    background: var(--rk-opt-red);
    box-shadow: 0 4px 12px var(--rk-opt-red-glow);
}

/* Tekst wynikowy */
.rk-opt-result-text {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-opt-border);
    min-height: 140px;
    transition: all 0.3s ease;
}

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

.rk-opt-result-text a {
    color: var(--rk-opt-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-opt-result-text a:hover {
    border-color: var(--rk-opt-blue);
}

/* Wizualizacja Termometru (SVG) */
.rk-opt-visual {
    background: #ffffff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-left: 1px solid var(--rk-opt-border);
    position: relative;
}

.rk-opt-visual h4 {
    margin: 0 0 20px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-opt-muted);
}

.rk-thermometer-svg {
    width: 100px;
    height: 220px;
    overflow: visible;
}

.rk-therm-bg { fill: #f1f5f9; stroke: #e2e8f0; stroke-width: 2; }
.rk-therm-liquid { transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-therm-glow { transition: all 0.8s; opacity: 0; }

.state-eco .rk-therm-liquid { fill: var(--rk-opt-green); }
.state-eco .rk-therm-glow { fill: var(--rk-opt-green); opacity: 0.2; filter: blur(8px); }
.state-eco .rk-therm-level { transform: translateY(0); }
.state-eco .rk-therm-text { fill: var(--rk-opt-green); }

.state-waste .rk-therm-liquid { fill: var(--rk-opt-red); }
.state-waste .rk-therm-glow { fill: var(--rk-opt-red); opacity: 0.3; filter: blur(12px); animation: rkPulseWarning 1.5s infinite alternate; }
.state-waste .rk-therm-level { transform: translateY(-70px); }
.state-waste .rk-therm-text { fill: var(--rk-opt-red); }

@keyframes rkPulseWarning {
    from { opacity: 0.2; filter: blur(8px); }
    to { opacity: 0.4; filter: blur(15px); }
}

.rk-therm-value {
    font-size: 28px;
    font-weight: 900;
    transition: fill 0.3s;
}

/* CTA Footer */
.rk-opt-footer {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-opt-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-opt-btn {
    background: var(--rk-opt-dark);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
}

.rk-opt-btn:hover {
    background: var(--rk-opt-blue);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

/* Responsywność */
@media (max-width: 850px) {
    .rk-opt-dashboard { grid-template-columns: 1fr; }
    .rk-opt-visual { border-left: none; border-top: 1px solid var(--rk-opt-border); padding: 30px; }
    .rk-opt-footer { flex-direction: column; gap: 20px; text-align: center; }
    .rk-opt-header { padding: 30px 25px; }
    .rk-opt-controls { padding: 30px 25px; }
    .rk-opt-toggle-container { flex-direction: column; }
    .rk-opt-toggle-slider { width: calc(100% - 16px); top: 8px; height: calc(50% - 8px); transition: all 0.3s ease; }
    .rk-opt-toggle-container.mode-eco .rk-opt-toggle-slider { top: 8px; left: 8px; }
    .rk-opt-toggle-container.mode-waste .rk-opt-toggle-slider { top: calc(50%); left: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-podsumowanie-wydajnosci",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie: Jak ustawić system dla maksymalnej wydajności?",
    "description": "Złoty standard konfiguracji ogrzewania podłogowego. Dowiedz się, dlaczego praca w zakresie 30°C–35°C łączy komfort, ekologię i realne oszczędności finansowe dzięki krzywej grzewczej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-temperatury",
    "name": "Zestawienie optymalizacji parametrów temperatury zasilania podłogówki",
    "description": "Techniczne porównanie złotego standardu inżynierskiego (30-35°C) z błędnymi ustawieniami empirycznymi. Baza danych wpływu krzywej grzewczej na roczne koszty eksploatacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura ogrzewania podłogowego",
      "krzywa grzewcza pompy ciepła",
      "obliczenia hydrauliczne podłogówki",
      "projekt techniczny instalacji",
      "oszczędności finansowe na ogrzewaniu"
    ],
    "measurementTechnique": "Analiza wskaźników efektywności COP dla układów płaszczyznowych pracujących w różnych przedziałach temperatur zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ustawienia Inżynierskie: Zasilanie 30-35°C, maksymalna żywotność posadzki, najwyższe COP.",
        "Ustawienia Empiryczne: Zasilanie >40°C, straty energii, ryzyko pękania wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-symulator",
    "name": "Symulator Efektywności Cieplnej Podłogówki",
    "description": "Interaktywny interfejs wizualizujący wpływ wyboru temperatury zasilania na koszty, komfort oraz ekologię w domowych systemach grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opt-wrapper" id="rk-opt-app">
    <div class="rk-opt-header">
        <h2>Podsumowanie: Jak ustawić system dla maksymalnej wydajności?</h2>
        <p>Optymalizacja temperatury to proces dwuetapowy. Najpierw precyzyjny projekt techniczny, a następnie odpowiednia konfiguracja parametrów w automatyce źródła ciepła. <span class="rk-opt-highlight">Dążenie do pracy w zakresie 30°C–35°C to złoty standard.</span></p>
        <p>Jeśli budujesz lub remontujesz – nie pomijaj etapu obliczeń. To tutaj zapadają najważniejsze decyzje o kosztach Twojego życia w kolejnych latach.</p>
    </div>

    <div class="rk-opt-dashboard">
        <div class="rk-opt-controls">
            <h3>Wybierz model sterowania:</h3>
            
            <div class="rk-opt-toggle-container mode-eco" id="rkOptToggleGroup">
                <div class="rk-opt-toggle-slider"></div>
                <div class="rk-opt-toggle-btn active" data-mode="eco">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Złoty Standard
                </div>
                <div class="rk-opt-toggle-btn" data-mode="waste">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    &#8222;Ustawienia na oko&#8221;
                </div>
            </div>

            <div class="rk-opt-result-text" id="rkOptResultBox">
                <p>
                    <strong>Zakres 30°C–35°C</strong> łączy maksymalny komfort, najwyższą ekologię i realne oszczędności finansowe. System wykorzystuje właściwie skonfigurowaną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a>, a fundamentem są rzetelne obliczenia hydrauliczne. Instalacja odwdzięcza się bezobsługową pracą przez dekady.
                </p>
            </div>
        </div>

        <div class="rk-opt-visual state-eco" id="rkOptVisualBox">
            <h4>Temperatura zasilania</h4>
            <svg class="rk-thermometer-svg" viewBox="0 0 100 220">
                <defs>
                    <clipPath id="therm-clip">
                        <rect x="35" y="20" width="30" height="140" rx="15" />
                    </clipPath>
                </defs>
                <!-- Glow effect background -->
                <circle cx="50" cy="180" r="35" class="rk-therm-glow" />
                
                <!-- Thermometer Body -->
                <rect x="35" y="20" width="30" height="150" rx="15" class="rk-therm-bg" />
                <circle cx="50" cy="175" r="25" class="rk-therm-bg" />
                
                <!-- Liquid Fill inside tube -->
                <g clip-path="url(#therm-clip)">
                    <!-- translateY(0) = 30°C, translateY(-70px) = 45°C+ -->
                    <rect x="35" y="100" width="30" height="100" class="rk-therm-liquid rk-therm-level" />
                </g>
                <!-- Bulb Fill -->
                <circle cx="50" cy="175" r="20" class="rk-therm-liquid" />

                <!-- Text overlay -->
                <text x="50" y="60" text-anchor="middle" class="rk-therm-value rk-therm-text" id="rkThermValue">32°C</text>
                
                <!-- Glass Reflection -->
                <path d="M 40 30 Q 45 30 45 80" stroke="#ffffff" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.6"/>
            </svg>
        </div>
    </div>

    <div class="rk-opt-footer">
        <div style="font-size: 14px; color: #64748b; max-width: 350px;">
            Wyeliminuj błędy zanim wylejesz posadzkę. Poznaj parametry swojego budynku.
        </div>
        <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-opt-btn">
            OBLICZ ZAPOTRZEBOWANIE
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleContainer = document.getElementById('rkOptToggleGroup');
    const btns = toggleContainer.querySelectorAll('.rk-opt-toggle-btn');
    const resultBox = document.getElementById('rkOptResultBox');
    const visualBox = document.getElementById('rkOptVisualBox');
    const thermValue = document.getElementById('rkThermValue');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Aktualizacja przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

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

            // Przesunięcie suwaka i klas kontenera
            toggleContainer.className = 'rk-opt-toggle-container mode-' + mode;

            if (mode === 'eco') {
                visualBox.className = 'rk-opt-visual state-eco';
                thermValue.textContent = '32°C';
                
                resultBox.innerHTML = `
                    <p>
                        <strong>Zakres 30°C–35°C</strong> łączy maksymalny komfort, najwyższą ekologię i realne oszczędności finansowe. System wykorzystuje właściwie skonfigurowaną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a>, a fundamentem są rzetelne obliczenia hydrauliczne. Instalacja odwdzięcza się bezobsługową pracą przez dekady.
                    </p>
                `;
            } else {
                visualBox.className = 'rk-opt-visual state-waste';
                thermValue.textContent = '45°C';
                
                resultBox.innerHTML = `
                    <p>
                        <strong>Ryzyko i straty.</strong> Poleganie na "ustawieniach na oko" prowadzi do przegrzewania zasilania (>40°C). System traci <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny</a>, pompa ciepła traci wydajność (niski COP), a Ty płacisz zawyżone rachunki za prąd ryzykując przy tym pęknięcie wylewki.
                    </p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-info-dark: #0f172a;
    --rk-info-panel: #1e293b;
    --rk-info-bg: #ffffff;
    --rk-info-surface: #f8fafc;
    --rk-info-border: #e2e8f0;
    --rk-info-text: #334155;
    --rk-info-muted: #64748b;
    
    --rk-info-blue: #0284c7;
    --rk-info-blue-dark: #0369a1;
    --rk-info-blue-glow: rgba(2, 132, 199, 0.2);
    --rk-info-accent: #38bdf8;
    --rk-info-green: #10b981;
}

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

/* Header */
.rk-info-header {
    background: linear-gradient(135deg, var(--rk-info-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-info-blue);
    overflow: hidden;
}

.rk-info-header::before {
    content: '';
    position: absolute;
    top: -50px; right: -50px;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.15) 0%, transparent 70%);
    border-radius: 50%;
}

.rk-info-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: var(--rk-info-accent);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

.rk-info-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.rk-info-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Main Grid Layout */
.rk-info-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-info-bg);
}

/* Left: Image Preview */
.rk-info-preview-box {
    padding: 40px;
    background: var(--rk-info-surface);
    border-right: 1px solid var(--rk-info-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-img-wrapper {
    position: relative;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.15);
    border: 1px solid var(--rk-info-border);
    group: relative;
    cursor: pointer;
}

.rk-img-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-img-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rk-img-wrapper:hover img {
    transform: scale(1.05);
}

.rk-img-wrapper:hover .rk-img-overlay {
    opacity: 1;
}

.rk-zoom-icon {
    color: #ffffff;
    background: rgba(255,255,255,0.2);
    padding: 15px;
    border-radius: 50%;
    backdrop-filter: blur(4px);
    transform: scale(0.8);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-img-wrapper:hover .rk-zoom-icon {
    transform: scale(1);
}

/* Right: Action Area */
.rk-info-action-box {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

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

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

/* Checklist Details */
.rk-info-checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-info-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-info-dark);
    font-weight: 600;
}

.rk-info-checklist li svg {
    color: var(--rk-info-green);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Download Button */
.rk-btn-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-info-blue);
    color: #ffffff;
    padding: 18px 30px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 10px 20px -5px var(--rk-info-blue-glow);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.rk-btn-download::after {
    content: '';
    position: absolute;
    top: 0; left: -100%; width: 50%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    animation: rkShineBtn 3s infinite;
}

@keyframes rkShineBtn {
    0% { left: -100%; }
    20% { left: 200%; }
    100% { left: 200%; }
}

.rk-btn-download:hover {
    transform: translateY(-3px);
    background: var(--rk-info-blue-dark);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.4);
}

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

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

.rk-file-meta {
    margin-top: 15px;
    font-size: 12px;
    color: var(--rk-info-muted);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-file-meta span {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Footer Copyright */
.rk-info-footer {
    background: var(--rk-info-surface);
    padding: 20px 40px;
    border-top: 1px solid var(--rk-info-border);
    font-size: 12px;
    color: var(--rk-info-muted);
    text-align: center;
    line-height: 1.6;
    font-weight: 500;
}

/* Image Modal */
.rk-modal {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.9);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.rk-modal.open {
    opacity: 1;
    pointer-events: auto;
}

.rk-modal-content {
    max-width: 90%;
    max-height: 90vh;
    position: relative;
    transform: scale(0.95);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-modal.open .rk-modal-content {
    transform: scale(1);
}

.rk-modal-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    display: block;
}

.rk-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-info-grid { grid-template-columns: 1fr; }
    .rk-info-header { padding: 30px 25px; }
    .rk-info-preview-box { padding: 30px 25px; border-right: none; border-bottom: 1px solid var(--rk-info-border); }
    .rk-info-action-box { padding: 30px 25px; }
    .rk-img-wrapper { max-width: 300px; margin: 0 auto; }
    .rk-btn-download { width: 100%; }
    .rk-file-meta { justify-content: center; flex-wrap: wrap; }
    .rk-info-footer { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/"
    },
    "headline": "Infografika: Optymalna temperatura ogrzewania podłogowego",
    "description": "Zestawienie tabelaryczne i graficzne najważniejszych parametrów zasilania podłogówki dla różnych stref i okładzin. Pobierz materiał PDF gotowy do druku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Karta Techniczna Instalatora (PDF) - Ogrzewanie Podłogowe",
    "description": "Zestawienie wytycznych wg PN-EN 1264 obejmujące opory cieplne posadzek, optymalne temperatury zasilania oraz rozstaw rur w formacie PDF i WEBP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "tabela temperatur podłogówki",
      "wytyczne instalacyjne hvac pdf",
      "norma PN-EN 1264 tabela",
      "temperatura zasilania ściągawka"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych danych obliczeniowych OZC i krzywych grzewczych do formatu graficznego ułatwiającego weryfikację nastaw na obiekcie.",
    "mainEntity": {
      "@type": "MediaObject",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.pdf",
      "encodingFormat": "application/pdf"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webapp-infografika-viewer",
    "name": "Interaktywna Przeglądarka Kreskowa",
    "description": "Komponent interfejsu umożliwiający szybki podgląd (zoom) infografiki technicznej przed pobraniem pliku PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-info-container" id="rkInfoApp">
    
    <div class="rk-info-header">
        <div class="rk-info-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Darmowy Materiał PDF
        </div>
        <h2>Infografika: Optymalna temperatura w pigułce</h2>
        <p>Przygotowałem dla Ciebie czytelną &#8222;ściągawkę&#8221; zbierającą najważniejsze wytyczne normy PN-EN 1264. Idealny materiał referencyjny na budowę lub do rozmów z instalatorem.</p>
    </div>

    <div class="rk-info-grid">
        
        <div class="rk-info-preview-box">
            <div class="rk-img-wrapper" id="rkImgTrigger" title="Kliknij, aby powiększyć">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.webp" alt="Podgląd infografiki: Optymalna temperatura ogrzewania podłogowego" loading="lazy">
                <div class="rk-img-overlay">
                    <div class="rk-zoom-icon">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-info-action-box">
            <h3>Wszystkie dane techniczne w jednym miejscu</h3>
            <p>Nie musisz pamiętać skomplikowanych wzorów. Zapisz ten plik na telefonie lub wydrukuj, aby mieć pod ręką parametry niezbędne do prawidłowej regulacji systemu HVAC.</p>
            
            <ul class="rk-info-checklist">
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Tabele temperatur zasilania</strong> dopasowane do rodzaju posadzki (płytki, panele, drewno).</span>
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Maksymalne limity ciepła</strong> dla poszczególnych pomieszczeń wg PN-EN 1264.</span>
                </li>
                <li>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    <span><strong>Podsumowanie błędów</strong> obniżających efektywność (COP) pomp ciepła.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.pdf" download="Infografika-Optymalna-Temperatura-Podlogowki.pdf" class="rk-btn-download">
                Pobierz materiał w PDF
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            </a>

            <div class="rk-file-meta">
                <span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg> Format: PDF</span>
                <span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg> Jakość: Do druku (A4)</span>
            </div>
        </div>
    </div>

    <div class="rk-info-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>

</div>

<div class="rk-modal" id="rkImgModal">
    <div class="rk-modal-content">
        <button class="rk-modal-close" id="rkModalClose">
            Zamknij
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jaka-jest-optymalna-temperatura-ogrzewania-podlogowego.webp" alt="Infografika pełny rozmiar" class="rk-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const trigger = document.getElementById('rkImgTrigger');
    const modal = document.getElementById('rkImgModal');
    const closeBtn = document.getElementById('rkModalClose');

    // Open Modal
    trigger.addEventListener('click', () => {
        modal.classList.add('open');
        document.body.style.overflow = 'hidden'; // prevent background scrolling
    });

    // Close Modal on Button
    closeBtn.addEventListener('click', () => {
        modal.classList.remove('open');
        document.body.style.overflow = '';
    });

    // Close Modal on Outside Click
    modal.addEventListener('click', (e) => {
        if (e.target === modal) {
            modal.classList.remove('open');
            document.body.style.overflow = '';
        }
    });

    // Close Modal on ESC key
    document.addEventListener('keydown', (e) => {
        if (e.key === 'Escape' && modal.classList.contains('open')) {
            modal.classList.remove('open');
            document.body.style.overflow = '';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Za długa pętla podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/</link>
					<comments>https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 06 Feb 2025 17:41:12 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort cieplny w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Regulacja hydrauliczna]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[regulacja hydrauliczna]]></category>
		<category><![CDATA[straty ciśnienia]]></category>
		<category><![CDATA[za długa pętla podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2103</guid>

					<description><![CDATA[<p>Za długa pętla podłogówki bywa jednym z najbardziej niedocenianych zagrożeń związanych z instalacją ogrzewania podłogowego. Jeśli jedna pętla jest zbyt długa, możesz borykać się z nierównomiernym rozkładem temperatur w pomieszczeniach, nadmiernym obciążeniem pompy obiegowej oraz wyższymi rachunkami za ogrzewanie. Niewłaściwy dobór obwodu grzewczego wiąże się też z potencjalnymi problemami w późniejszej regulacji i eksploatacji całej instalacji. Właśnie dlatego tak ważne jest poznanie zasad prawidłowego projektowania oraz stosowanie sprawdzonych rozwiązań, które pozwolą uniknąć dodatkowych kosztów i zapewnić pełen komfort cieplny w każdym pomieszczeniu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Za długa pętla podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Za długa pętla podłogówki</strong> – to pojęcie, które często pojawia się w kontekście instalacji ogrzewania podłogowego. Wiele osób, które decydują się na takie rozwiązanie, nie zdaje sobie sprawy z tego, jak istotna jest optymalna długość każdej pętli grzewczej. <em>Właściwie zaprojektowany i wykonany system</em> ma kluczowe znaczenie dla komfortu cieplnego, efektywności energetycznej i trwałości całej instalacji. W poniższym artykule przyjrzymy się temu, czym grozi <em>za długa pętla podłogówki</em>, jak rozpoznać tę sytuację, a także jakie kroki podjąć, by uniknąć ewentualnych problemów.</p>



<h2 class="wp-block-heading">Na czym polega problem zbyt długiej pętli?</h2>



<p class="wp-block-paragraph">Instalacja ogrzewania podłogowego polega na rozprowadzeniu w podłodze rur, w których krąży czynnik grzewczy (najczęściej woda). <em>Te rury</em> tworzą tzw. pętle ogrzewania podłogowego, czyli obwody, którymi przepływa ogrzewana woda z kotła, pompy ciepła lub innego źródła ciepła. Podstawowym celem jest równomierne rozprowadzenie energii cieplnej tak, by zapewnić komfort w poszczególnych pomieszczeniach.</p>



<p class="wp-block-paragraph">Jeżeli jedna pętla okaże się za długa, to:</p>



<ol class="wp-block-list">
<li><strong>Zwiększają się straty ciśnienia</strong>, a to powoduje większe obciążenie pompy obiegowej.</li>



<li><strong>Nierównomiernie rozkłada się temperatura</strong> – w niektórych częściach pętli podłoga będzie cieplejsza, w innych chłodniejsza.</li>



<li><strong>Wzrasta ryzyko zapowietrzenia</strong> i konieczność częstszego odpowietrzania.</li>



<li><strong>Zaburzone zostaje sterowanie instalacją</strong> – trudniej ustawić optymalny przepływ w całym systemie.</li>
</ol>



<p class="wp-block-paragraph">W konsekwencji pętla ogrzewania podłogowego działa mniej efektywnie, co przekłada się na wyższe koszty eksploatacji i <em>niższy komfort cieplny</em>.</p>



<h3 class="wp-block-heading">Jak rozpoznać, że pętla jest za długa?</h3>



<p class="wp-block-paragraph">Zidentyfikowanie zbyt długiej pętli czasem bywa trudne na pierwszy rzut oka. Jednak istnieją pewne charakterystyczne objawy, które mogą świadczyć o takim problemie:</p>



<ul class="wp-block-list">
<li><strong>Duże wahania temperatur</strong> na przestrzeni jednego pomieszczenia.</li>



<li><strong>Wolniejsze nagrzewanie się</strong> podłogi w dalszych częściach obwodu (zwykle najbardziej oddalonych od rozdzielacza).</li>



<li><strong>Konieczność mocniejszego odkręcania zaworów</strong> lub podnoszenia parametrów źródła ciepła.</li>



<li><strong>Podwyższone koszty ogrzewania</strong> w porównaniu do przewidywanych założeń projektowych.</li>
</ul>



<p class="wp-block-paragraph">Jeżeli obserwujesz jednocześnie kilka z powyższych symptomów, warto <strong>przeanalizować <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt instalacji</a></strong> lub skontaktować się z instalatorem w celu sprawdzenia przepływów i długości pętli.</p>



<h2 class="wp-block-heading">Dlaczego długość pętli ma tak duże znaczenie?</h2>



<p class="wp-block-paragraph">System ogrzewania podłogowego powinien być zaprojektowany z uwzględnieniem odpowiedniej mocy grzewczej, strat ciepła w budynku, ale także ze świadomością, że każda pętla podłogówki ma ograniczoną zdolność do skutecznego i równomiernego przekazywania ciepła. Optymalna długość pętli wynosi zazwyczaj od 80 do 120 metrów. <em>Oczywiście konkretny metraż zależy od</em>:</p>



<ul class="wp-block-list">
<li>Przekroju użytych rur (np. 16 mm, 17 mm, 18 mm),</li>



<li>Rozstawu rur (najczęściej 10, 15 lub 20 cm),</li>



<li>Typu i mocy źródła ciepła,</li>



<li>Parametrów cieplnych pomieszczenia (izolacja, wielkość, przeznaczenie).</li>
</ul>



<p class="wp-block-paragraph">Jeśli jednak w pomieszczeniu zaprojektowano jeden obwód o długości znacznie przekraczającej 120-140 metrów, możemy mówić o potencjalnej <strong>za długiej pętli podłogówki</strong>.</p>



<h3 class="wp-block-heading">Straty ciśnienia i obciążenie pompy.</h3>



<p class="wp-block-paragraph">Im dłuższa pętla, tym większy opór hydrauliczny. Aby wymusić przepływ wody przez tak długi obwód, potrzebna jest <strong>mocniejsza pompa</strong>, zdolna do pokonania wyższych strat ciśnienia. Jeśli pompa obiegowa jest dobrana zbyt słabo albo znajduje się na granicy swoich możliwości, może mieć trudności z przepompowaniem wody przez cały układ. W efekcie niektóre sekcje pętli mogą być niedogrzane.</p>



<h3 class="wp-block-heading">Różnice temperatur w obrębie jednej pętli.</h3>



<p class="wp-block-paragraph">Woda wchodząca do <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rury</a> pętli ma wyższą temperaturę, a opuszczając ją – jest już mocno wychłodzona. Wprawdzie ogrzewanie podłogowe działa niskotemperaturowo, a spadek temperatur na dobrze zoptymalizowanej pętli wynosi zwykle tylko kilka stopni, to jednak przy długości sięgającej kilkudziesięciu metrów różnice te mogą stać się na tyle duże, by w jednej części pomieszczenia podłoga była wyraźnie cieplejsza niż w drugiej.</p>



<h2 class="wp-block-heading">Skutki, które może przynieść za długa pętla podłogówki.</h2>



<p class="wp-block-paragraph">Poniżej przedstawiamy konsekwencje niewłaściwego doboru długości obwodów i wynikające z tego problemy:</p>



<ol class="wp-block-list">
<li><strong>Obniżony komfort cieplny</strong> – duże różnice temperatur na powierzchni podłogi utrudniają utrzymanie jednorodnego mikroklimatu w pomieszczeniu.</li>



<li><strong>Wyższe koszty eksploatacji</strong> – aby zrekompensować niewystarczający przepływ i odpowiednio dogrzać najbardziej oddalone obszary, należy zwiększyć parametry zasilania instalacji lub czas pracy pompy.</li>



<li><strong>Nadmierne obciążenie pompy</strong> – skraca to jej żywotność i może prowadzić do częstszych awarii.</li>



<li><strong>Trudności w regulacji instalacji</strong> – równoważenie hydrauliczne staje się bardziej skomplikowane, a niekiedy niemożliwe bez dodatkowych inwestycji w bardziej rozbudowane systemy sterowania.</li>



<li><strong>Potencjalne przegrzewanie poszczególnych stref</strong> – może prowadzić do uszkodzenia podłogi lub wykończenia podłogowego (np. paneli) w wyniku zbyt wysokiej temperatury w niektórych obszarach.</li>
</ol>



<h3 class="wp-block-heading">Jak oblicza się długość pętli podłogówki?</h3>



<p class="wp-block-paragraph">Aby właściwie obliczyć długość pętli, należy wziąć pod uwagę:</p>



<ul class="wp-block-list">
<li><strong>Wielkość i kształt pomieszczenia</strong> – im bardziej skomplikowana geometria, tym trudniejszy rozkład rur.</li>



<li><strong>Gęstość ułożenia rur</strong> (rozstaw) – standardowo w domach jednorodzinnych to 10, 15 lub 20 cm. Im gęstszy <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">rozstaw</a>, tym więcej metrów rury potrzeba na pokrycie całej powierzchni.</li>



<li><strong>Straty cieplne w pomieszczeniu</strong> – w uproszczeniu, im większe straty, tym więcej ciepła trzeba dostarczyć, a co za tym idzie – lepiej zaplanować odpowiednią ilość pętli.</li>



<li><strong>Moc źródła grzewczego</strong> – im bardziej wydajny kocioł czy pompa ciepła, tym łatwiej zrekompensować ewentualne drobne błędy w projektowaniu, ale nie rozwiąże to problemu, jeśli pętla jest zdecydowanie za długa.</li>
</ul>



<p>Przykładowe (schematyczne) obliczenie:</p>
<ol>
    <li>Rozstaw rur: 15 cm.</li>
    <li>Powierzchnia pomieszczenia: 25 m².</li>
    <li>
        Długość rury potrzebnej na 1 m² przy rozstawie 15 cm to około 6,7 mb (metrów bieżących).<br>
        Otrzymujemy:
        <p>
            \[
            25 \, m^2 \times 6.7 \, \frac{mb}{m^2} = 167.5 \, mb \, (przybliżony \, wynik)
            \]
        </p>
        Już widać, że jedna pętla mogłaby przekroczyć nawet 160-170 metrów, co jest wartością <em>zdecydowanie</em> zbyt dużą.
    </li>
    <li>
        W takiej sytuacji zaleca się <em>podział na dwie pętle</em> po około 80-85 mb każda.
    </li>
</ol>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>



<p class="wp-block-paragraph">Oczywiście jest to ujęcie poglądowe – w praktyce wchodzi w grę wiele czynników, które szczegółowo analizują projektanci i instalatorzy.</p>



<h2 class="wp-block-heading">Czy da się skorygować za długą pętlę?</h2>



<p class="wp-block-paragraph"><em>Kiedy już odkryjemy, że nasza instalacja została zaprojektowana niewłaściwie</em>, powstaje pytanie, czy da się ją skorygować bez przeprowadzenia kosztownego remontu podłogi. Niestety, jeżeli pętla jest zdecydowanie zbyt długa i została zalana w posadzce, to możliwości są ograniczone. Z reguły można rozważyć:</p>



<ol class="wp-block-list">
<li><strong>Montaż dodatkowej pompy obiegowej</strong> – jednak może to tylko częściowo rozwiązać problem ze zbyt długą pętlą, zwiększając przepływ, ale nie zawsze zapewni idealny rozkład temperatur.</li>



<li><strong>Instalację zaworów regulacyjnych, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielaczy</a>, belki mieszającej</strong> – pomoże w pewnym stopniu wyregulować przepływ i temperaturę.</li>



<li><strong>Wymianę źródła ciepła na mocniejsze</strong> – jeśli woda ma być w stanie szybciej krążyć w długiej pętli, musi być też zapewnione wyższe ciśnienie i odpowiednio większa moc. Jednak takie działanie często jest nieopłacalne energetycznie.</li>



<li><strong>Faktyczne przerobienie instalacji</strong> – w ekstremalnych przypadkach niezbędne może okazać się rozbicie dużej pętli na mniejsze. Jest to jednak kosztowne i wiąże się z koniecznością naruszenia posadzki.</li>
</ol>



<p class="wp-block-paragraph">Zdecydowanie bardziej racjonalne jest uniknięcie problemu na etapie projektowania i montażu. <em>O wiele łatwiej</em> jest podzielić przestrzeń na dwie lub trzy pętle niż próbować później radzić sobie z konsekwencjami zbyt długiego obwodu.</p>



<h3 class="wp-block-heading">Jak zapobiegać za długiej pętli podłogówki?</h3>



<p class="wp-block-paragraph">Najlepszym sposobem na uniknięcie problemów jest <strong>prawidłowe zaprojektowanie</strong> ogrzewania podłogowego. W praktyce oznacza to:</p>



<ul class="wp-block-list">
<li><strong>Konsultację z doświadczonym projektantem</strong>: Specjalista, znając kubaturę budynku, rozkład pomieszczeń, materiał ścian, izolacji i zapotrzebowanie na moc cieplną, będzie w stanie zaplanować optymalny układ rur.</li>



<li><strong>Użycie odpowiednich narzędzi projektowych</strong>: Dobre programy do projektowania instalacji pomogą precyzyjnie obliczyć zapotrzebowanie na ciepło i rozkład rur.</li>



<li><strong>Dbanie o jakość wykonania</strong>: Równomierne ułożenie rur oraz prawidłowe podłączenie do rozdzielacza.</li>



<li><strong>Balans hydrauliczny</strong>: Niezbędny element, który pozwala na wyregulowanie przepływu między kilkoma pętlami.</li>
</ul>



<p class="wp-block-paragraph">Warto pamiętać, że każda <em>profesjonalna</em> instalacja powinna zawierać dokumentację w postaci planu rozprowadzenia rur, na podstawie której można w razie potrzeby przeprowadzać ewentualne naprawy i modernizacje.</p>



<h2 class="wp-block-heading">Przykładowe wyliczenie: jak rozplanować pętle w domu jednorodzinnym?</h2>



<p class="wp-block-paragraph">Załóżmy, że mamy typowy dom o powierzchni użytkowej ok. 120 m², z następującym układem pomieszczeń:</p>



<ul class="wp-block-list">
<li><strong>Parter</strong>: salon (30 m²), kuchnia (12 m²), łazienka (6 m²), korytarz (10 m²).</li>



<li><strong>Piętro</strong>: 3 sypialnie (każda około 12 m²) oraz duża łazienka (10 m²).</li>
</ul>



<p class="wp-block-paragraph">Przyjmując, że rozstaw rur to 15 cm, a średnica to 16 mm, można wstępnie założyć:</p>



<ul class="wp-block-list">
<li>Salon (30 m²) – zapotrzebowanie ok. 6,7 mb rury na 1 m², co daje 201 mb. To <strong>zbyt dużo</strong> na jedną pętlę, więc zaleca się minimum 2 pętle:
<ul class="wp-block-list">
<li><em>Pętla 1</em>: 100 mb,</li>



<li><em>Pętla 2</em>: 101 mb.</li>
</ul>
</li>



<li>Kuchnia (12 m²) – potrzebujemy ok. 80,4 mb. To jeszcze graniczna długość jednej pętli, ale wciąż do przyjęcia, pod warunkiem że projekt przewiduje właściwy przepływ. Można rozważyć podział na 2 krótsze pętle po ~40 mb, zwłaszcza jeśli kuchnia ma nieregularny kształt.</li>



<li>Łazienka na parterze (6 m²) – ok. 40,2 mb rury. To bez problemu może być jedna pętla.</li>



<li>Korytarz (10 m²) – ok. 67 mb rury. Zalecana jedna pętla.</li>



<li>Sypialnie (3 × 12 m²) – każda wymaga ok. 80,4 mb, co sugeruje, że każda sypialnia może mieć <em>jedną pętlę</em> pod warunkiem, że nie ma problemów z oporami przepływu.</li>



<li>Łazienka na piętrze (10 m²) – ok. 67 mb, więc może być jedna pętla.</li>
</ul>



<p class="wp-block-paragraph">Już z tego prostego szacunku widać, że istnieje potencjalne ryzyko, iż <strong>za długa pętla podłogówki</strong> pojawi się tam, gdzie mamy duże pomieszczenia typu salon. W praktyce zawsze warto <em>podzielić</em> największe przestrzenie na co najmniej dwie pętle.</p>



<h2 class="wp-block-heading"><strong>FAQ (5 pytań i odpowiedzi):</strong></h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1738855879724"><strong class="schema-faq-question"><strong>Czy długość pętli podłogówki przekraczająca 120 metrów zawsze oznacza problemy?</strong></strong> <p class="schema-faq-answer">Nie zawsze, ale zwykle pętle powyżej 100–120 metrów mogą powodować utrudniony przepływ, wyższe straty ciśnienia i nierównomierne ogrzewanie. Wszystko zależy od średnicy rur, rozstawu oraz możliwości pompy obiegowej.</p> </div> <div class="schema-faq-section" id="faq-question-1738855914795"><strong class="schema-faq-question"><strong>Jak sprawdzić, czy moja pętla jest za długa?</strong></strong> <p class="schema-faq-answer">Najlepiej zapoznać się z dokumentacją projektu lub zmierzyć rzeczywistą długość rury. Zwróć także uwagę na objawy: wolne nagrzewanie podłogi, nierówne temperatury czy zbyt wysokie koszty ogrzewania.</p> </div> <div class="schema-faq-section" id="faq-question-1738855927448"><strong class="schema-faq-question"><strong>Czy da się skrócić pętlę bez skuwania posadzki?</strong></strong> <p class="schema-faq-answer">Niestety jest to trudne. Można zastosować dodatkowe urządzenia regulacyjne lub mocniejszą pompę, jednak w praktyce całkowite wyeliminowanie problemu wymaga podziału obwodu, co zazwyczaj wiąże się z ingerencją w podłogę.</p> </div> <div class="schema-faq-section" id="faq-question-1738855943291"><strong class="schema-faq-question"><strong>Jak uniknąć za długiej pętli podczas projektowania?</strong></strong> <p class="schema-faq-answer">Kluczowe są prawidłowe obliczenia i rozłożenie rur w kilku krótszych pętlach zamiast jednej długiej. Pomoże w tym doświadczony projektant, który dobierze odpowiednią średnicę rur, rozstaw i liczbę obwodów.</p> </div> <div class="schema-faq-section" id="faq-question-1738855957628"><strong class="schema-faq-question"><strong>Jakie dodatkowe koszty mogą wiązać się z za długą pętlą podłogówki?</strong></strong> <p class="schema-faq-answer">Przede wszystkim wyższe rachunki za ogrzewanie ze względu na słabszy przepływ i konieczność zwiększania temperatury zasilania. Wzrasta też ryzyko częstszych awarii pompy obiegowej i konieczność rozbudowanej regulacji systemu, co oznacza dodatkowe wydatki.</p> </div> </div>



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



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



<p class="wp-block-paragraph"><strong>Za długa pętla podłogówki</strong> to problem, którego można uniknąć, planując instalację na etapie projektu i wykonując ją zgodnie ze sztuką. Najważniejsze elementy to:</p>



<ul class="wp-block-list">
<li><strong>Prawidłowe obliczenia</strong>: ustalenie rozstawu, średnicy rur oraz liczby pętli odpowiednio do zapotrzebowania na ciepło i kształtu pomieszczeń.</li>



<li><strong>Zachowanie zalecanych długości obwodów</strong> (najczęściej do 80–100 mb, maksymalnie 120 mb).</li>



<li><strong>Balansowanie hydrauliczne</strong>: zapewnienie prawidłowego przepływu i wyrównanie ciśnień w całej instalacji.</li>



<li><strong>Dobór odpowiedniej pompy obiegowej</strong>: dopasowanej do oporów instalacji.</li>



<li><strong>Regularna konserwacja</strong>: odpowietrzanie, kontrola rozdzielaczy, sprawdzanie pracy pompy.</li>
</ul>



<p class="wp-block-paragraph">Jeśli już dojdzie do sytuacji, że w posadzce mamy pętlę przekraczającą znacznie zalecaną długość, <em>można próbować</em> załagodzić skutki poprzez odpowiedni dobór i regulację pompy obiegowej, montaż zaworów balansujących czy regulację przepływów na rozdzielaczu. Niemniej jednak rozwiązania te często są jedynie półśrodkami i nie przynoszą tak dobrych rezultatów, jak prawidłowe wykonanie instalacji od samego początku.</p>



<p class="wp-block-paragraph">Pamiętaj, że ogrzewanie podłogowe jest systemem niskotemperaturowym, <em>który wymaga precyzji i staranności przy projektowaniu</em>. Dzięki temu możliwe jest osiągnięcie wysokiego komfortu cieplnego, przy jednoczesnym zachowaniu korzystnych kosztów eksploatacji. Dlatego warto postawić na sprawdzonych fachowców i dopilnować, by <strong>za długa pętla podłogówki</strong> nie stała się Twoją bolączką na 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="Xq3xLC7896"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe loading="lazy" 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=iUtY3elrEK#?secret=Xq3xLC7896" data-secret="Xq3xLC7896" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Za długa pętla podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
