<?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 Domowe systemy grzewcze - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/domowe-systemy-grzewcze/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/domowe-systemy-grzewcze/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 25 Apr 2026 17:29:48 +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 Domowe systemy grzewcze - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/domowe-systemy-grzewcze/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jak często trzeba serwisować ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 12 Oct 2025 12:21:11 +0000</pubDate>
				<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Konserwacja systemów grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady dla domu]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Serwis i konserwacja]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[częstotliwość serwisu ogrzewania]]></category>
		<category><![CDATA[jak dbać o ogrzewanie podłogowe]]></category>
		<category><![CDATA[konserwacja ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt serwisu ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne]]></category>
		<category><![CDATA[płukanie instalacji grzewczej]]></category>
		<category><![CDATA[przegląd instalacji grzewczej]]></category>
		<category><![CDATA[rozdzielacz ogrzewania podłogowego]]></category>
		<category><![CDATA[serwis ogrzewania podłogowego]]></category>
		<category><![CDATA[zapowietrzone ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2801</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to synonim komfortu i efektywnego rozprowadzania ciepła. Jednak, aby przez lata cieszyć się jego bezawaryjną pracą, niezbędna jest odpowiednia profilaktyka. Wielu inwestorów zastanawia się więc, jak często trzeba serwisować ogrzewanie podłogowe i czy naprawdę jest to konieczne. Odpowiedź jest kluczowa dla zdrowia całej instalacji. Regularne przeglądy to nie fanaberia, a konieczność, która pozwala uniknąć kosztownych awarii w środku sezonu grzewczego, zapewnia optymalną wydajność i znacząco wydłuża żywotność wszystkich komponentów systemu. W naszym artykule znajdziesz szczegółowy harmonogram prac serwisowych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">Jak często trzeba serwisować ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Jak często trzeba serwisować ogrzewanie podłogowe?</strong>&nbsp;To pytanie zadaje sobie wielu właścicieli domów i mieszkań, którzy zdecydowali się na ten komfortowy system grzewczy. Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu instalacji, jej elementów oraz intensywności użytkowania. W tym artykule rozwiejemy wszystkie wątpliwości, przedstawiając szczegółowy harmonogram przeglądów dla wodnego ogrzewania podłogowego. Dowiesz się, które czynności możesz wykonać samodzielnie, a kiedy bezwzględnie należy wezwać specjalistę, aby zapewnić systemowi długą i bezawaryjną żywotność.</p>



<h2 class="wp-block-heading">Wodne ogrzewanie podłogowe – system wymagający regularnej uwagi</h2>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe to system, który cieszy się ogromną popularnością ze względu na swoją energooszczędność i komfort cieplny. Składa się z wielu skomplikowanych elementów: źródła ciepła (kocioł, pompa ciepła), <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza</a>, pompy obiegowej, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur</a> ukrytych w wylewce oraz sterowników. To właśnie złożoność tej instalacji sprawia, że <strong>regularny serwis ogrzewania podłogowego</strong> jest nie tyle zalecany, co konieczny.</p>



<p class="wp-block-paragraph">Wielu inwestorów popełnia błąd, traktując instalację jako &#8222;zapomnianą&#8221; po jej montażu. Niestety, brak profilaktyki może prowadzić do spadku wydajności, zwiększonych kosztów ogrzewania, a w skrajnych przypadkach – do kosztownych awarii. Poniżej przedstawiamy kompletny harmonogram, który pomoże Ci utrzymać system w idealnej kondycji.</p>



<h3 class="wp-block-heading">Roczny przegląd techniczny – podstawa bezpieczeństwa i efektywności</h3>



<p class="wp-block-paragraph"><strong>Bezwzględnym minimum</strong>&nbsp;jest przeprowadzenie corocznego przeglądu przez wykwalifikowanego serwisanta. Najlepszym momentem na tę czynność jest koniec lata lub początek jesieni, czyli tuż przed rozpoczęciem sezonu grzewczego. Dlaczego to takie ważne? Pozwala to na identyfikację i usunięcie potencjalnych problemów zanim nadejdą mrozy, kiedy awaria systemu grzewczego jest szczególnie dotkliwa.</p>



<ul class="wp-block-list">
<li><strong>Kontrola źródła ciepła:</strong> Serwisant powinien dokładnie sprawdzić kocioł gazowy, kondensacyjny lub pompę ciepła. Czynności obejmują:
<ul class="wp-block-list">
<li>Pomiar ciśnienia w instalacji i sprawdzenie szczelności.</li>



<li>Kontrolę spalin dla kotłów gazowych (sprawność combustion).</li>



<li>Czyszczenie wymiennika i palnika.</li>



<li>Sprawdzenie parametrów pracy i ewentualną kalibrację.</li>



<li><strong>Zalecamy</strong> korzystanie z usług autoryzowanych serwisów, które dysponują odpowiednim sprzętem i wiedzą na temat Twojego urządzenia.</li>
</ul>
</li>



<li><strong>Przegląd rozdzielacza ogrzewania podłogowego:</strong> To &#8222;serce&#8221; całego systemu. Specjalista:
<ul class="wp-block-list">
<li><strong>Odpowietrzy instalację</strong> – to kluczowa czynność, ponieważ powietrze w rurach jest najczęstszą przyczyną nierównego grzania i tzw. &#8222;zimnych placów&#8221; na podłodze.</li>



<li>Sprawdzi działanie siłowników i głowic termostatycznych – czy prawidłowo otwierają i zamykają przepływ do poszczególnych pętli grzewczych.</li>



<li>Skontroluje stan zaworów odcinających i regulacyjnych.</li>



<li>Sprawdzi działanie pompy obiegowej.</li>
</ul>
</li>



<li><strong>Wyregulowanie hydrauliczne systemu:</strong> To często pomijany, ale niezwykle ważny element. Polega na takim ustawieniu przepływów na rozdzielaczu, aby każda <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">pętla grzewcza</a> otrzymywała dokładnie taką ilość ciepłej wody, jaka jest potrzebna do osiągnięcia jednakowej temperatury w wszystkich pomieszczeniach. Dzięki temu unikniesz sytuacji, w której jedna część domu jest przegrzana, a druga zimna.</li>
</ul>



<h2 class="wp-block-heading">Czynności serwisowe w dłuższych odstępach czasu</h2>



<p class="wp-block-paragraph">Podczas gdy przegląd roczny jest standardem, istnieją czynności, które należy wykonywać rzadziej, ale są równie istotne dla żywotności instalacji.</p>



<h3 class="wp-block-heading">Płukanie instalacji – dlaczego jest konieczne?</h3>



<p class="wp-block-paragraph"><strong>Co 3 do 5 lat</strong>&nbsp;należy rozważyć&nbsp;<strong>płukanie i czyszczenie chemiczne</strong>&nbsp;całej instalacji grzewczej. Nawet jeśli na początku napełniona była czystą wodą z inhibitorami korozji, z czasem zachodzą w niej niekorzystne procesy.</p>



<ul class="wp-block-list">
<li><strong>Powstawanie osadów:</strong> W wyniku korozji wewnętrznej oraz wytrącania się związków mineralnych z wody (szczególnie w rejonach z twardą wodą) w rurach i innych elementach tworzy się muł, kamień kotłowy i biofilm.</li>



<li><strong>Skutki zanieczyszczeń:</strong> Te osady działają jak izolator, pogarszając wymianę ciepła między wodą a podłogą. System staje się mniej wydajny, a Ty płacisz wyższe rachunki za ogrzewanie. Dodatkowo, zanieczyszczenia obciążają pompę obiegową, mogą blokować zawory i prowadzić do awarii drogich komponentów.</li>



<li><strong>Przebieg procesu:</strong> Serwisant używa specjalistycznej pompy, która tłoczy przez instalację środki chemiczne rozpuszczające osady. Następnie instalacja jest dokładnie płukana czystą wodą, zanim zostanie ponownie napełniona i zabezpieczona inhibitorami.</li>
</ul>



<p class="wp-block-paragraph">Warto zaznaczyć, że na potrzeby takiego serwisu, warto wyposażyć instalację w odpowiednie&nbsp;<strong>zawory serwisowe</strong>&nbsp;już na etapie projektu, co znacznie ułatwi ten proces.</p>



<h2 class="wp-block-heading">Rola użytkownika – codzienna obserwacja i proste czynności</h2>



<p class="wp-block-paragraph">Odpowiedzialność za stan ogrzewania podłogowego nie spoczywa wyłącznie na serwisancie. Jako użytkownik możesz i powinieneś wykonywać regularne, proste obserwacje, które pozwolą w porę wychwycić nieprawidłowości.</p>



<h3 class="wp-block-heading">Kontrola ciśnienia w instalacji</h3>



<p class="wp-block-paragraph">Raz w miesiącu, a koniecznie przed sezonem grzewczym, rzuć okiem na&nbsp;<strong>manometr</strong>&nbsp;(wskazówkę ciśnienia), który zazwyczaj znajduje się na kotle lub przy rozdzielaczu. Prawidłowe ciśnienie w zimnej instalacji mieści się zwykle w przedziale&nbsp;<strong>1,0 – 1,5 bara</strong>. Jeśli zauważysz, że ciśnienie systematycznie spada (np. poniżej 0,8 bara) i musisz je często uzupełniać, jest to wyraźny sygnał, że w systemie może być nieszczelność. W takim przypadku niezwłocznie skontaktuj się z serwisem.</p>



<h3 class="wp-block-heading">Testowe uruchomienie systemu</h3>



<p class="wp-block-paragraph">Zanim na dobre rozpocznie się sezon grzewczy, uruchom ogrzewanie na niskiej temperaturze (np. 20-21°C) i pozwól mu pracować przez dzień lub dwa. Przejdź się po wszystkich pomieszczeniach i dotknij podłogi. Czy jest równomiernie ciepła? Czy nie ma miejsc, które pozostają zimne? Czy słyszysz jakieś niepokojące dźwięki, takie jak bulgotanie lub szum? Taki test pozwoli Ci zweryfikować działanie systemu w kontrolowanych warunkach, zanim będzie musiał zmierzyć się z siarczystym mrozem.</p>



<h2 class="wp-block-heading">Sygnały ostrzegawcze – kiedy nie zwlekać z wezwaniem pomocy?</h2>



<p class="wp-block-paragraph">Niektóre problemy nie mogą czekać na coroczny przegląd. Jeśli zaobserwujesz którykolwiek z poniższych objawów, działaj natychmiast.</p>



<ul class="wp-block-list">
<li><strong>Wyraźnie nierówne grzanie podłogi:</strong> Gdy niektóre jej fragmenty są ciepłe, a inne zimne, to niemal pewny objaw zapowietrzenia którejś z pętli lub jej zablokowania przez zanieczyszczenia.</li>



<li><strong>Gwałtowny spadek ciśnienia:</strong> Manometr wskazuje wartość bliską zeru, a uzupełnianie wody nie daje trwałego efektu.</li>



<li><strong>Dostrzegalny wyciek wody:</strong> W okolicy rozdzielacza, kotła lub na rurach widoczne są krople wody, kałuże lub zacięki.</li>



<li><strong>Nietypowe dźwięki:</strong> Głośne bulgotanie, pukanie, terkotanie lub gwiżdżąca pompa obiegowa to sygnały, że w systemie jest powietrze, pompa jest uszkodzona lub występują inne problemy hydrauliczne.</li>



<li><strong>System całkowicie nie reaguje:</strong> Ogrzewanie nie włącza się pomocy ustawienia wyższej temperatury na sterowniku. Przyczyn może być wiele, od awarii źródła ciepła po problem z zasilaniem.</li>
</ul>



<h2 class="wp-block-heading">Znaczenie projektu instalacji dla późniejszego serwisu</h2>



<p class="wp-block-paragraph">Warto wspomnieć, że łatwość i koszt późniejszego <strong>serwisu ogrzewania podłogowego</strong> są w dużej mierze uzależnione od jego <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki">profesjonalnego projektu</a></strong>. Dobry projekt przewiduje między innymi:</p>



<ul class="wp-block-list">
<li><strong>Odpowiedni dostęp do rozdzielacza:</strong> Powinien on być zamontowany w takim miejscu (np. w szafce ściennej), aby serwisant miał swobodny dostęp do wszystkich jego elementów.</li>



<li><strong>Montaż zaworów odcinających i odpowietrzników:</strong> Umożliwiają one odizolowanie części systemu, odpowietrzanie i podłączanie urządzeń do płukania.</li>



<li><strong>Podział na strefy grzewcze:</strong> Logiczny podział na pętle ułatwia późniejsze diagnozowanie problemów i regulację systemu.</li>



<li><strong>Dobór odpowiedniego źródła ciepła:</strong> Urządzenie o odpowiedniej mocy i parametrach będzie pracowało sprawniej i z mniejszym ryzykiem awarii.</li>
</ul>



<p class="wp-block-paragraph">Inwestycja w <strong>profesjonalny projekt ogrzewania podłogowego</strong> zwraca się z nawiązaniem przez cały okres użytkowania domu, w postaci niższych rachunków, mniejszej liczby awarii i prostszego serwisowania. </p>



<h2 class="wp-block-heading">FAQ: Konserwacja ogrzewania podłogowego – najczęstsze pytania</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1760268473288"><strong class="schema-faq-question"><strong>Czy coroczny przegląd ogrzewania podłogowego jest obowiązkowy?</strong></strong> <p class="schema-faq-answer">Tak. Roczny serwis to działania profilaktyczne. Pozwala on wychwycić drobne usterki (jak spadki ciśnienia czy minimalne zapowietrzenie), zanim przekształcą się one w kosztowną awarię w środku zimy.</p> </div> <div class="schema-faq-section" id="faq-question-1760268583548"><strong class="schema-faq-question"><strong>Jakie prace serwisowe mogę wykonać sam?</strong></strong> <p class="schema-faq-answer">Do samodzielnych czynności należy miesięczna <strong>kontrola ciśnienia</strong> na manometrze (norma: 1,0-1,5 bara) oraz testowe uruchomienie systemu przed sezonem w celu sprawdzenia równomierności grzania.</p> </div> <div class="schema-faq-section" id="faq-question-1760268592585"><strong class="schema-faq-question"><strong>Po czym poznaję, że instalacja jest zapowietrzona?</strong></strong> <p class="schema-faq-answer">Głównym objawem są <strong>nierówno grzejące się place podłogi</strong> (ciepłe obok zimnych) oraz bulgotanie dochodzące z rozdzielacza. Naprawa polega na odpowietrzeniu instalacji na kolektorze.</p> </div> <div class="schema-faq-section" id="faq-question-1760268608717"><strong class="schema-faq-question"><strong>Co ile lat należy płukać instalację?</strong></strong> <p class="schema-faq-answer">Zalecany okres to <strong>co 3-5 lat</strong>. Częstotliwość zależy od twardości wody i stosowania inhibitorów. Zabieg ten usuwa osady, które pogarszają wydajność grzania i obciążają pompę.</p> </div> <div class="schema-faq-section" id="faq-question-1760268628877"><strong class="schema-faq-question"><strong>Czy serwis wydłuża żywotność systemu?</strong></strong> <p class="schema-faq-answer">Zdecydowanie tak. Czysta i wyregulowana instalacja pracuje optymalnie, mniej obciążając swoje kluczowe komponenty (kocioł, pompę, zawory), co znacząco przedłuża ich żywotność.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie – regularity to klucz do sukcesu</h2>



<p class="wp-block-paragraph">Odpowiadając na pytanie&nbsp;<strong>&#8222;Jak często trzeba serwisować ogrzewanie podłogowe?&#8221;</strong>&nbsp;– kluczowe jest zrozumienie, że to system, który wymaga&nbsp;<strong>regularnej, profilaktycznej opieki</strong>. Roczny przegląd przez specjalistę to podstawa, która zapewni bezpieczeństwo i efektywność. Płukanie instalacji co kilka lat przedłuży jej żywotność, a czujność samego użytkownika pozwoli na szybką reakcję w razie problemów. Pamiętaj, że koszt corocznego przeglądu jest nieporównywalnie niższy od kosztów naprawy awarii czy strat energii spowodowanych przez zaniedbany system. Inwestując w&nbsp;<strong>konserwację ogrzewania podłogowego</strong>, inwestujesz w długotrwały komfort i spokój ducha.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">Jak często trzeba serwisować ogrzewanie podłogowe?</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 ślimakowym.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/</link>
					<comments>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 21 Feb 2025 10:53:02 +0000</pubDate>
				<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż instalacji grzewczych]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Układ ślimakowy]]></category>
		<category><![CDATA[Układanie rur grzewczych]]></category>
		<category><![CDATA[energia w domu]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[poradnik DIY]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[równomierne ciepło]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[układ ślimakowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2270</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, jaki układ rur wybrać? Ogrzewanie podłogowe w układzie ślimakowym to sprawdzony sposób na równomierne rozprowadzenie ciepła w całym pomieszczeniu. W artykule krok po kroku wyjaśniamy, jak zaplanować i zamontować ten system, aby uniknąć błędów i cieszyć się komfortem cieplnym przez lata. Dowiesz się, jak obliczyć moc grzewczą, dobrać rozstaw rur i przeprowadzić test ciśnieniowy. Sprawdź, dlaczego układ spiralny jest tak popularny!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Instalacja ogrzewania podłogowego w układzie ślimakowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe w układzie ślimakowym to jedna z najskuteczniejszych metod zapewniających równomierną dystrybucję ciepła w pomieszczeniu. Ten system, zwany również spiralnym, eliminuje problem „zimnych stref” i optymalizuje zużycie energii. W artykule pokażemy, jak zaplanować i zamontować <strong>instalację ogrzewania podłogowego w układzie ślimakowym</strong> krok po kroku, uwzględniając kluczowe aspekty techniczne oraz praktyczne przykłady.</p>



<h2 class="wp-block-heading">Dlaczego wariant ułożenia ślimak? Zalety i podstawowe zasady</h2>



<h3 class="wp-block-heading"><em>Równomierne nagrzewanie podłogi</em>.</h3>



<p class="wp-block-paragraph">W układzie ślimakowym rury <strong>zasilające</strong> i <strong>powrotne</strong> biegną równolegle, co oznacza, że ciepła i chłodniejsza woda krążą obok siebie. Dzięki temu temperatura podłogi jest spójna na całej powierzchni, a różnice między poszczególnymi strefami nie przekraczają 1–2°C.</p>



<h3 class="wp-block-heading"><em>Optymalizacja hydrauliczna</em>.</h3>



<p class="wp-block-paragraph">System spiralny redukuje opory przepływu, co przekłada się na niższe zużycie energii przez pompę obiegową. To szczególnie ważne w dużych domach, gdzie różnica długości pętli mogłaby zaburzyć równowagę instalacji.</p>



<h3 class="wp-block-heading"><em>Elastyczność w projektowaniu</em>.</h3>



<p class="wp-block-paragraph">Ślimak sprawdza się zarówno w prostokątnych salonach, jak i pomieszczeniach o nieregularnych kształtach (np. łazienkach z wnękami). Można go łatwo dostosować do stref o większym zapotrzebowaniu na ciepło, takich jak okna czy drzwi balkonowe.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego: Od czego zacząć?</h2>



<h3 class="wp-block-heading"><em>Obliczenie mocy grzewczej</em>.</h3>



<p class="wp-block-paragraph">Zanim przystąpisz do układania rur, określ <strong><a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty ciepła w pomieszczeniu</a></strong>. Dla domów standardowych przyjmuje się ok. 50–70 W/m², ale w obiektach zbudowanych kilkanaście lat temu ze słaba izolacja wartość ta może wzrosnąć do 100 W/m².</p>



<p class="wp-block-paragraph"><strong>Przykład:</strong><br>Pokój o powierzchni 15 m² x 70 W/m² = <strong>1050 W</strong>. Oznacza to, że instalacja musi dostarczyć minimum 1 kW energii.</p>



<h3 class="wp-block-heading"><em>Długość i rozstaw rur</em>.</h3>



<p class="wp-block-paragraph">Dla rur o średnicy 16 mm maksymalna długość jednej pętli to optymalnie ( jeżeli chodzi o spadki ciśnień, przepływy itp.) <strong>80–90 m</strong>. Jeśli pomieszczenie wymaga dłuższego obiegu, podziel je na dwie lub więcej pętli o zbliżonych długościach.</p>



<p class="wp-block-paragraph"><strong>Rozstaw między rurami</strong> zależy od:</p>



<ul class="wp-block-list">
<li>Strat ciepła: 5 cm przy dużych stratach (np. przy oknach), 10–15 cm w pomieszczeniach o standardowej izolacji.</li>



<li>Rodzaju podłogi: Węższy rozstaw (np. 10 cm) dla paneli drewnianych, szerszy (np. 15 cm) dla płytek ceramicznych.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy:</strong><br>Dla pokoju 20 m² i rozstawu 10 cm:<br>(20 m² × 100 cm/m) / 10 cm = <strong>200 m <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a></strong> na całość i od 3 do 4 pętli na pomieszczenie( w zależności od długości dobiegu do tych pomieszczeń).</p>



<h2 class="wp-block-heading">Montaż ogrzewania podłogowego w układzie ślimakowym.</h2>



<h3 class="wp-block-heading"><em>Przygotowanie podłoża</em>.</h3>



<ol class="wp-block-list">
<li><strong>Warstwa izolacyjna</strong>: Ułóż <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">styropian EPS 100</a> o grubości min. 5 cm (na gruncie nawet 10 cm).</li>



<li><strong>Folia paroizolacyjna</strong>: Konieczna przy podłogach na gruncie – zapobiega przenikaniu wilgoci.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/produkt/tasma-przyscienna-z-pianki-poliuretanowej-do-ogrzewania-podlogowego/">Taśmy dylatacyjne</a></strong>: Zamontuj je wzdłuż ścian, aby podłoga mogła pracować pod wpływem temperatury.</li>
</ol>



<h3 class="wp-block-heading"><em>Rozmieszczenie rozdzielacza</em>.</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-mosiezny-do-ogrzewania-podlogowego-z-rotametrami/">Rozdzielacz</a> to „serce” instalacji. Umieść go <strong>centralnie</strong>, np. w <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafce ściennej</a> w przedpokoju. Pamiętaj, że każda pętla musi mieć podobną długość – różnice nie powinny przekraczać 10%.</p>



<h3 class="wp-block-heading"><em>Układanie rur w ślimaku</em>.</h3>



<ol class="wp-block-list">
<li><strong>Rozpocznij od środka</strong>: Zacznij od punktu centralnego lub rozdzielacza, układając rurę spiralnie na zewnątrz.</li>



<li><strong>Podwójna spirala</strong>: Po osiągnięciu zewnętrznej krawędzi pomieszczenia zawróć rurę, prowadząc ją równolegle do „odcinka zasilającego”. Dzięki temu każdy fragment podłogi będzie miał kontakt z ciepłem i chłodniejszą wodą.</li>



<li><strong>Użyj szablonu</strong>: Specjalne płyty z wypustkami pomogą utrzymać stały rozstaw.</li>
</ol>



<figure class="wp-block-image size-large"><img data-dominant-color="f5edf2" data-has-transparency="false" style="--dominant-color: #f5edf2;" fetchpriority="high" decoding="async" width="1024" height="512" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia-1024x512.webp" alt="Przykład rur ogrzewania podłogowego ułożonych w ślimaka - sypialnia" class="wp-image-2274 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia-1024x512.webp 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia-300x150.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia-768x384.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia-600x300.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Przyklad-rur-ogrzewania-podlogowego-ulozonych-w-slimaka-sypialnia.webp 1134w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Przykład rur ogrzewania podłogowego ułożonych w ślimaka &#8211; sypialnia</figcaption></figure>



<h2 class="wp-block-heading">Kluczowe błędy przy układaniu ślimaka – na co uważać?</h2>



<h3 class="wp-block-heading"><em>Nierównomierny rozstaw rur</em>.</h3>



<p class="wp-block-paragraph">Zbyt duże odstępy między zwojami (np. 20 cm) spowodują powstawanie „zimnych pasów”. W strefach przyokiennych zawsze zmniejszaj rozstaw do 5–10 cm.</p>



<h3 class="wp-block-heading"><em>Przekroczenie maksymalnej długości pętli</em>.</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Pętla dłuższa niż 100 m</a> dla rur 16 mm zwiększy opory hydrauliczne, co może prowadzić do <strong>niedogrzania końcówek</strong>. Rozwiązaniem jest podział na dwie pętle po 50 m każda.</p>



<h3 class="wp-block-heading"><em>Brak próby ciśnieniowej</em>.</h3>



<p class="wp-block-paragraph">Przed wylaniem jastrychu przeprowadź <strong>test ciśnieniowy</strong> (6–8 barów przez 24 h). To jedyny sposób, by wykryć mikropęknięcia w rurach.</p>



<h2 class="wp-block-heading"><strong>Angielskie oznaczenia układu ślimakowego</strong>.</h2>



<p class="wp-block-paragraph">W międzynarodowej terminologii ogrzewania podłogowego układ ślimakowy określa się jako <strong>&#8222;Spiral pattern underfloor heating&#8221;</strong> lub <strong>&#8222;Snail pattern underfloor heating&#8221;</strong>. Te nazwy odzwierciedlają spiralny kształt, który przypomina muszlę ślimaka.</p>



<p class="wp-block-paragraph">Dla bardziej technicznego opisu można użyć terminu <strong>&#8222;Helical loop underfloor heating&#8221;</strong>, który podkreśla geometryczną strukturę pętli. W kontekście projektowania i instalacji często spotyka się także określenie <strong>&#8222;meander and spiral layout&#8221;</strong>, ponieważ układ ślimakowy jest jednym z dwóch podstawowych wzorów obok układu meandrowego (meander pattern).</p>



<p class="wp-block-paragraph">Te angielskie nazwy są powszechnie używane w dokumentacji technicznej, katalogach produktów oraz w międzynarodowych projektach instalacyjnych. Warto je znać, zwłaszcza jeśli planujesz współpracę z zagranicznymi dostawcami lub korzystasz z materiałów szkoleniowych w języku angielskim.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego: Współpraca ze specjalistą</h2>



<p class="wp-block-paragraph">Nawet jeśli planujesz samodzielny montaż, <strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt instalacji</a> warto zlecić doświadczonemu audytorowi</strong>. Specjalista:</p>



<ul class="wp-block-list">
<li>Obliczy dokładne zapotrzebowanie na ciepło, uwzględniając izolację budynku i rodzaj okien.</li>



<li>Dobierze optymalny rozstaw rur dla posadzki drewnianej, kamiennej lub winylowej.</li>



<li>Zaproponuje rozmieszczenie rozdzielacza, które zminimalizuje straty ciśnienia.</li>
</ul>



<p class="wp-block-paragraph"><strong>Koszt projektu</strong> to zwykle 500–1500 zł, ale inwestycja zwraca się dzięki oszczędnościom na materiałach i energii. Warto w tym miejscu nadmienić iż w naszej firmie można taki projekt zrobic za darmo, szczegóły znajda P. <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">tutaj</a>.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1740133340632"><strong class="schema-faq-question"><strong>Czy układ ślimakowy nadaje się do każdego pomieszczenia?</strong></strong> <p class="schema-faq-answer">Tak, układ ślimakowy sprawdza się zarówno w prostokątnych salonach, jak i pomieszczeniach o nieregularnych kształtach, takich jak łazienki czy kuchnie.</p> </div> <div class="schema-faq-section" id="faq-question-1740133353605"><strong class="schema-faq-question"><strong>Jakie są zalety układu ślimakowego w porównaniu do meandrowego?</strong></strong> <p class="schema-faq-answer">Układ ślimakowy zapewnia bardziej równomierne rozprowadzenie ciepła, redukuje ryzyko powstawania zimnych stref i optymalizuje zużycie energii.</p> </div> <div class="schema-faq-section" id="faq-question-1740133378019"><strong class="schema-faq-question"><strong>Jak obliczyć długość rury potrzebnej do układu ślimakowego?</strong></strong> <p class="schema-faq-answer">Długość rury zależy od powierzchni pomieszczenia i rozstawu między rurami. Dla przykładu: przy rozstawie 10 cm na 20 m² potrzeba ok. 200 m rury.</p> </div> <div class="schema-faq-section" id="faq-question-1740133387094"><strong class="schema-faq-question"><strong>Czy układ ślimakowy można połączyć z innymi źródłami ciepła?</strong></strong> <p class="schema-faq-answer">Tak, układ ślimakowy można zintegrować z kotłem gazowym, pompą ciepła lub kolektorami słonecznymi.</p> </div> <div class="schema-faq-section" id="faq-question-1740133399905"><strong class="schema-faq-question"><strong>Jakie są najczęstsze błędy przy montażu układu ślimakowego?</strong></strong> <p class="schema-faq-answer">Do najczęstszych błędów należą: nierównomierny rozstaw rur, przekroczenie maksymalnej długości pętli oraz brak próby ciśnieniowej przed wylaniem jastrychu.</p> </div> </div>



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



<p class="wp-block-paragraph">Układ ślimakowy to rozwiązanie, które łączy <strong>energooszczędność</strong> z <strong>komfortem użytkowania</strong>. Kluczem do sukcesu jest precyzyjny projekt, odpowiedni rozstaw rur i unikanie błędów montażowych. Pamiętaj, że nawet najlepsze materiały nie zastąpią przemyślanej konfiguracji – dlatego w razie wątpliwości skonsultuj się z fachowcem.</p>



<p class="wp-block-paragraph"><strong>Gotowa instalacja nagrzeje Twoją podłogę równomiernie, a rachunki za ogrzewanie spadną o nawet 15–20%.</strong> Warto zainwestować czas w przemyślaną realizację!</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="GHN4znJnJa"><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=IThb4y3utU#?secret=GHN4znJnJa" data-secret="GHN4znJnJa" 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-slimakowym/">Instalacja ogrzewania podłogowego w układzie ślimakowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ile metrów podłogówki na jednej pętli?</title>
		<link>https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 22:18:09 +0000</pubDate>
				<category><![CDATA[Budowa i remonty]]></category>
		<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[długość pętli]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[porady ekspertów]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2053</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów podłogówki na jednej pętli to optymalna długość? W naszym artykule znajdziesz praktyczne porady, jak obliczyć długość pętli, jakie czynniki wpływają na jej maksymalną długość oraz jak uniknąć błędów przy projektowaniu. Dowiesz się również, dlaczego profesjonalny projekt jest kluczowy dla efektywności systemu. Sprawdź, jak zaplanować ogrzewanie podłogowe, aby cieszyć się komfortem i oszczędnościami przez lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</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;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Ile metrów podłogówki na jednej pętli? Kompendium doboru i obliczeń",
    "description": "Zasady projektowania długości pętli ogrzewania podłogowego. Dowiedz się, jak obliczyć optymalną ilość rury na 1 m², aby uniknąć problemów hydraulicznych i zapewnić równomierne grzanie.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny parametrów pętli ogrzewania podłogowego",
    "description": "Zestawienie kluczowych parametrów technicznych i granicznych długości obiegów dla instalacji ogrzewania płaszczyznowego wg PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (rura 16x2)",
        "value": "80-100 m",
        "description": "Zalecana górna granica długości dla najpopularniejszej średnicy rury PEX/PERT, gwarantująca optymalne opory hydrauliczne."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (rura 20x2)",
        "value": "120-150 m",
        "description": "Dopuszczalna długość dla rur o większym przekroju, stosowana zazwyczaj w halach i dużych salonach."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny instalacji",
        "value": "Max 20-30 kPa",
        "description": "Graniczna wartość oporu przepływu, przy której standardowa pompa obiegowa pracuje efektywnie."
      },
      {
        "@type": "PropertyValue",
        "name": "Zapotrzebowanie rury (rozstaw 10 cm)",
        "value": "10 m.b. / m²",
        "description": "Ilość rury grzejnej przypadająca na 1 metr kwadratowy powierzchni podłogi przy najgęstszym układzie."
      }
    ],
    "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 długości obiegów i oporów hydraulicznych",
    "description": "Interaktywny algorytm obliczeniowy symulujący przepływ czynnika grzewczego. Narzędzie przelicza powierzchnię pomieszczenia i rozstaw rur na metry bieżące pętli, szacując opory hydrauliczne i optymalny punkt pracy pompy obiegowej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Przeliczanie powierzchni na metry rury",
      "Symulacja spadku ciśnienia (kPa) dla rur 16mm i 20mm",
      "Rekomendacja podziału pętli dla rozdzielacza",
      "Optymalizacja parametru ΔT (różnicy temperatur)"
    ]
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>📏</span> Precyzja Projektowania
        </div>
        
        <p class="hero-text">W lutym 2025 roku, projektując instalację dla domu o powierzchni 140 m² pod Krakowem zasilanego nowoczesną <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a>, stanąłem przed klasycznym dylematem optymalizacji hydraulicznej. Zastosowałem tam układ 14 pętli grzewczych, aby precyzyjnie utrzymać opory hydrauliczne na bezpiecznym poziomie nieprzekraczającym <strong>20 kPa</strong>. Kluczowym pytaniem, na które musiał odpowiedzieć ten <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a>, było to najważniejsze: <strong>ile metrów podłogówki na jednej pętli</strong> należy ułożyć, aby system pracował z najwyższą efektywnością energetyczną i gwarantował pompie ciepła najwyższy możliwy współczynnik SCOP.</p>
        
        <p class="hero-text">Odpowiedź na to pytanie absolutnie nie może być dziełem przypadku. Fraza ta definiuje graniczną długość rury grzejnej w pojedynczym obiegu, która gwarantuje równomierny rozkład temperatury, eliminuje zjawisko &#8222;zimnych stref&#8221; i pozwala uniknąć przeciążenia <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>. W tym kompendium, opierając się na wytycznych normy PN-EN 1264, krok po kroku wyjaśnię, jak prawidłowo zaprojektować długość poszczególnych obiegów podłogówki.</p>

        <div class="hero-modules-title">W tym kompendium przeanalizujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Optymalne długości rur</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Opory hydrauliczne</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌡️</span>
                <span class="hero-card-title">Równomierność grzania</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🧮</span>
                <span class="hero-card-title">Algorytm obliczeniowy</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Kluczowe wytyczne dla pętli ogrzewania podłogowego</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Parametr hydrauliczny</th>
                        <th style="padding: 10px 0; color: #475569;">Wartość graniczna</th>
                        <th style="padding: 10px 0; color: #475569;">Opis / Skutek przekroczenia</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Max. dł. pętli rury 16&#215;2 mm</td>
                        <td style="padding: 10px 0; font-weight: bold;">80 &#8211; 100 m</td>
                        <td style="padding: 10px 0; color: #0284c7;">Wyższe opory zmuszają pompę do pracy na wysokim biegu</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Max. dł. pętli rury 20&#215;2 mm</td>
                        <td style="padding: 10px 0; font-weight: bold;">120 &#8211; 150 m</td>
                        <td style="padding: 10px 0; color: #0284c7;">Stosowane przy rzadszym rozstawie w przemyśle lub dużych salonach</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dopuszczalny opór pętli</td>
                        <td style="padding: 10px 0; font-weight: bold;">20 &#8211; 30 kPa</td>
                        <td style="padding: 10px 0; color: #0284c7;">Optymalny punkt pracy dla energooszczędnych pomp obiegowych</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Maksymalny spadek temp. (ΔT)</td>
                        <td style="padding: 10px 0; font-weight: bold;">5 &#8211; 7 K</td>
                        <td style="padding: 10px 0; color: #0284c7;">Zapobiega zjawisku drastycznie zimnych stref w posadzce</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

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



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

.pipe-analysis-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.pipe-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
}

.pipe-header h2 {
    margin: 0;
    font-size: 24px;
    color: #0369a1;
    font-weight: 800;
    line-height: 1.3;
}

.pipe-content {
    padding: 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.pipe-content strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.pipe-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
}

.pipe-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

.benefits-list {
    background: var(--bg-light);
    border-left: 4px solid var(--accent);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.benefits-list h3 {
    margin-top: 0;
    margin-bottom: 15px;
    font-size: 18px;
    color: var(--primary);
}

.benefits-list ul {
    margin: 0;
    padding-left: 20px;
}

.benefits-list li {
    margin-bottom: 12px;
}

.benefits-list li:last-child {
    margin-bottom: 0;
}

/* Interaktywny Moduł - Symulator */
.interactive-module {
    margin-top: 40px;
    padding: 30px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

.slider-container {
    margin: 30px 0;
}

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

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

.results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 25px;
}

.result-card {
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.result-value {
    font-size: 28px;
    font-weight: 800;
    margin: 10px 0;
}

.result-label {
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

#status-card.status-safe { border-color: var(--success); background: #f0fdf4; color: var(--success); }
#status-card.status-warning { border-color: var(--warning); background: #fff7ed; color: var(--warning); }
#status-card.status-danger { border-color: var(--danger); background: #fef2f2; color: var(--danger); }

@media (max-width: 600px) {
    .pipe-content { padding: 25px; }
    .results-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Charakterystyka oporów hydraulicznych rury PEX/PERT 16x2 mm",
    "description": "Zbiór danych określających liniowe spadki ciśnienia (kPa) dla rur ogrzewania płaszczyznowego 16mm w zależności od długości pętli, z uwzględnieniem normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Optymalna długość pętli",
        "value": "80 m",
        "description": "Gwarantuje równowagę hydrauliczną i optymalny pobór prądu."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli",
        "value": "100 m",
        "description": "Wartość graniczna powodująca wzrost oporów do ok. 25-30 kPa."
      }
    ],
    "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 Oporów Pętli Grzewczej 16mm",
    "description": "Interaktywny algorytm obliczający szacunkowy opór hydrauliczny (kPa) dla podanej długości obwodu grzewczego. Narzędzie wskazuje optymalne, ostrzegawcze i krytyczne wartości długości rury.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne wyliczanie strat ciśnienia",
      "Wizualizacja strefy bezpiecznej i niebezpiecznej pracy pompy",
      "Zgodność progów z wytycznymi PN-EN 1264"
    ]
  }
]
</script>

<div class="pipe-analysis-box" id="pipe-section-container">
    <div class="pipe-header">
        <h2>Jaka jest maksymalna długość pętli dla rury o średnicy 16 mm?</h2>
    </div>
    
    <div class="pipe-content">
        <p>Maksymalna długość pętli dla rury <strong>16&#215;2 mm</strong> wynosi <strong>100 metrów</strong>, jednak w profesjonalnych projektach HVAC dąży się do nieprzekraczania <strong>80 metrów</strong>. Wynika to bezpośrednio z normy <strong>PN-EN 1264</strong>, która określa dopuszczalne spadki ciśnienia w układzie.</p>
        
        <p>Przy rurze 16 mm i długości pętli <strong>100 m</strong>, opór hydrauliczny samej rury (bez uwzględnienia zaworów na rozdzielaczu) wynosi ok. <strong>25-30 kPa</strong> przy typowym przepływie. Przekroczenie tej wartości powoduje, że standardowa <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">pompa obiegowa w instalacji ogrzewania podłogowego</a> może nie zapewnić wymaganej prędkości przepływu czynnika, co skutkuje niedogrzaniem końcowego odcinka pętli.</p>

        <div class="benefits-list">
            <h3>Dlaczego warto celować w 80 metrów?</h3>
            <ul>
                <li><strong>Równowaga hydrauliczna:</strong> Łatwiej zrównoważyć system, gdy pętle mają zbliżoną długość (np. 70-80 m).</li>
                <li><strong>Liniowe spadki temperatury:</strong> Przy Delta T = 5K (różnica między zasilaniem a powrotem), rura o długości <strong>80 m</strong> oddaje ciepło w sposób przewidywalny, eliminując efekt &#8222;zimnej podłogi&#8221; pod koniec obiegu.</li>
                <li><strong>Mniejszy pobór prądu:</strong> Pompa pracuje na niższym biegu, co realnie obniża <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" target="_blank" rel="noreferrer noopener">koszt ogrzewania domu 2025/2026</a>.</li>
            </ul>
        </div>

        <div class="interactive-module">
            <div class="im-title">⚙️ Symulator oporów hydraulicznych (Rura 16&#215;2)</div>
            
            <div class="slider-container">
                <input type="range" id="lengthSlider" class="pipe-slider" min="40" max="140" value="80" step="5">
                <div class="slider-labels">
                    <span>40 m</span>
                    <span>90 m</span>
                    <span>140 m</span>
                </div>
            </div>

            <div class="results-grid">
                <div class="result-card">
                    <div class="result-label">Opór hydrauliczny</div>
                    <div class="result-value" id="kpa-output">21.5 kPa</div>
                    <div class="result-label" style="font-size: 11px;">Szacunek dla przepływu 2 l/min</div>
                </div>
                <div class="result-card status-safe" id="status-card">
                    <div class="result-label">Status projektowy</div>
                    <div class="result-value" id="status-text" style="font-size: 22px; margin-top: 15px;">ZALECANE</div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pipe-section-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ść skopiowana bez zezwolenia</p>
                    <p>Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby korzystać z oryginalnych narzędzi i artykułów Roberta Kucharskiego.</p>
                </div>
            `;
            return;
        }
    }

    // 2. Logika symulatora
    const slider = document.getElementById('lengthSlider');
    const kpaOutput = document.getElementById('kpa-output');
    const statusCard = document.getElementById('status-card');
    const statusText = document.getElementById('status-text');

    function updateSimulator() {
        const length = parseInt(slider.value);
        // Aproksymacja oporu dla rury 16x2 przy przepływie rzędu ~2.0 l/min
        // Przyjmujemy ok. 0.27 kPa na 1 metr bieżący wliczając złączki
        const kpa = (length * 0.27).toFixed(1);
        
        kpaOutput.textContent = `${kpa} kPa`;

        // Reset klas
        statusCard.classList.remove('status-safe', 'status-warning', 'status-danger');

        if (length <= 80) {
            statusCard.classList.add('status-safe');
            statusText.textContent = "ZALECANE";
        } else if (length > 80 && length <= 100) {
            statusCard.classList.add('status-warning');
            statusText.textContent = "AKCEPTOWALNE";
        } else {
            statusCard.classList.add('status-danger');
            statusText.textContent = "PRZEKROCZONE";
        }
    }

    if(slider) {
        slider.addEventListener('input', updateSimulator);
        updateSimulator(); // Inicjalizacja
    }
});
</script>



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

.premium-pipe20-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.pipe20-header {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #cbd5e1;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjny element tła (imitacja rury 20mm) */
.pipe20-header::after {
    content: '';
    position: absolute;
    right: -20px;
    top: 50%;
    transform: translateY(-50%);
    width: 150px;
    height: 20px;
    background: transparent;
    border: 6px solid rgba(148, 163, 184, 0.2);
    border-radius: 30px;
}

.pipe20-header h2 {
    margin: 0;
    font-size: 24px;
    color: var(--industrial);
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.pipe20-content {
    padding: 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.pipe20-content strong {
    color: var(--primary);
    background: rgba(71, 85, 105, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.pipe20-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.pipe20-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł interaktywny */
.interactive-20mm-module {
    margin-top: 35px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

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

.config-group {
    display: flex;
    flex-direction: column;
}

.config-label {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--primary);
}

.toggle-group {
    display: flex;
    gap: 10px;
}

.toggle-btn {
    flex: 1;
    padding: 12px;
    text-align: center;
    border: 2px solid var(--border-color);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    transition: 0.2s;
}

.toggle-btn.active {
    border-color: var(--industrial);
    color: var(--industrial);
    background: #f1f5f9;
}

.slider-container {
    position: relative;
    padding-top: 10px;
}

.pipe20-slider {
    width: 100%;
    accent-color: var(--industrial);
    cursor: pointer;
    height: 6px;
    background: #e2e8f0;
    border-radius: 10px;
    appearance: none;
    outline: none;
}
.pipe20-slider::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--industrial); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.slider-val-display {
    text-align: right;
    font-weight: 800;
    color: var(--primary);
    font-size: 18px;
    margin-top: 5px;
}

.result-banner {
    padding: 20px;
    border-radius: 12px;
    border-left: 6px solid var(--success);
    background: #f0fdf4;
    transition: all 0.3s ease;
}

.result-banner.status-warning {
    border-color: var(--warning);
    background: #fff7ed;
}

.result-banner.status-danger {
    border-color: var(--danger);
    background: #fef2f2;
}

.res-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    color: var(--primary);
}

.res-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .config-row { grid-template-columns: 1fr; gap: 20px; }
    .pipe20-content { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Charakterystyka oporów i zastosowania rury 20x2 mm",
    "description": "Zbiór danych określających możliwości zastosowania rur 20mm w instalacjach ogrzewania płaszczyznowego z podziałem na budownictwo jednorodzinne i przemysłowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna zalecana długość pętli",
        "value": "120-150 m",
        "description": "Graniczna długość pętli dla rury 20mm zapewniająca odpowiedni przepływ przy standardowej pompie."
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie przemysłowe",
        "value": "Zalecane",
        "description": "Hale, magazyny, duże powierzchnie komercyjne."
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie jednorodzinne",
        "value": "Ograniczone",
        "description": "Mniejsza elastyczność i trudniejszy promień gięcia w gęstych rozstawach (np. co 10 cm)."
      }
    ],
    "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 Zastosowania Rury 20mm",
    "description": "Narzędzie interaktywne oceniające poprawność zastosowania rury 20x2 mm na podstawie długości pętli i typu budynku (dom vs hala przemysłowa).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczna ocena oporu hydraulicznego dla rur o większym przekroju",
      "Weryfikacja elastyczności i promienia gięcia w zależności od przeznaczenia budynku",
      "Rekomendacje zgodne z PN-EN ISO 15875"
    ]
  }
]
</script>

<div class="premium-pipe20-box" id="pipe20-app-container">
    <div class="pipe20-header">
        <h2>Jaka jest maksymalna długość pętli dla rury o średnicy 20 mm?</h2>
    </div>
    
    <div class="pipe20-content">
        <p>Dla rur o średnicy <strong>20x2 mm</strong>, dopuszczalna długość pojedynczej pętli wzrasta do <strong>120-150 metrów</strong>. Dzięki większemu przekrojowi wewnętrznemu, opory przepływu są znacznie niższe niż w przypadku "szesnastki". Zastosowanie rury 20 mm jest uzasadnione w halach przemysłowych, magazynach lub bardzo dużych salonach, gdzie <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/" target="_blank" rel="noreferrer noopener">salon ile pętli podłogówki</a> to pytanie o optymalizację kosztów rozdzielacza. Jednak w budownictwie jednorodzinnym rura 20 mm jest rzadziej stosowana ze względu na mniejszą elastyczność i trudniejszy montaż w gęstych rozstawach. Zgodnie z normą <strong>PN-EN ISO 15875</strong>, parametry wytrzymałościowe rur <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">PERT</a> i <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">PEX</a> pozwalają na bezpieczną pracę w tych długościach pod warunkiem prawidłowego doboru pompy.</p>

        <div class="interactive-20mm-module">
            <div class="module-title">🏗️ Analizator zastosowania rury 20x2 mm</div>
            
            <div class="config-row">
                <div class="config-group">
                    <div class="config-label">Długość projektowanej pętli:</div>
                    <div class="slider-container">
                        <input type="range" id="len-slider-20" class="pipe20-slider" min="60" max="200" value="130" step="5">
                        <div class="slider-val-display"><span id="len-val-20">130</span> m</div>
                    </div>
                </div>
                
                <div class="config-group">
                    <div class="config-label">Typ realizowanego obiektu:</div>
                    <div class="toggle-group">
                        <div class="toggle-btn" id="btn-house" data-type="house">Dom / Salon</div>
                        <div class="toggle-btn active" id="btn-industry" data-type="industry">Hala / Magazyn</div>
                    </div>
                </div>
            </div>

            <div id="result-20-banner" class="result-banner">
                <div class="res-title" id="res-title">Analiza hydrauliczna</div>
                <p class="res-desc" id="res-desc">Wybierz parametry powyżej, aby zobaczyć rekomendację inżynierską.</p>
            </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('pipe20-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;">Narzędzie skopiowane nielegalnie</p>
                    <p>Zapraszamy na <strong>Projekt-Ogrzewania.pl</strong> w celu skorzystania z oryginalnych narzędzi.</p>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const slider = document.getElementById('len-slider-20');
    const valDisplay = document.getElementById('len-val-20');
    const btnHouse = document.getElementById('btn-house');
    const btnIndustry = document.getElementById('btn-industry');
    const banner = document.getElementById('result-20-banner');
    const title = document.getElementById('res-title');
    const desc = document.getElementById('res-desc');

    let currentType = 'industry'; // domyślnie hala

    function updateSimulation() {
        const length = parseInt(slider.value);
        valDisplay.textContent = length;

        // Reset klas
        banner.classList.remove('status-warning', 'status-danger');

        if (currentType === 'industry') {
            if (length <= 150) {
                // Sukces Hala
                banner.style.borderColor = "var(--success)";
                banner.style.backgroundColor = "#f0fdf4";
                title.style.color = "var(--success)";
                title.textContent = "✅ Idealne rozwiązanie przemysłowe";
                desc.innerHTML = `Przy <strong>${length} metrach</strong> rura 20x2 mm pracuje optymalnie. Zapewnia niskie opory tłoczenia i pozwala drastycznie zmniejszyć ilość pętli na ogromnych powierzchniach magazynowych.`;
            } else {
                // Przekroczenie Hala
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Uwaga: Wysokie opory hydrauliczne";
                desc.innerHTML = `Długość <strong>${length} m</strong> wkracza w strefę podwyższonego ryzyka. Pomimo większego przekroju (20mm), obieg stawia opór mogący wymagać mocniejszych, przemysłowych pomp obiegowych. Lepiej rozbić to na 2 pętle po ${(length/2).toFixed(0)}m.`;
            }
        } else if (currentType === 'house') {
            if (length <= 120) {
                // Ostrzeżenie Dom krótko
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Wymagany doświadczony instalator";
                desc.innerHTML = `Hydraulicznie <strong>${length} m</strong> to żaden problem. Jednak rura 20mm jest <strong>bardzo sztywna</strong>. Ułożenie jej w standardowym rozstawie (np. co 10-15 cm) w salonie będzie niezwykle uciążliwe (duży promień gięcia). Często lepiej wybrać rurę 16mm i zrobić 2 krótsze pętle.`;
            } else if (length > 120 && length <= 150) {
                 // Granica Dom
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Akceptowalne tylko dla bardzo dużych salonów";
                desc.innerHTML = `Długość <strong>${length} m</strong> zredukuje koszty rozdzielacza, ale pamiętaj o trudnościach przy formowaniu ślimaka. Wykonawca musi uważać na załamania rury w strefach brzegowych!`;
            } else {
                // Przekroczenie Dom
                banner.classList.add('status-danger');
                title.style.color = "var(--danger)";
                title.textContent = "❌ Przekroczenie parametrów i dyskomfort montażowy";
                desc.innerHTML = `W warunkach domowych długość <strong>${length} m</strong> na jednym obwodzie to proszenie się o problemy z wyważeniem układu i przepływami rotametrów. System straci równowagę hydrauliczną.`;
            }
        }
    }

    // Event Listenery
    if(slider) {
        slider.addEventListener('input', updateSimulation);
    }

    if(btnHouse && btnIndustry) {
        btnHouse.addEventListener('click', function() {
            btnIndustry.classList.remove('active');
            btnHouse.classList.add('active');
            currentType = 'house';
            updateSimulation();
        });
        
        btnIndustry.addEventListener('click', function() {
            btnHouse.classList.remove('active');
            btnIndustry.classList.add('active');
            currentType = 'industry';
            updateSimulation();
        });
    }

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



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

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

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

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

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

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

.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 46px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #eff6ff;
    padding: 25px 50px;
    border-radius: 16px;
    border: 2px solid #bfdbfe;
    box-shadow: inset 0 2px 4px rgba(255,255,255,0.5);
}

.math-fraction {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.1;
    margin-top: -5px;
}

.math-numerator {
    border-bottom: 4px solid var(--accent);
    padding: 0 12px 2px 12px;
}

.math-denominator {
    padding: 4px 12px 0 12px;
}

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

.legend-box {
    width: 100%;
    max-width: 550px;
    background: #ffffff;
    padding: 0;
}

.legend-title {
    font-weight: 800;
    margin-bottom: 15px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    text-align: left;
}

.legend-item {
    display: flex;
    align-items: center;
    padding: 14px 20px;
    margin-bottom: 8px;
    background: var(--bg-light);
    border-radius: 12px;
    border: 1px solid #f1f5f9;
    font-size: 15px;
    color: #334155;
    transition: 0.2s;
}

.legend-item:hover {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

.legend-item:last-child {
    margin-bottom: 0;
}

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

.legend-desc {
    line-height: 1.5;
}

/* Sekcja z treścią artykułu wewnątrz kontenera */
.formula-article-text {
    padding: 0 40px 30px 40px;
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
}

.formula-article-text ul {
    margin: 20px 0;
    padding-left: 20px;
}

.formula-article-text li {
    margin-bottom: 10px;
}

.formula-article-text a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.formula-article-text a:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

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

@media (max-width: 600px) {
    .formula-header { padding: 25px 20px; }
    .formula-content { padding: 30px 20px; gap: 25px; }
    .math-display { font-size: 34px; padding: 20px 30px; gap: 10px; }
    .math-sub { font-size: 16px; top: 3px; }
    .legend-item { padding: 12px 15px; font-size: 14px; }
    .formula-article-text { padding: 0 20px 25px 20px; }
    .formula-footer { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Wzór na zapotrzebowanie rury do ogrzewania podłogowego na 1 m²",
  "description": "Definicja i legenda symboli do wzoru obliczającego długość rury ogrzewania podłogowego w przeliczeniu na metry kwadratowe.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "L",
      "description": "Długość rury (w metrach bieżących) przypadająca na 1 m² ogrzewanej powierzchni."
    },
    {
      "@type": "PropertyValue",
      "name": "a",
      "description": "Rozstaw rur grzewczych (odległość między rurami) wyrażony w metrach (np. 0,1 m)."
    },
    {
      "@type": "PropertyValue",
      "name": "1,1",
      "description": "Współczynnik korygujący dodający 10% zapasu na tzw. podejścia do rozdzielacza."
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski",
    "sameAs": [
      "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
      "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    ]
  }
}
</script>

<div class="premium-formula-box" id="formula-app-pipe">
    <div class="formula-header">
        <h2>Jak obliczyć ile rury przypada na 1 m² powierzchni?</h2>
        <p>W projektowaniu instalacji płaszczyznowych przyjmuje się uniwersalny wzór, który pozwala precyzyjnie oszacować zapotrzebowanie materiałowe.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>L</span>
            <span style="color: var(--primary); font-style: normal;">=</span>
            <div class="math-fraction">
                <span class="math-numerator">1</span>
                <span class="math-denominator">a</span>
            </div>
            <span style="color: var(--primary); font-style: normal;">&middot;</span>
            <span>1,1</span>
        </div>

        <div class="legend-box">
            <div class="legend-title">Legenda symboli:</div>
            <div class="legend-item">
                <div class="legend-symbol">L</div>
                <div class="legend-desc"><strong>Długość rury</strong> (w metrach bieżących) niezbędna do pokrycia 1 m² powierzchni podłogi.</div>
            </div>
            <div class="legend-item">
                <div class="legend-symbol">a</div>
                <div class="legend-desc"><strong>Rozstaw rur</strong> wyrażony w metrach (np. 0,1 m dla rozstawu co 10 cm).</div>
            </div>
            <div class="legend-item">
                <div class="legend-symbol">1,1</div>
                <div class="legend-desc"><strong>Współczynnik bezpieczeństwa</strong> doliczający 10% zapasu rury na tzw. podejścia odbiegów do rozdzielacza.</div>
            </div>
        </div>
    </div>

    <div class="formula-article-text">
        <p>Dla standardowych rozstawów wartości w praktyce instalacyjnej prezentują się następująco:</p>
        <ul>
            <li>Rozstaw <strong>10 cm</strong>: ok. <strong>10 metrów bieżących</strong> rury na 1 m².</li>
            <li>Rozstaw <strong>15 cm</strong>: ok. <strong>6,7 metrów bieżących</strong> rury na 1 m².</li>
            <li>Rozstaw <strong>20 cm</strong>: ok. <strong>5 metrów bieżących</strong> rury na 1 m².</li>
        </ul>
        <p>Jeśli planujesz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" target="_blank" rel="noreferrer noopener">rozstaw rur ogrzewania podłogowego przy pompie ciepła</a>, najczęściej stosujemy układ co 10 cm, co oznacza, że jedna zalecana pętla 80 m obsłuży maksymalnie <strong>7-8 m²</strong> powierzchni w danym pomieszczeniu. To kluczowa informacja, by już na etapie planowania nie popełnić krytycznego błędu, jakim jest <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" target="_blank" rel="noreferrer noopener">za długa pętla podłogówki</a>.</p>
    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('formula-app-pipe');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To opracowanie wzoru jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

.premium-compare-box {
    max-width: 1100px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.compare-header {
    text-align: center;
    margin-bottom: 40px;
}

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

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

.compare-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: center;
}

.compare-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.compare-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -5px rgba(0,0,0,0.08);
}

/* Wyróżnienie karty ZALECANEJ */
.compare-card.recommended {
    border: 2px solid var(--success);
    box-shadow: 0 20px 40px -10px rgba(22, 163, 74, 0.15);
    transform: scale(1.03);
    z-index: 2;
    background: linear-gradient(to bottom, #ffffff, #f0fdf4);
}

.compare-card.recommended:hover {
    transform: scale(1.03) translateY(-5px);
}

.compare-card.warning {
    border-top: 4px solid var(--warning);
}

.compare-card.industrial {
    border-top: 4px solid #64748b;
}

.card-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--success);
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
    box-shadow: 0 4px 6px rgba(22, 163, 74, 0.2);
}

.card-title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 5px;
    color: var(--primary);
}

.card-subtitle {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 25px;
    display: block;
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.feature-item {
    display: flex;
    flex-direction: column;
    padding: 14px 0;
    border-bottom: 1px solid #f1f5f9;
}

.feature-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.feature-label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
    font-weight: 600;
}

.feature-val {
    font-size: 17px;
    font-weight: 800;
    color: var(--primary);
}

.compare-card.recommended .feature-val {
    color: #166534;
}

.feature-val a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

.feature-val a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

@media (max-width: 900px) {
    .compare-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .compare-card.recommended {
        transform: scale(1);
    }
    .compare-card.recommended:hover {
        transform: translateY(-5px);
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Porównanie parametrów technicznych pętli grzewczych",
    "description": "Zestawienie kluczowych parametrów hydraulicznych dla rur 16x2 mm i 20x2 mm, uwzględniające optymalne oraz graniczne długości pętli, opory i pojemności wodne w roku 2026.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rura 16x2 mm (Zalecane)",
        "value": "Długość: 80m, Opór: 18 kPa, Rozdzielacz: Stal INOX",
        "description": "Optymalne parametry dla instalacji w domach jednorodzinnych gwarantujące równowagę hydrauliczną."
      },
      {
        "@type": "PropertyValue",
        "name": "Rura 16x2 mm (Graniczne)",
        "value": "Długość: 100m, Opór: 28 kPa, Rozdzielacz: Mosiężny",
        "description": "Maksymalne dopuszczalne parametry wymagające precyzyjnego doboru pompy obiegowej."
      },
      {
        "@type": "PropertyValue",
        "name": "Rura 20x2 mm (Przemysłowe)",
        "value": "Długość: 130m, Opór: 22 kPa",
        "description": "Parametry dedykowane dla obiektów wielkopowierzchniowych i hal przemysłowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-compare-box" id="comparison-app">
    <div class="compare-header">
        <h2>Porównanie parametrów technicznych pętli</h2>
        <p>Poniższe zestawienie przedstawia kluczowe parametry hydrauliczne i projektowe dla najpopularniejszych rozwiązań stosowanych w nowoczesnych instalacjach w 2026 roku.</p>
    </div>

    <div class="compare-grid">
        
        <div class="compare-card recommended">
            <div class="card-badge">⭐ Najlepszy Wybór</div>
            <div class="card-title">Rura 16x2 mm</div>
            <span class="card-subtitle">Wariant Optymalny (Zalecany)</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">80 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">7,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val">18 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">8,8 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val">
                        <a target="_blank" rel="noreferrer noopener" href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-ze-stali-nierdzewnej-inox-do-ogrzewania-podlogowego-z-rotametrami/">Stal INOX</a>
                    </span>
                </li>
            </ul>
        </div>

        <div class="compare-card warning">
            <div class="card-title">Rura 16x2 mm</div>
            <span class="card-subtitle">Wariant Graniczny (Maksymalny)</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">100 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">9,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val" style="color: var(--warning)">28 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">11,0 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val">
                        <a target="_blank" rel="noreferrer noopener" href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-mosiezny-do-ogrzewania-podlogowego-z-rotametrami/">Mosiężny</a>
                    </span>
                </li>
            </ul>
        </div>

        <div class="compare-card industrial">
            <div class="card-title">Rura 20x2 mm</div>
            <span class="card-subtitle">Wariant Przemysłowy / Hale</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">130 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">12,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val">22 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">20,8 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val" style="color: #64748b">Przemysłowy</span>
                </li>
            </ul>
        </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 appContainer = document.getElementById('comparison-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To zestawienie tabelaryczne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

.premium-calc-container {
    max-width: 1150px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

/* Sekcja z treścią artykułu i wzorami */
.calc-theory-box {
    background: #ffffff;
    border-radius: 24px;
    padding: 40px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    margin-bottom: 30px;
}

.calc-theory-box h2 {
    margin: 0 0 20px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.calc-theory-box p {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.calc-theory-box a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    font-weight: 600;
    transition: all 0.2s ease;
}

.calc-theory-box a:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

.step-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.step-list li {
    position: relative;
    padding-left: 45px;
    margin-bottom: 25px;
    font-size: 16px;
    line-height: 1.6;
    color: #334155;
}

.step-list li::before {
    content: counter(step-counter);
    counter-increment: step-counter;
    position: absolute;
    left: 0;
    top: -2px;
    width: 28px;
    height: 28px;
    background: #e0f2fe;
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
}

body { counter-reset: step-counter; }

.math-highlight {
    background: #f1f5f9;
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--accent);
    margin: 15px 0;
    font-family: 'Georgia', serif;
    font-style: italic;
    font-size: 18px;
    color: #1e293b;
    display: inline-block;
}

/* Właściwy Kalkulator */
.adv-calc {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    border: 1px solid var(--border-color);
}

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

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

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

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

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

.type-btn {
    padding: 12px 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;
    font-size: 10px;
    font-weight: 400;
}

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

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

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

.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: 20px; border-bottom: 6px solid var(--accent);
}
.score-num { font-size: 56px; font-weight: 900; line-height: 1; display: block; margin: 5px 0; color: var(--primary); }
.score-label { font-size: 12px; color: #64748b; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; }

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 15px; flex-grow: 1;
}
.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: 16px; text-align: right; font-weight: 800; color: #f8fafc;}
.highlight-val { color: #38bdf8 !important; }

/* STOPKA */
.footer-cta {
    padding: 25px 40px;
    background: #eff6ff;
    border-top: 1px solid #dbeafe;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    font-size: 13px; color: #475569; line-height: 1.5;
}

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

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Algorytm obliczeniowy długości pętli i przepływów",
    "description": "Procedura inżynierska wyznaczania liczby pętli ogrzewania podłogowego, oparta o OZC, przepływ masowy i optymalizację oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry termodynamiczne i hydrauliczne pętli grzewczej",
    "description": "Zmienne wykorzystywane do obliczania zapotrzebowania na moc, przepływu masowego i wymaganej długości rury PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "OZC",
        "description": "Obciążenie cieplne budynku (W/m²)"
      },
      {
        "@type": "PropertyValue",
        "name": "Delta T (ΔT)",
        "description": "Różnica temperatury pomiędzy zasilaniem a powrotem (K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Przepływ masowy (m)",
        "description": "Ilość wody (kg/h) potrzebna do przeniesienia żądanej mocy cieplnej Q."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Inżynierski Podłogówki - Podział Pętli i Przepływy",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Kalkulator symulujący podział instalacji na pętle z uwzględnieniem mocy cieplnej (OZC), przepływów na rotametrach oraz granicznych oporów hydraulicznych.",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Obliczanie przepływu czynnika (l/min) dla pokoju",
      "Automatyczny podział na pętle do 80 metrów",
      "Estymacja przepływu na pojedynczym rotametrze",
      "Obliczanie całkowitej mocy grzewczej (W)"
    ]
  }
]
</script>

<div class="premium-calc-container" id="adv-loop-calc-app">
    
    <div class="calc-theory-box">
        <h2>Kalkulator długości pętli – Algorytm obliczeniowy krok po kroku</h2>
        <p>Jako inżynier, przy każdym profesjonalnym projekcie wykonuję precyzyjną procedurę obliczeniową. Poniżej przedstawiam algorytm, który możesz wykorzystać do wstępnego oszacowania parametrów hydraulicznych i termicznych Twojego układu:</p>
        
        <ul class="step-list">
            <li><strong>Obliczenie OZC (Obciążenia Cieplnego):</strong> Na podstawie normy <strong>PN-EN 12831</strong> wyznaczamy zapotrzebowanie na moc (np. 50 W/m² dla nowego domu). Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" target="_blank" rel="noreferrer noopener">projektowe obciążenie cieplne OZC</a>.</li>
            <li><strong>Wyznaczenie przepływu masowego (m):</strong>
                <div class="math-highlight">Q = m &middot; c<sub>p</sub> &middot; &Delta;T</div>
                <br>Przykład: Dla pokoju o zapotrzebowaniu 1000 W i parametrze &Delta;T = 5 K, przepływ wynosi około 172 kg/h (czyli ok. 0,17 m³/h).
            </li>
            <li><strong>Dobór rozstawu rur:</strong> Uwzględniając <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">opór cieplny R m²K/W</a> wybranej okładziny (płytki vs panele), decydujemy o gęstości rur.</li>
            <li><strong>Podział na pętle:</strong> Dzielimy całkowitą wyliczoną długość przez graniczną wartość <strong>80 m</strong> (aby uniknąć wysokich oporów). Wynik zaokrąglamy w górę (np. 130 m / 80 m = 2 pętle po 65 m).</li>
        </ul>
    </div>

    <div class="adv-calc">
        <div class="calc-grid">
            <div class="config-side">
                <span class="section-title">1. Parametry geometryczne i termiczne</span>
                
                <div class="input-wrap">
                    <div class="input-label-row"><label>Powierzchnia pomieszczenia</label><span class="val-badge"><span id="val-area">20</span> m²</span></div>
                    <input type="range" id="input-area" min="5" max="100" step="1" value="20">
                </div>
                
                <div class="input-wrap">
                    <div class="input-label-row"><label>Zapotrzebowanie (OZC)</label><span class="val-badge"><span id="val-ozc">50</span> W/m²</span></div>
                    <input type="range" id="input-ozc" min="30" max="100" step="5" value="50">
                    <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Od 30 W/m² (domy pasywne) do 100 W/m² (starsze budownictwo).</div>
                </div>

                <span class="section-title">2. Parametry układu hydraulicznego</span>
                
                <div class="input-label-row" style="margin-bottom: 12px;"><label>Różnica temperatur (&Delta;T)</label></div>
                <div class="type-selector">
                    <div class="type-btn active" id="dt-5">5 K<span>Pompa ciepła</span></div>
                    <div class="type-btn" id="dt-7">7 K<span>Kocioł gaz. / Standard</span></div>
                    <div class="type-btn" id="dt-10">10 K<span>Stare układy</span></div>
                </div>

                <div class="input-label-row" style="margin-bottom: 12px;"><label>Rozstaw rur (gęstość)</label></div>
                <div class="type-selector two-cols" style="margin-bottom: 0;">
                    <div class="type-btn" id="roz-10">10 cm<span>Gęsty</span></div>
                    <div class="type-btn active" id="roz-15">15 cm<span>Optymalny</span></div>
                </div>
            </div>

            <div class="result-side">
                <div class="main-score-box">
                    <span class="score-label">Podział na rozdzielaczu</span>
                    <span class="score-num" id="res-loops">2</span>
                    <span class="score-label" id="res-loops-txt">Pętle Grzewcze</span>
                </div>

                <div class="tech-grid">
                    <div class="tech-item"><span>Wymagana moc dla pokoju (Q):</span><strong id="res-power">--</strong></div>
                    <div class="tech-item"><span>Całkowita długość rury:</span><strong id="res-total-len">--</strong></div>
                    <div class="tech-item"><span>Długość pojedynczej pętli:</span><strong id="res-single-len" class="highlight-val">--</strong></div>
                    <div class="tech-item"><span>Całkowity przepływ:</span><strong id="res-total-flow">--</strong></div>
                    <div class="tech-item" style="border: none;"><span>Ustawienie rotametru (na 1 pętlę):</span><strong id="res-rotameter" class="highlight-val" style="font-size: 18px;">--</strong></div>
                </div>
            </div>
        </div>
        
        <div class="footer-cta">
            <div class="cta-text-side">
                <strong>Zrozumiałeś algorytm?</strong> Zastosuj go do każdego pomieszczenia. A jeśli chcesz mieć gwarancję, że cała fizyka układu (wraz z oporami i doborem pompy) została wyliczona bezbłędnie...
            </div>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">ZAMÓW PROJEKT U INŻYNIERA →</a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('adv-loop-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>' +
                '<p style="margin-top:0; font-size: 24px; font-weight: 900; margin-bottom: 10px;">Algorytm chroniony</p>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">To narzędzie 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;">ZOBACZ ORYGINAŁ</a>' +
                '</div>';
        }
        return; 
    }

    // Stan aplikacji
    var state = {
        area: 20,
        ozc: 50,
        deltaT: 5,
        spacing: 0.15,
        maxLoopLength: 80 // Celujemy w max 80m jak w treści
    };

    // Funkcja aktualizująca fizykę
    function calculatePhysics() {
        // 1. Zapotrzebowanie cieplne Q (W)
        var qTotal = state.area * state.ozc;
        
        // 2. Przepływ masowy (m) -> Q = m * cp * dT -> m [kg/h] = Q / (1.163 * dT)
        var massFlow = qTotal / (1.163 * state.deltaT);
        var flowLpm = massFlow / 60; // litry na minutę
        
        // 3. Zapotrzebowanie na rurę (wzór L = (Area/Rozstaw) * 1.1)
        var totalLength = (state.area / state.spacing) * 1.1;
        
        // 4. Podział na pętle
        var loops = Math.ceil(totalLength / state.maxLoopLength);
        if (loops < 1) loops = 1;

        // 5. Parametry na pętlę
        var lengthPerLoop = totalLength / loops;
        var flowPerLoop = flowLpm / loops;

        // Aktualizacja UI
        document.getElementById('res-loops').innerText = loops;
        document.getElementById('res-loops-txt').innerText = loops === 1 ? 'Pętla Grzewcza' : (loops > 4 ? 'Pętli Grzewczych' : 'Pętle Grzewcze');
        
        document.getElementById('res-power').innerText = Math.round(qTotal) + ' W';
        document.getElementById('res-total-len').innerText = Math.round(totalLength) + ' m';
        document.getElementById('res-single-len').innerText = Math.round(lengthPerLoop) + ' m';
        
        document.getElementById('res-total-flow').innerText = flowLpm.toFixed(2) + ' l/min';
        document.getElementById('res-rotameter').innerText = flowPerLoop.toFixed(2) + ' l/min';
    }

    // Event Listenery - Suwaki
    document.getElementById('input-area').addEventListener('input', function(e) {
        state.area = parseFloat(e.target.value);
        document.getElementById('val-area').innerText = state.area;
        calculatePhysics();
    });

    document.getElementById('input-ozc').addEventListener('input', function(e) {
        state.ozc = parseFloat(e.target.value);
        document.getElementById('val-ozc').innerText = state.ozc;
        calculatePhysics();
    });

    // Event Listenery - Przyciski Delta T
    var dtBtns = { 'dt-5': 5, 'dt-7': 7, 'dt-10': 10 };
    Object.keys(dtBtns).forEach(function(id) {
        var btn = document.getElementById(id);
        if(btn) {
            btn.addEventListener('click', function() {
                Object.keys(dtBtns).forEach(function(k){ document.getElementById(k).classList.remove('active'); });
                this.classList.add('active');
                state.deltaT = dtBtns[id];
                calculatePhysics();
            });
        }
    });

    // Event Listenery - Przyciski Rozstaw
    var rozBtns = { 'roz-10': 0.10, 'roz-15': 0.15 };
    Object.keys(rozBtns).forEach(function(id) {
        var btn = document.getElementById(id);
        if(btn) {
            btn.addEventListener('click', function() {
                Object.keys(rozBtns).forEach(function(k){ document.getElementById(k).classList.remove('active'); });
                this.classList.add('active');
                state.spacing = rozBtns[id];
                calculatePhysics();
            });
        }
    });

    // Uruchomienie pierwsze
    calculatePhysics();
});
</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": "Planując instalację, kluczowe jest zrozumienie, ile metrów podłogówki na jednej pętli faktycznie może obsłużyć Twój system. Przekroczenie magicznej barierze 100 metrów przy rurze 16 mm to nie tylko błąd montażowy, to wyrok na sprawność pompy ciepła i Twój komfort cieplny.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & 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": "Zbiór danych projektowych: Limity długości pętli grzewczych",
    "description": "Zestawienie inżynierskich norm spadku ciśnienia i temperatury dla różnych długości obiegów ogrzewania podłogowego rur PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": "Spadek ciśnienia (kPa) vs Długość rury (m)",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Logika Projektowa Roberta Kucharskiego",
    "description": "Interaktywny algorytm wyznaczania granicznych oporów hydraulicznych w zależności od metrów bieżących pętli grzewczej.",
    "applicationCategory": "DesignApplication",
    "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>Złota zasada inżyniera HVAC</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">Inżynierski punkt widzenia</span>
            <p class="expert-tip-text">
                "Pytanie o to, <strong>ile metrów podłogówki na jednej pętli</strong> ułożyć, to w rzeczywistości pytanie o hydraulikę i opory przepływu. Moja rada? Nigdy nie daj się namówić na pętle 16 mm o długości 120-130 metrów tylko po to, by 'oszczędzić' na sekcjach rozdzielacza. Optymalne 80 metrów to gwarancja, że system będzie cichy, a podłoga nagrzeje się równomiernie nawet przy niskim parametrze zasilania z pompy ciepła."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO 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 Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Dla rury 16x2 mm optymalna długość to 80-90 m. Przekroczenie 100 m drastycznie zwiększa opory hydrauliczne i obniża wydajność systemu.</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;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Ten moduł ekspercki jest własnością Projekt-Ogrzewania.pl i nie może być powielany na innych domenach.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



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

.premium-scenario-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.scenario-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
}

.scenario-header h2 {
    margin: 0;
    font-size: 24px;
    color: #0369a1;
    font-weight: 900;
    line-height: 1.3;
}

.scenario-content {
    padding: 30px 40px 10px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.scenario-content strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.scenario-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.scenario-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Interaktywny Moduł - Symulator Profilu */
.interactive-scenario-module {
    margin: 0 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
}

.module-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;
    gap: 10px;
}

.scenario-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 15px 25px 0 25px;
    gap: 10px;
    border-bottom: 1px solid var(--border-color);
}

.tab-btn {
    padding: 12px 20px;
    background: #e2e8f0;
    border: none;
    border-radius: 10px 10px 0 0;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.2s ease;
    flex: 1;
    text-align: center;
}

.tab-btn.active {
    background: #ffffff;
    color: var(--accent);
    border: 1px solid var(--border-color);
    border-bottom: 1px solid #ffffff;
    margin-bottom: -1px;
    box-shadow: 0 -4px 10px rgba(0,0,0,0.02);
}

.scenario-display {
    padding: 30px 25px;
}

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

.metric-card {
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
}

.metric-label {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.metric-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.metric-value.highlight {
    color: var(--accent);
}

.scenario-desc-box {
    padding: 20px;
    border-radius: 12px;
    background: #f0f9ff;
    border-left: 4px solid var(--accent);
    font-size: 14px;
    line-height: 1.6;
    color: #334155;
    transition: all 0.3s ease;
}

@media (max-width: 768px) {
    .scenario-content { padding: 25px 20px 10px 20px; }
    .interactive-scenario-module { margin: 0 20px 25px 20px; }
    .scenario-tabs { flex-direction: column; padding: 15px; gap: 5px; }
    .tab-btn { border-radius: 8px; margin-bottom: 0 !important; border: 1px solid transparent; }
    .tab-btn.active { border: 1px solid var(--accent); box-shadow: none; }
    .metrics-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność parametrów pętli grzewczych od przeznaczenia budynku",
    "description": "Zbiór danych definiujących różnice w projektowaniu ogrzewania podłogowego dla specyficznych stref: domów szkieletowych, łazienek oraz instalacji zewnętrznych (podjazdy).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Długość pętli (Dom szkieletowy)",
        "value": "60-70 m",
        "description": "Zalecana krótsza pętla ze względu na wymóg szybkiej reakcji na zmiany temperatury przy niskiej bezwładności budynku."
      },
      {
        "@type": "PropertyValue",
        "name": "Rozstaw rur (Łazienka)",
        "value": "7,5 - 10 cm",
        "description": "Zagęszczony układ rur w celu osiągnięcia normatywnej temperatury 24°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Czynnik grzewczy (Podjazdy)",
        "value": "Glikol",
        "description": "Ciecz o wysokiej lepkości stosowana na zewnątrz, wymagająca instalacji mocniejszych pomp obiegowych."
      }
    ],
    "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 Profilu Grzewczego (Przeznaczenie Obiektu)",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące, jak zmieniają się kluczowe parametry pętli ogrzewania płaszczyznowego w zależności od strefy (bezwładność, rozstaw, czynnik, obciążenie pompy).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczna zmiana parametrów hydraulicznych na podstawie wybranej strefy",
      "Weryfikacja czynnika grzewczego (Woda vs Glikol)",
      "Analiza obciążenia pompy obiegowej i bezwładności cieplnej"
    ]
  }
]
</script>

<div class="premium-scenario-box" id="scenario-app-container">
    <div class="scenario-header">
        <h2>Jak zaplanować rozmieszczenie pętli w budynkach o różnym przeznaczeniu?</h2>
    </div>
    
    <div class="scenario-content">
        <p>Projektując <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/" target="_blank" rel="noreferrer noopener">ogrzewanie podłogowe w domu szkieletowym</a>, musimy pamiętać o mniejszej bezwładności systemu. Tutaj pętle powinny być jeszcze krótsze (ok. <strong>60-70 m</strong>), aby system szybciej reagował na zmiany temperatury. Z kolei w łazienkach, gdzie wymagana temperatura to <strong>24°C</strong> (zgodnie z rozporządzeniem), stosujemy rozstaw <strong>10 cm</strong> lub nawet <strong>7,5 cm</strong>, co drastycznie skraca powierzchnię obsługiwaną przez jedną pętlę. Szczególnym przypadkiem są <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/" target="_blank" rel="noreferrer noopener">podgrzewane podjazdy i parkingi</a>. Tam pętle mogą być dłuższe, a jako czynnik stosuje się <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/" target="_blank" rel="noreferrer noopener">glikol w ogrzewaniu podlogowym</a>, co zwiększa lepkość cieczy i wymusza użycie mocniejszych pomp.</p>
    </div>

    <div class="interactive-scenario-module">
        <div class="module-title">⚙️ Symulator Profilu Grzewczego (Strefy)</div>
        
        <div class="scenario-tabs">
            <button class="tab-btn active" data-tab="szkielet">Dom Szkieletowy</button>
            <button class="tab-btn" data-tab="lazienka">Strefa Łazienki</button>
            <button class="tab-btn" data-tab="podjazd">Podjazd / Parking</button>
        </div>

        <div class="scenario-display">
            <div class="metrics-grid">
                <div class="metric-card">
                    <span class="metric-label">Zalecana długość pętli</span>
                    <span class="metric-value highlight" id="sim-length">60 - 70 m</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Rozstaw rur (Gęstość)</span>
                    <span class="metric-value" id="sim-spacing">10 - 15 cm</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Czynnik grzewczy</span>
                    <span class="metric-value" id="sim-fluid">Woda kotłowa / Demineralizowana</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Wymagania pompy obiegowej</span>
                    <span class="metric-value" id="sim-pump">Standardowa</span>
                </div>
            </div>

            <div class="scenario-desc-box" id="sim-desc">
                <strong>Inżynierski punkt widzenia:</strong> Budynki szkieletowe cechują się bardzo niską akumulacyjnością cieplną (brak grubych, murowanych ścian). Wymusza to zaprojektowanie systemu o krótkich pętlach, aby instalacja mogła błyskawicznie reagować na nagłe zmiany zapotrzebowania (np. nagłe zyski od nasłonecznienia). Długa pętla spowodowałaby przegrzewanie pomieszczeń.
            </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('scenario-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;">Moduł zablokowany</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne narzędzia inżynierskie znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Baza danych profili
    const profiles = {
        szkielet: {
            length: "60 - 70 m",
            spacing: "10 - 15 cm",
            fluid: "Woda / Woda demineralizowana",
            pump: "Standardowa (Energooszczędna)",
            color: "var(--accent)",
            bg: "#f0f9ff",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Budynki szkieletowe cechują się bardzo niską akumulacyjnością cieplną (brak grubych ścian). Wymusza to zaprojektowanie systemu o krótkich pętlach, aby instalacja mogła błyskawicznie reagować na nagłe zmiany zapotrzebowania (np. duże nasłonecznienie). Długa pętla powodowałaby bezwładne przegrzewanie."
        },
        lazienka: {
            length: "40 - 60 m",
            spacing: "7,5 - 10 cm",
            fluid: "Woda / Woda demineralizowana",
            pump: "Standardowa",
            color: "var(--warning)",
            bg: "#fff7ed",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Łazienka to strefa o najwyższym wymogu termicznym (24°C). Musimy maksymalnie zagęścić rury (często 7,5 cm), co sprawia, że jedna pętla obsługuje bardzo małą powierzchnię (np. 4-5 m²). Zbyt długa rura przy tak gęstym układzie stłumiłaby przepływ."
        },
        podjazd: {
            length: "100 - 150 m",
            spacing: "15 - 20 cm",
            fluid: "Glikol (Roztwór 30-50%)",
            pump: "Wysokiej wydajności (Przemysłowa)",
            color: "#64748b",
            bg: "#f8fafc",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Instalacje przeciwoblodzeniowe na zewnątrz muszą być zalane roztworem glikolu. Glikol ma znacznie wyższą lepkość kinematyczną niż woda. Generuje to gigantyczne opory hydrauliczne, dlatego absolutnie niezbędne jest zastosowanie zewnętrznych wymienników ciepła i bardzo mocnych pomp o dużej wysokości podnoszenia."
        }
    };

    // Logika przełączania
    const tabs = document.querySelectorAll('.tab-btn');
    const elLength = document.getElementById('sim-length');
    const elSpacing = document.getElementById('sim-spacing');
    const elFluid = document.getElementById('sim-fluid');
    const elPump = document.getElementById('sim-pump');
    const elDesc = document.getElementById('sim-desc');

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

            // Get data
            const key = this.getAttribute('data-tab');
            const data = profiles[key];

            // Update UI
            elLength.textContent = data.length;
            elSpacing.textContent = data.spacing;
            elFluid.textContent = data.fluid;
            elPump.textContent = data.pump;
            elDesc.innerHTML = data.desc;

            // Apply styles
            elLength.style.color = data.color;
            elDesc.style.borderLeftColor = data.color;
            elDesc.style.backgroundColor = data.bg;
        });
    });
});
</script>



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

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

.impact-header {
    background: #ffffff;
    padding: 35px 40px 15px 40px;
}

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

.impact-content {
    padding: 0 40px 30px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.impact-content ul {
    margin: 20px 0;
    padding-left: 0;
    list-style: none;
}

.impact-content li {
    margin-bottom: 15px;
    padding-left: 28px;
    position: relative;
}

.impact-content li::before {
    content: "➔";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--accent);
    font-weight: 900;
}

.impact-content strong {
    color: var(--primary);
}

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

.impact-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł Interaktywny - Symulator Skutków */
.interactive-impact-module {
    margin: 0 40px 40px 40px;
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    overflow: hidden;
}

.module-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: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.config-panel {
    padding: 30px 25px;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
}

.config-group {
    margin-bottom: 25px;
}

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

.config-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--primary);
}

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

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

.results-panel {
    padding: 30px 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.res-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.res-info {
    display: flex;
    flex-direction: column;
}

.res-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 4px;
}

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

.res-icon {
    font-size: 24px;
}

/* Dynamiczne kolory */
.status-good { border-left: 4px solid var(--success); }
.status-warn { border-left: 4px solid var(--warning); }
.status-bad { border-left: 4px solid var(--danger); }

.cost-highlight { color: var(--danger); }

@media (max-width: 768px) {
    .impact-header { padding: 25px 25px 10px 25px; }
    .impact-content { padding: 0 25px 25px 25px; }
    .interactive-impact-module { margin: 0 20px 25px 20px; }
    .impact-grid { grid-template-columns: 1fr; }
    .config-panel { border-right: none; border-bottom: 1px solid var(--border-color); }
    .res-card { flex-direction: column; align-items: flex-start; gap: 10px; }
    .res-icon { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ długości pętli na koszty sprzętu i hydraulikę",
    "description": "Zestawienie korelacji pomiędzy projektowaną długością pętli a rozmiarem rozdzielacza, kosztami inwestycyjnymi, efektywnością SCOP oraz trudnością równoważenia hydraulicznego rotametrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozmiar rozdzielacza i szafki",
        "description": "Ilość sekcji rośnie odwrotnie proporcjonalnie do zakładanej długości pojedynczej pętli (zwiększając koszty osprzętu)."
      },
      {
        "@type": "PropertyValue",
        "name": "Koszt sekcji rozdzielacza",
        "value": "150-250 PLN",
        "description": "Szacunkowy koszt dodania jednego obwodu grzewczego (zawór, rotametr, złączki)."
      },
      {
        "@type": "PropertyValue",
        "name": "Zrównoważenie hydrauliczne",
        "description": "Dla pętli powyżej 100m i pętli o skrajnie różnej długości, regulacja przepływów staje się krytycznie trudna."
      },
      {
        "@type": "PropertyValue",
        "name": "SCOP Pompy Ciepła",
        "description": "Krótsze pętle pozwalają obniżyć temperaturę zasilania (30-35°C), co diametralnie podnosi współczynnik efektywności urządzenia."
      }
    ],
    "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 Skutków Projektowych Podłogówki",
    "description": "Interaktywny analizator ukazujący, jak założenia projektowe (średnia długość pętli) rzutują na koszty rozdzielacza, równoważenie układu i SCOP pompy ciepła dla zadanej długości całej instalacji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Estymacja wielkości rozdzielacza i szafki",
      "Kalkulacja szacunkowych kosztów sekcyjnych",
      "Wizualna ocena ryzyka równoważenia hydraulicznego",
      "Ocena wpływu decyzji na temperaturę zasilania i efektywność pompy ciepła"
    ]
  }
]
</script>

<div class="premium-impact-box" id="impact-app-container">
    <div class="impact-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego i wybór urządzeń?</h2>
    </div>
    
    <div class="impact-content">
        <p>Długość pętli to fundament, na którym opiera się cały <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">profesjonalny projekt ogrzewania podłogowego</a>. Błędne założenie "zrobimy pętle po 120 metrów" rzutuje na:</p>
        
        <ul>
            <li><strong>Dobór rozdzielacza:</strong> Każda dodatkowa pętla to konieczność zakupu większego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rozdzielacza do podłogówki</a>. Koszt dodatkowej sekcji to ok. <strong>150-250 PLN</strong>, ale jest to inwestycja, która zapobiega problemom z hydrauliką.</li>
            <li><strong>Wielkość szafki:</strong> Więcej pętli wymaga większej <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">szafki podtynkowej</a>.</li>
            <li><strong>Równoważenie:</strong> Na każdym <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametrze</a> musimy ustawić konkretny przepływ (np. 1,5 l/min). Jeśli pętle są rażąco różnej długości, np. 30 m i 110 m, ich zrównoważenie bywa niemożliwe bez zewnętrznych zaworów dławiących.</li>
            <li><strong>Źródło ciepła:</strong> <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" target="_blank" rel="noreferrer noopener">Pompa ciepła</a> najlepiej pracuje przy niskiej temperaturze zasilania (<strong>30-35°C</strong>). Krótkie pętle pozwalają na pracę przy minimalnej różnicy temperatur, co podnosi współczynnik SCOP urządzenia.</li>
        </ul>
    </div>

    <div class="interactive-impact-module">
        <div class="module-title">📉 Symulator skutków decyzji projektowych</div>
        
        <div class="impact-grid">
            <div class="config-panel">
                <div class="config-group">
                    <div class="config-label">
                        <span>Zapotrzebowanie na rurę (Dom)</span>
                        <span class="val-display"><span id="inp-total">1000</span> m</span>
                    </div>
                    <input type="range" id="slider-total" class="impact-slider" min="400" max="2000" value="1000" step="50">
                    <div style="font-size: 11px; color: #94a3b8; margin-top: 6px;">Całkowita ilość rury PEX wyliczona z OZC.</div>
                </div>

                <div class="config-group" style="margin-top: 35px;">
                    <div class="config-label">
                        <span>Zakładana dł. pojedynczej pętli</span>
                        <span class="val-display" id="inp-loop-color"><span id="inp-loop">120</span> m</span>
                    </div>
                    <input type="range" id="slider-loop" class="impact-slider" min="50" max="150" value="120" step="5">
                    <div style="font-size: 11px; color: #94a3b8; margin-top: 6px;">Sprawdź "tani" montaż (120m) vs optymalny (80m).</div>
                </div>
            </div>

            <div class="results-panel">
                <div class="res-card" id="card-manifold">
                    <div class="res-info">
                        <span class="res-label">Wymagany rozdzielacz</span>
                        <span class="res-val"><span id="out-sections">9</span> sekcji (<span id="out-cost">1800</span> PLN)</span>
                    </div>
                    <div class="res-icon">🎛️</div>
                </div>

                <div class="res-card" id="card-balance">
                    <div class="res-info">
                        <span class="res-label">Równoważenie hydrauliczne</span>
                        <span class="res-val" id="out-balance">Bardzo trudne / Niemożliwe</span>
                    </div>
                    <div class="res-icon">⚖️</div>
                </div>

                <div class="res-card" id="card-scop">
                    <div class="res-info">
                        <span class="res-label">Wpływ na pompę ciepła (SCOP)</span>
                        <span class="res-val" id="out-scop">Obniżony SCOP (Wymaga >35°C)</span>
                    </div>
                    <div class="res-icon">⚡</div>
                </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('impact-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ść zablokowana</p>
                    <p>Moduł interaktywny został skopiowany. Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby z niego skorzystać.</p>
                </div>
            `;
            return;
        }
    }

    // Elementy DOM
    const sTotal = document.getElementById('slider-total');
    const sLoop = document.getElementById('slider-loop');
    
    const vTotal = document.getElementById('inp-total');
    const vLoop = document.getElementById('inp-loop');
    const vLoopColor = document.getElementById('inp-loop-color');
    
    const oSections = document.getElementById('out-sections');
    const oCost = document.getElementById('out-cost');
    const oBalance = document.getElementById('out-balance');
    const oScop = document.getElementById('out-scop');

    const cardManifold = document.getElementById('card-manifold');
    const cardBalance = document.getElementById('card-balance');
    const cardScop = document.getElementById('card-scop');

    // Przyjęty średni koszt sekcji (zł)
    const costPerSection = 200; 

    function updateSimulator() {
        const totalPipe = parseInt(sTotal.value);
        const loopLen = parseInt(sLoop.value);

        vTotal.textContent = totalPipe;
        vLoop.textContent = loopLen;

        // Obliczenia
        const sectionsCount = Math.ceil(totalPipe / loopLen);
        const totalCost = sectionsCount * costPerSection;

        oSections.textContent = sectionsCount;
        oCost.textContent = totalCost;

        // Reset klas
        cardManifold.className = 'res-card';
        cardBalance.className = 'res-card';
        cardScop.className = 'res-card';

        // Ocena kosztów rozdzielacza (im mniej pętli, tym taniej inwestycyjnie, ale uwaga na skutki!)
        // Moduł celowo nie barwi kosztów jako błędu, tylko pokazuje tradeoff.
        cardManifold.classList.add('status-good');

        // Ocena długości pętli (Hydraulika i Pompa)
        if (loopLen <= 80) {
            vLoopColor.style.color = "var(--success)";
            
            oBalance.textContent = "Idealne (rotametry działają poprawnie)";
            cardBalance.classList.add('status-good');

            oScop.textContent = "Wysoki SCOP (Zasilanie 30-33°C)";
            cardScop.classList.add('status-good');

        } else if (loopLen > 80 && loopLen <= 100) {
            vLoopColor.style.color = "var(--warning)";
            
            oBalance.textContent = "Dopuszczalne (Wymaga dobrych pomp)";
            cardBalance.classList.add('status-warn');

            oScop.textContent = "Średni SCOP (Zasilanie ok. 35°C)";
            cardScop.classList.add('status-warn');

        } else {
            vLoopColor.style.color = "var(--danger)";
            
            oBalance.textContent = "Ryzyko awarii i niedogrzania stref";
            cardBalance.classList.add('status-bad');

            oScop.textContent = "Drastyczny spadek SCOP (>38°C)";
            cardScop.classList.add('status-bad');
        }
    }

    // Nasłuchiwacze
    if (sTotal) sTotal.addEventListener('input', updateSimulator);
    if (sLoop) sLoop.addEventListener('input', updateSimulator);

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



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

.premium-error-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(220, 38, 38, 0.1);
    border: 1px solid var(--border-color);
    border-top: 5px solid var(--danger);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fffafa;
    padding: 35px 40px 20px 40px;
}

.error-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    color: var(--danger);
    font-weight: 900;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.error-content {
    padding: 0 40px 30px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
    background: #fffafa;
}

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

.error-list {
    margin: 20px 0;
    padding-left: 0;
    list-style: none;
    display: grid;
    gap: 15px;
}

.error-list li {
    background: #ffffff;
    border: 1px solid #fee2e2;
    padding: 15px 20px;
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    position: relative;
    padding-left: 50px;
}

.error-number {
    position: absolute;
    left: 15px;
    top: 15px;
    background: #fecaca;
    color: var(--danger);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 900;
    font-size: 13px;
}

.error-content strong {
    color: var(--primary);
}

.error-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.error-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł Interaktywny - Symulator Ryzyka */
.interactive-risk-module {
    margin: 0 40px 40px 40px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.module-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;
    gap: 10px;
}

.risk-config {
    padding: 25px;
    border-bottom: 1px solid var(--border-color);
}

.slider-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 900;
    color: var(--danger);
}

.risk-slider {
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 10px;
    appearance: none;
    outline: none;
}
.risk-slider::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--danger); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer; transition: 0.2s;
}
.risk-slider::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Termowizja */
.thermal-bar-container {
    padding: 20px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--border-color);
}

.thermal-label {
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.thermal-bar {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #ef4444 0%, #f59e0b 50%, #ef4444 100%);
    transition: background 0.3s ease;
}

.thermal-markers {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    margin-top: 8px;
}

/* Wyniki ryzyk */
.risk-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 25px;
}

.risk-card {
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.3s ease;
}

.risk-icon { font-size: 24px; margin-bottom: 8px; }
.risk-title { font-size: 12px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-bottom: 5px; }
.risk-val { font-size: 18px; font-weight: 900; color: var(--primary); }

.status-ok { border-color: var(--success); background: #f0fdf4; }
.status-warn { border-color: var(--warning); background: #fff7ed; }
.status-crit { border-color: var(--danger); background: #fef2f2; color: var(--danger); }

@media (max-width: 768px) {
    .error-header { padding: 25px 25px 15px 25px; }
    .error-content { padding: 0 25px 25px 25px; }
    .interactive-risk-module { margin: 0 20px 25px 20px; }
    .risk-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Konsekwencje błędnego projektowania ogrzewania podłogowego (zbyt długie pętle)",
    "description": "Dokumentacja usterek i ryzyk związanych z przekraczaniem normatywnej długości pętli grzewczych (130-140m). Dane obejmują ryzyko kawitacji, spadki temperatury oraz uszkodzenia wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zjawisko kawitacji",
        "description": "Szumy i niszczenie instalacji spowodowane nadmierną prędkością czynnika przy próbie pokonania oporów długiej pętli."
      },
      {
        "@type": "PropertyValue",
        "name": "Zimne plamy (Spadek ΔT)",
        "value": "8-10°C spadku",
        "description": "Drastyczne wychłodzenie czynnika na końcu pętli prowadzące do stref niedogrzania."
      },
      {
        "@type": "PropertyValue",
        "name": "Pękanie wylewki",
        "description": "Naprężenia termiczne jastrychu wywołane nierównomiernym rozkładem temperatury oraz brakiem izolacji brzegowej/dylatacji."
      }
    ],
    "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 Błędów Instalacyjnych Podłogówki",
    "description": "Wizualizator ryzyk pokazujący wpływ przekraczania zalecanej długości rury grzewczej na prędkość przepływu (kawitację), wychłodzenie pętli (zimne plamy) oraz naprężenia posadzki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Symulacja spadku temperatury czynnika grzewczego (wizualizacja termowizyjna)",
      "Ocena ryzyka kawitacji i szumów w instalacji",
      "Wskazania naprężeń wylewki betonowej i ryzyka pęknięć"
    ]
  }
]
</script>

<div class="premium-error-box" id="error-app-container">
    <div class="error-header">
        <h2>⚠️ Najczęstsze błędy: Dlaczego "na oko" wychodzi drożej?</h2>
    </div>
    
    <div class="error-content">
        <p>Pracując jako inżynier HVAC, często poprawiam instalacje wykonane bez obliczeń. Inwestorzy, chcąc zaoszczędzić na <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">cenie projektu ogrzewania podłogowego</a>, godzą się na ułożenie pętli o długości <strong>130-140 m</strong> rurą 16 mm. <strong>Skutki są opłakane:</strong></p>
        
        <ul class="error-list">
            <li>
                <div class="error-number">1</div>
                <strong>Zjawisko kawitacji:</strong> Szumy w instalacji spowodowane zbyt dużą prędkością przepływu przy próbie "przepchnięcia" wody przez za długą pętlę.
            </li>
            <li>
                <div class="error-number">2</div>
                <strong>Zimne plamy:</strong> Woda na końcu pętli ma temperaturę o <strong>8-10 stopni niższą</strong> niż na początku. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" target="_blank" rel="noreferrer noopener">Czy ogrzewanie podłogowe jest zdrowe</a> w takiej sytuacji? Nie, bo generuje naprężenia w wylewce i dyskomfort termiczny.
            </li>
            <li>
                <div class="error-number">3</div>
                <strong>Pękanie wylewki:</strong> Brak uwzględnienia <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a> przy długich obiegach to prosta droga do zniszczenia drogich płytek lub paneli.
            </li>
        </ul>
        
        <p style="margin-bottom: 0;">Jeśli remontujesz dom, sprawdź <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/" target="_blank" rel="noreferrer noopener">ogrzewanie podłogowe w remontowanym budynku – czy warto</a>, zanim podejmiesz decyzję o rozkładzie rur.</p>
    </div>

    <div class="interactive-risk-module">
        <div class="module-title">🔥 Symulator awarii: Zobacz co się dzieje "na końcu" rury</div>
        
        <div class="risk-config">
            <div class="slider-label-row">
                <span>Długość ułożonej pętli (rura 16x2)</span>
                <span class="val-badge"><span id="risk-len-val">140</span> metrów</span>
            </div>
            <input type="range" id="risk-slider" class="risk-slider" min="60" max="160" value="140" step="5">
            <div style="font-size: 11px; color: #94a3b8; margin-top: 8px;">Przesuń suwak, aby sprawdzić zachowanie układu hydraulicznego.</div>
        </div>

        <div class="thermal-bar-container">
            <div class="thermal-label">Symulacja termowizyjna rozkładu ciepła (Początek ➔ Koniec pętli)</div>
            <div class="thermal-bar" id="thermal-gradient"></div>
            <div class="thermal-markers">
                <span>Zasilanie (35°C)</span>
                <span>Środek pokoju</span>
                <span id="thermal-end-txt">Powrót (<span id="temp-drop-val">25</span>°C)</span>
            </div>
        </div>

        <div class="risk-results">
            <div class="risk-card" id="card-temp">
                <div class="risk-icon">❄️</div>
                <div class="risk-title">Zimne plamy</div>
                <div class="risk-val" id="val-temp">ΔT = 10°C</div>
            </div>
            
            <div class="risk-card" id="card-cav">
                <div class="risk-icon">🌊</div>
                <div class="risk-title">Opory i Szumy</div>
                <div class="risk-val" id="val-cav">Kawitacja</div>
            </div>

            <div class="risk-card" id="card-stress">
                <div class="risk-icon">💥</div>
                <div class="risk-title">Naprężenia wylewki</div>
                <div class="risk-val" id="val-stress">Krytyczne</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('error-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;">Blokada bezpieczeństwa</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne symulatory ryzyk instalacyjnych znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Elementy
    const slider = document.getElementById('risk-slider');
    const valDisplay = document.getElementById('risk-len-val');
    
    const thermalBar = document.getElementById('thermal-gradient');
    const tempDropVal = document.getElementById('temp-drop-val');
    
    const cardTemp = document.getElementById('card-temp');
    const valTemp = document.getElementById('val-temp');
    
    const cardCav = document.getElementById('card-cav');
    const valCav = document.getElementById('val-cav');
    
    const cardStress = document.getElementById('card-stress');
    const valStress = document.getElementById('val-stress');

    // Stała temperatura zasilania
    const T_ZASILANIE = 35;

    function updateRisk() {
        const len = parseInt(slider.value);
        valDisplay.textContent = len;

        // Reset klas
        cardTemp.className = 'risk-card';
        cardCav.className = 'risk-card';
        cardStress.className = 'risk-card';

        let dT = 5; // standardowy spadek

        if (len <= 80) {
            dT = 5;
            // Bezpiecznie
            cardTemp.classList.add('status-ok');
            valTemp.textContent = `ΔT = ${dT}°C`;
            
            cardCav.classList.add('status-ok');
            valCav.textContent = "Brak szumów (Cicho)";
            
            cardStress.classList.add('status-ok');
            valStress.textContent = "Minimalne";

            thermalBar.style.background = "linear-gradient(to right, #ef4444 0%, #f59e0b 50%, #f97316 100%)";

        } else if (len > 80 && len <= 100) {
            dT = 7;
            // Ostrzeżenie
            cardTemp.classList.add('status-warn');
            valTemp.textContent = `ΔT = ${dT}°C`;
            
            cardCav.classList.add('status-warn');
            valCav.textContent = "Wysokie opory";
            
            cardStress.classList.add('status-warn');
            valStress.textContent = "Podwyższone";

            thermalBar.style.background = "linear-gradient(to right, #ef4444 0%, #f97316 60%, #fbbf24 100%)";

        } else {
            // Ryzyko krytyczne - przeliczenie dT
            dT = Math.round(7 + (len - 100) * 0.1); // np 140 -> 7 + 4 = 11
            
            cardTemp.classList.add('status-crit');
            valTemp.textContent = `ΔT = ${dT}°C (Zimno!)`;
            
            cardCav.classList.add('status-crit');
            valCav.textContent = "Zjawisko kawitacji";
            
            cardStress.classList.add('status-crit');
            valStress.textContent = "Ryzyko pęknięć";

            // Termowizja pokazuje spadek do niebieskiego
            let bluePoint = 100 - ((len - 100) * 1.5); 
            if(bluePoint < 50) bluePoint = 50;
            thermalBar.style.background = `linear-gradient(to right, #ef4444 0%, #f59e0b 30%, #3b82f6 ${bluePoint}%, #1e3a8a 100%)`;
        }

        // Aktualizacja powrotu
        tempDropVal.textContent = T_ZASILANIE - dT;
    }

    if (slider) {
        slider.addEventListener('input', updateRisk);
        updateRisk(); // start
    }
});
</script>



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

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

.faq-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 35px 40px 25px 40px;
    border-bottom: 1px solid #bae6fd;
}

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

.faq-header p {
    font-size: 15px;
    color: #334155;
    margin: 0 0 20px 0;
    line-height: 1.6;
}

/* Wyszukiwarka */
.faq-search-wrapper {
    position: relative;
    max-width: 500px;
}

.faq-search-input {
    width: 100%;
    padding: 14px 20px 14px 45px;
    border: 2px solid #bae6fd;
    border-radius: 12px;
    font-size: 15px;
    font-family: 'Inter', sans-serif;
    outline: none;
    transition: all 0.3s ease;
    background: #ffffff;
    color: var(--primary);
    box-sizing: border-box;
}

.faq-search-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.faq-search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #7dd3fc;
    transition: color 0.3s;
}

.faq-search-input:focus + .faq-search-icon {
    color: var(--accent);
}

/* Akordeon FAQ */
.faq-content {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.faq-no-results {
    display: none;
    text-align: center;
    padding: 30px;
    color: #64748b;
    font-weight: 600;
    background: var(--bg-light);
    border-radius: 12px;
}

.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

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

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

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

.faq-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: #e0f2fe;
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    transition: transform 0.3s ease, background 0.3s ease;
    margin-left: 15px;
}

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

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

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

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

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

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

.faq-answer-inner a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 20px 20px 20px; }
    .faq-content { padding: 10px 20px 30px 20px; }
    .faq-question { padding: 20px 0; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Ile metrów podłogówki na jednej pętli to maksymalna długość dla rury 16 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Maksymalna dopuszczalna długość to 100 metrów, jednak w profesjonalnych projektach zaleca się nieprzekraczanie 80 metrów. Taka długość gwarantuje optymalne opory hydrauliczne (ok. 20 kPa) i równomierne grzanie bez przeciążania pompy obiegowej."
        }
      },
      {
        "@type": "Question",
        "name": "Jak obliczyć długość pętli ogrzewania podłogowego dla pokoju?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wzór inżynierski to: (Powierzchnia pokoju / rozstaw w metrach) * 1,1 (współczynnik na podejścia). Na przykład dla 20 m² przy rozstawie co 15 cm otrzymujemy: (20 / 0,15) * 1,1 ≈ 147 metrów. Otrzymaną wartość dzielimy na dwie pętle (np. po 74 metry)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rozstaw rur wpływa na ilość pętli w pomieszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ma decydujący wpływ. Im mniejszy rozstaw (np. 10 cm dedykowany pod pompy ciepła), tym więcej rury zużywamy na 1 m². Gęstszy rozstaw wymusza podzielenie instalacji w jednym pomieszczeniu na większą liczbę osobnych obiegów podłączonych do rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie błędy najczęściej popełnia się przy projektowaniu pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Głównym błędem jest projektowanie zbyt długich pętli (np. 140 m). Prowadzi to do niedogrzania stref końcowych (woda zdąży ostygnąć), powstawania szumów z powodu zjawiska kawitacji oraz braku możliwości zrównoważenia przepływów na rotametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Czy warto stosować rurę 20 mm w domu, aby zrobić dłuższe pętle?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie jest to zalecane w standardowym budownictwie jednorodzinnym. Choć rura 20 mm pozwala na pętle rzędu 150 m, jest ona bardzo sztywna, co sprawia ogromne problemy przy formowaniu układu meandrowego lub ślimakowego w małych rozstawach."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza Wiedzy HVAC: Opory i Długości Pętli",
    "description": "Zestaw ustrukturyzowanych pytań i eksperckich odpowiedzi dotyczących inżynierii ogrzewania płaszczyznowego, uwzględniający wymogi norm i hydrauliki budynkowej.",
    "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": "Interaktywny Eksplorator Wiedzy o Podłogówce",
    "description": "Narzędzie typu FAQ pozwalające na interaktywne filtrowanie i wyszukiwanie problemów projektowych związanych z instalacją ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne wyszukiwanie pytań i odpowiedzi (Live Search)",
      "Rozwijane komponenty informacyjne (Akordeon)",
      "Baza danych autoryzowana przez inżyniera HVAC"
    ]
  }
]
</script>

<div class="premium-faq-box" id="faq-app-container">
    <div class="faq-header">
        <h2>Pytania i odpowiedzi (FAQ)</h2>
        <p>Szybkie podsumowanie najważniejszych kwestii inżynierskich związanych z doborem rur i projektowaniem pętli ogrzewania podłogowego.</p>
        
        <div class="faq-search-wrapper">
            <input type="text" id="faq-search" class="faq-search-input" placeholder="Wpisz słowo kluczowe (np. długość, rozstaw)...">
            <span class="faq-search-icon">🔍</span>
        </div>
    </div>
    
    <div class="faq-content">
        <div id="faq-no-results" class="faq-no-results">
            Brak pytań pasujących do wyszukiwania. Spróbuj innych słów kluczowych.
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Ile metrów podłogówki na jednej pętli to maksymalna bezpieczna długość (16 mm)?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Maksymalna dopuszczalna długość to <strong>100 metrów</strong>, jednak jako inżynier projektujący instalacje od lat, kategorycznie zalecam celowanie w <strong>80 metrów</strong>. Taka długość gwarantuje optymalne opory hydrauliczne (ok. 20 kPa), bezproblemowe zrównoważenie na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametrach</a> i równomierne oddawanie ciepła bez przeciążania pompy obiegowej.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Jak obliczyć ile rury potrzebuję do konkretnego pomieszczenia?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Możesz skorzystać ze wzoru: <strong>(Powierzchnia pokoju / rozstaw w metrach) * 1,1</strong> (współczynnik na podejścia). Przykładowo, dla pokoju 20 m² przy rozstawie co 15 cm daje to: (20 / 0,15) * 1,1 ≈ 147 metrów. Pamiętając o limitach z pierwszego pytania, taką wartość musisz bezwzględnie podzielić na co najmniej <strong>dwie pętle</strong> na rozdzielaczu (np. po ok. 74 metry każda). Do dokładnych wyliczeń polecam nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">kalkulator podłogówki</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy rozstaw rur ma wpływ na liczbę pętli w pokoju?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Oczywiście. Im gęstszy rozstaw (np. 10 cm polecany pod <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" target="_blank" rel="noreferrer noopener">pompy ciepła</a>), tym więcej metrów bieżących rury przypada na 1 m² powierzchni (ok. 10 mb/m²). Szybsze zużycie rury sprawia, że szybciej dobijamy do bezpiecznego limitu 80 metrów, co wymusza zaprojektowanie dodatkowego obiegu grzewczego.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Co się stanie, jeśli wykonawca zrobi mi pętlę rzędu 130-140 metrów?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Skutki zazwyczaj widać już po pierwszej zimie. Woda na końcu takiego obiegu zdąży drastycznie ostygnąć, tworząc "zimne plamy" na podłodze. Próba przyspieszenia przepływu przez pompę, aby to wyrównać, doprowadzi z kolei do <strong>kawitacji i nieznośnych szumów</strong> w rurach (zbyt duże opory tłoczenia). Dodatkowo nierównomierne stygnięcie to prosta droga do <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">naprężeń i pękania wylewki</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy do długich pętli w domu jednorodzinnym warto zastosować rurę 20 mm?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Odradzam. Rury o średnicy <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">20x2 mm</a> pozwalają na dłuższe pętle (nawet 130 m), ale są dedykowane głównie do hal przemysłowych i magazynów, gdzie stosuje się rzadki rozstaw. W budownictwie jednorodzinnym rura 20 mm sprawia ogromne problemy instalatorom – jest sztywna, wymaga wielkiej siły i stwarza trudności przy gięciu blisko okien i ścian. Optymalnym materiałem pozostaje rura 16x2 mm.
                </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 appContainer = document.getElementById('faq-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Baza Wiedzy Zablokowana</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza oryginalną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

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

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

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

            // Zamknij wszystkie inne (opcjonalne, ale daje ładny efekt)
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });

            // Otwórz lub zamknij kliknięty
            if (!isActive) {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });

    // 3. LOGIKA WYSZUKIWARKI (Live Search)
    const searchInput = document.getElementById('faq-search');
    const noResultsMsg = document.getElementById('faq-no-results');

    searchInput.addEventListener('input', function() {
        const query = this.value.toLowerCase().trim();
        let visibleCount = 0;

        faqItems.forEach(item => {
            const text = item.textContent.toLowerCase();
            if (text.includes(query)) {
                item.style.display = 'block';
                visibleCount++;
            } else {
                item.style.display = 'none';
                item.classList.remove('active'); // Zwijamy ukrywane
                item.querySelector('.faq-answer').style.maxHeight = null;
            }
        });

        if (visibleCount === 0) {
            noResultsMsg.style.display = 'block';
        } else {
            noResultsMsg.style.display = 'none';
        }
    });
});
</script>



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

.premium-infographic-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);
}

.infographic-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
    text-align: center;
}

.infographic-header h2 {
    margin: 0 0 10px 0;
    font-size: 26px;
    color: #0369a1;
    font-weight: 900;
    line-height: 1.3;
}

.infographic-header p {
    font-size: 15px;
    color: #334155;
    margin: 0;
    line-height: 1.6;
}

/* Sekcja obrazka */
.infographic-viewer {
    position: relative;
    padding: 40px;
    background: #f8fafc;
    text-align: center;
}

.image-container {
    position: relative;
    display: inline-block;
    max-width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    cursor: zoom-in;
    transition: transform 0.3s ease;
    border: 1px solid #cbd5e1;
}

.image-container img {
    display: block;
    max-width: 100%;
    height: auto;
    transition: filter 0.3s ease;
}

.image-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(2, 132, 199, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.image-container:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}

.image-container:hover .image-overlay {
    opacity: 1;
}

.zoom-icon {
    background: var(--accent);
    color: white;
    padding: 15px 25px;
    border-radius: 30px;
    font-weight: 800;
    font-size: 14px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    pointer-events: none;
}

/* Modals / Lightbox */
.lightbox-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    opacity: 0;
    transition: opacity 0.3s ease;
}

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

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

.lightbox-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: 300;
    cursor: pointer;
    transition: color 0.2s;
}

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

/* Sekcja Pobierania */
.infographic-footer {
    padding: 30px 40px;
    background: #ffffff;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.footer-text {
    flex: 1;
}

.footer-text h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.footer-text p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

.btn-download-pdf {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--danger);
    color: white;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.25);
    white-space: nowrap;
}

.btn-download-pdf:hover {
    background: #b91c1c;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(220, 38, 38, 0.35);
}

@media (max-width: 768px) {
    .infographic-header { padding: 25px 20px; }
    .infographic-viewer { padding: 20px; }
    .infographic-footer { flex-direction: column; text-align: center; padding: 25px 20px; }
    .btn-download-pdf { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Ekspercka Infografika: Zestawienie parametrów ogrzewania podłogowego",
    "description": "Wizualne zestawienie normatywnych długości pętli (60-100m) dla systemów płaszczyznowych. Zawiera matrycę doboru rury na podstawie metrażu pomieszczenia oraz katalog krytycznych błędów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zalecana długość pętli",
        "value": "60 - 100 m",
        "description": "Złoty środek inżynierski chroniący przed spadkami temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Dobór pętli do powierzchni",
        "description": "Tabela korelująca wielkość pomieszczenia (np. do 10m², 15-20m²) z wymaganą długością obwodu grzewczego."
      },
      {
        "@type": "PropertyValue",
        "name": "Praktyczne wskazówki",
        "description": "Checklista dla instalatorów m.in. omijani stref stałej zabudowy oraz wymóg prób ciśnieniowych przed wylewką."
      }
    ],
    "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": "Przeglądarka Infografik Inżynierskich HVAC",
    "description": "Interaktywny moduł prezentacyjny umożliwiający analizę schematów technicznych w wysokiej rozdzielczości z opcją pobrania dokumentacji w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne powiększanie schematów (Lightbox)",
      "Responsywna prezentacja techniczna w formacie WEBP",
      "Bezpośredni eksport norm inżynierskich do formatu PDF"
    ]
  }
]
</script>

<div class="premium-infographic-box" id="infographic-app-container">
    <div class="infographic-header">
        <h2>Ekspercka ściąga: Ile metrów podłogówki na pętli?</h2>
        <p>Zapisz naszą autorską infografikę. To wizualne kompendium wiedzy, które uratuje Twój projekt przed najczęstszymi błędami hydraulicznymi.</p>
    </div>
    
    <div class="infographic-viewer">
        <div class="image-container" id="open-lightbox">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.webp" 
                 alt="Kompleksowa infografika inżynierska stanowiąca przewodnik po projektowaniu instalacji płaszczyznowych, skupiona na kluczowym pytaniu: ile metrów podłogówki na jednej pętli." 
                 width="800" height="auto" loading="lazy">
            <div class="image-overlay">
                <span class="zoom-icon">🔍 KLIKNIJ, ABY POWIĘKSZYĆ</span>
            </div>
        </div>
    </div>

    <div class="infographic-footer">
        <div class="footer-text">
            <h3>Zabierz te dane na budowę!</h3>
            <p>Pobierz infografikę w wysokiej jakości (PDF). Wydrukuj ją i skonsultuj z instalatorem przed wylaniem posadzki.</p>
        </div>
        <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.pdf" class="btn-download-pdf" target="_blank" rel="noopener noreferrer">
            📄 POBIERZ PDF (HD)
        </a>
    </div>

    <div class="lightbox-modal" id="lightbox">
        <span class="lightbox-close" id="close-lightbox">&times;</span>
        <img decoding="async" class="lightbox-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.webp" alt="Powiększenie infografiki">
    </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 appContainer = document.getElementById('infographic-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Materiały Zablokowane</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza autoryzowaną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

    // 2. LOGIKA LIGHTBOXA (Przybliżanie obrazu)
    const openBtn = document.getElementById('open-lightbox');
    const lightbox = document.getElementById('lightbox');
    const closeBtn = document.getElementById('close-lightbox');

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

        // Zamykanie krzyżykiem
        closeBtn.addEventListener('click', function() {
            lightbox.classList.remove('active');
            document.body.style.overflow = 'auto';
        });

        // Zamykanie przez kliknięcie w tło
        lightbox.addEventListener('click', function(e) {
            if (e.target === lightbox) {
                lightbox.classList.remove('active');
                document.body.style.overflow = 'auto';
            }
        });

        // Zamykanie klawiszem ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === "Escape" && lightbox.classList.contains('active')) {
                lightbox.classList.remove('active');
                document.body.style.overflow = 'auto';
            }
        });
    }
});
</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; /* Neutralne tło na start */
    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; /* Dopasowanie koloru w stanie sukcesu */
}

.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 wnioski z projektowania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących limitów długości pętli, zagęszczenia w strefach brzegowych oraz hydraulicznych wymagań systemu ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit długości pętli (16mm)",
        "value": "Max 80-100m",
        "description": "Zapobieganie zjawisku kawitacji oraz krytycznym spadkom temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Rozstaw w strefie brzegowej",
        "value": "10 cm",
        "description": "Kompensacja zwiększonych strat cieplnych w rejonie dużych przeszkleń."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny w pętli",
        "value": "Max 20-30 kPa",
        "description": "Parametr gwarantujący poprawną pracę rotametrów i pompy obiegowej."
      }
    ],
    "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 Weryfikator Gotowości Projektu",
    "description": "Interaktywna aplikacja w formie audytu projektowego. Pozwala inwestorom sprawdzić, czy ich układ spełnia kluczowe wymogi hydrauliczne i cieplne wg normy PN-EN 1264.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Interaktywna weryfikacja założeń projektowych",
      "Dynamiczny wskaźnik poprawności koncepcji grzewczej",
      "Przekierowanie do pogłębionej bazy wiedzy o instalacjach"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie inżynierskie</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Odpowiedź na pytanie "ile metrów podłogówki" definiuje być albo nie być całej inwestycji.</p>
    </div>
    
    <div class="summary-text">
        <p>Projektowanie ogrzewania podłogowego to proces, w którym prawa fizyki bezlitośnie weryfikują podejście "na oko". Zbyt długie pętle (powyżej <strong>100m dla rury 16mm</strong>) to gwarancja problemów: od zjawiska kawitacji, przez potężne spadki temperatury (zimne plamy na podłodze), aż po pękanie wylewki i drastyczny spadek SCOP pompy ciepła.</p>
        <p>Prawidłowy, profesjonalny projekt nie szuka oszczędności na ilości rozdzielaczy, lecz optymalizuje rozstaw rur (np. <strong>10 cm w łazienkach</strong>, 15 cm w salonach) i dzieli układ na równe, bezpieczne sekcje o długości ok. 80 metrów, które obciążają rotametry łagodnym przepływem rzędu 1-2 l/min.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🛠️ Audyt Projektu: Czy jesteś gotowy do wylewki?</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>Żadna z pętli 16mm nie przekracza 90-100 metrów</h4>
                    <p>Potwierdzam, że zrezygnowałem z chęci zaoszczędzenia na rozdzielaczu kosztem bezpieczeństwa hydraulicznego układu.</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>Pętle mają zbliżoną do siebie długość</h4>
                    <p>Najkrótsza pętla na rozdzielaczu (oprócz łazienki) nie jest o połowę krótsza od najdłuższej. Pozwoli to zrównoważyć rotametry.</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>Uwzględniono strefy brzegowe przy oknach</h4>
                    <p>Zastosowano zagęszczony rozstaw rur (10 cm) w miejscach największych strat cieplnych, aby uniknąć chłodu ciągnącego od przeszkleń.</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>Instalacja opiera się na wyliczeniach OZC</h4>
                    <p>Zapotrzebowanie na moc i przepływy zostały policzone zgodnie z normą PN-EN 12831, a nie zaczerpnięte z forów internetowych.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój projekt to solidny fundament.</h3>
            <p>Jesteś świadomym inwestorem. Uniknąłeś błędów, których naprawa po wylaniu betonu kosztowałaby dziesiątki tysięcy złotych.</p>
        </div>

        <p class="success-cta-promo">Chcesz wiedzieć więcej? Sprawdź naszą bazę wiedzy pełną interaktywnych wykresów, kalkulatorów i darmowych poradników inżynierskich!</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>
                    <h3 style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</h3>
                    <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/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
